来源
blockchain
编译
火火酱
责编
Maozz
出品
区块链大本营(blockchain_camp)
话说,咱们过去也发够不少干货文章,不知道各位有没有尝试过跟着操作一遍?与往期不同的是,今天我们带来的干货有一点特别。这是一个仅由行Javascript代码实现的区块链。其实区块链的基本概念非常简单:一个储存着不断加长的有序记录列表的分布式数据库。然而在一般情况下,我们在谈论区块链时其实是在谈论那些“试图用区块链解决的问题”,这两者很容易被混淆。在比特币和以太坊等受欢迎的区块链项目中也如此,“区块链”这个术语往往与交易、智能合约或者加密货币等概念紧密联系在一起。这样一来,要想真正理解区块链就更难了(尤其是当你想了解源代码的时候)。接下来,我将会介绍一个名为NaiveChain的超级简单的区块链,只用行Javascript代码就能将其实现。
确定区块结构第一个步骤是确定区块结构。为了使事情尽可能简单一些,我们只包含最为必须的元素:index下标、timestamp时间戳、data数据、hash哈希值以及previoushash前置哈希值。为了保证链的完整性,必须在区块中找到前一个区块的hash散列值区块hash散列值
为了保持数据的完整性,需要对区块进行hash散列处理。SHA-会将区块的内容进行加密。需要注意的是,这个hash散列值与“mining挖矿”没有任何关系,因为这里不需要处理ProofofWork工作证明量的问题。mining挖矿: