IMG数字货币交易所:用js实现区块链基本原型

WB3交流加微信:WX-93588,⬅️此处为全站广告位,与正文项目无关
注册并登录App即可领取高达 60,000 元的数字货币盲盒:点击此处注册OKX

区块链是一项在21世纪诞生的革命性技术,它正在不断发展壮大,但其潜力没有完全发掘。区块链本质上是一个去中心化的数据集,与传统的私有数据库不同,它是公开的,任何人都能够具有完好或部分的复制。在区块链中,数据的写入有必要得到其他人的统一才能进行。此外,区块链也使加密数字货币和智能合约得以完成。

在这一系列文章中,咱们将基于区块链的原理来完成一个简略的加密数字货币体系。

区块是区块链的基本组成部分。它起到存储有价值数据的效果。举个例子,比特币的区块中存储了买卖信息,而买卖是加密数字货币的中心构成部分。一个区块还能够包括一些技术信息,如版本号、时刻戳和上一个区块的哈希值。

在这篇文章中,咱们只会完成区块的一些重要信息,而不是完好完成区块链或比特币中的区块。下面是区块的结构界说:

其间,timestamp是当时区块被创立的时刻戳,data是存储有价值信息的当地,prevBlockHash存储了上一个区块的哈希值,hash是当时区块的哈希值。在比特币中,timestamp、prevBlockHash和hash构成了区块头的数据结构,而transactions(在咱们当时的完成中称为data)则是与区块头分隔的数据结构。现在,咱们将这两者放在一起,以简化咱们的工作。

那么,咱们怎么核算哈希值呢?哈希值的核算在区块链中是一项非常重要的规划,这种核算方式确保了区块链的安全性。实际上,核算哈希值是一项非常消耗核算资源的操作,即便关于速度很快的核算机来说,也需求一定的时刻(这也是为什么人们购买GPU来挖比特币的原因)。这是一种刻意规划的架构,旨在增加区块的难度,然后避免在区块被增加到区块链数据库后被篡改。咱们将在后续具体讨论和完成这套机制。

现在,咱们仅仅将区块中的字段衔接在一起,然后核算其SHA-256哈希值。下面是完成的代码:
(注:其间Hashes是github上的一个项目,网址是https://github.com/h2non/jshashes)

现已介绍完了区块,接下来咱们创立一个简略的函数来构造区块。

完毕!这便是一个区块!

现在,咱们来完成区块链。从界说上来看,区块链本质上是一个有特定结构的数据库,它是一个按时刻顺序排列、串联的链表。也便是说,区块链中的区块依照插入的时刻顺序排列,而且每个区块与前一个区块相连。因而,能够快速获取最新的区块,而且依据哈希值高效地获取一个区块。

在JavaScript中,咱们能够运用array和map来完成这种结构:array用于确保哈希值按顺序排列,map使得能够快速查找到区块。不过,在咱们行将完成的原型中,咱们暂时只运用array,由于咱们现在不需求依据哈希值来查找对应的区块。

非常简略对吧!

现在咱们来完成一个增加区块的函数。

完成了!不过,还有一个遗漏的当地。

如果当时没有区块,则此函数将出错。因而,咱们有必要确保区块链至少有一个区块。在区块链完成中,咱们通常将第一个区块称为“创世块”。现在来完成创世块:

this.blocks[this.blocks.length-1]

因而,创立新的区块链时,需求同时创立创世块。

好了,区块链的基本原型就完成了。

接下来,咱们来测验代码。

在这个Node.js程序中,咱们在package.json中增加了mocha测验代码。然后运行能够看到测验结果。

“scripts”:{“test”:”mocha”},

npm test

最后

咱们建立了区块链的简略原型,其间包括一个由区块组成的数组,每个区块与前一个区块相连。然而,真实的区块链体系比此原型更加杂乱。在该体系中,增加一个区块是简略而快速的,但在真实的区块链中,增加一个区块需求进行一些杂乱的操作:有必要消耗很多的核算资源才能获得增加区块的权限(该机制被称为工作量证明)。此外,区块链仍是一个没有中心决议计划人物的去中心化数据库。因而,新区块的生成有必要经过网络中的其他成员的确认和授权(该机制被称为一致)。嗯,现在咱们的区块链完成没有包括买卖。

来历:娑婆诃花开

此时快讯

【MetisDAO发布新项目ZKM】7月13日消息,以太坊扩容解决方案MetisDAO发布其孵化的新项目ZKM。ZKM将在年底前上线测试网,将现有的OptimisticRollup升级为HybridRollup,实现及时提款(原来OP的提款期为7天)并确保安全性。
ZKM采用MIPS指令集,从CPU级别实现所有虚拟机(VMs)和应用的零知识证明(ZKP)安全性,并支持多种区块链智能合约引擎。此外,ZKM的即插即用特性使开发者无需更改代码库即可应用ZKP,降低采用成本。借助以太坊的大型分散安全基础设施,ZKM可以验证所有区块链和非区块链交易。

版权声明:本文收集于互联网,如有侵权请联系站长删除。
转载请注明:IMG数字货币交易所:用js实现区块链基本原型 | 币百度

相关文章