美文网首页技术干货程序员H5技术栈
JS 实现区块链—记账激励

JS 实现区块链—记账激励

作者: zidea | 来源:发表于2018-11-16 20:29 被阅读18次

在比特币的世界里,挖矿是有奖励的,而且奖励的力度会随时间而逐渐减少,一半一半地减少。当初挖矿(记账)成功会得到 50 个比特币的奖励,而现在只有 25。以后会更少。今天我们就用 js 简单地实现激励记账的过程。

修改 data 为 transactions ,transactions 为交易的集合,通过控制计算 hash 值难度将出矿的时间控制为需要一段时间才能出矿。所以在这段时间内发生交易我们会添加到这个 transactions 数组,

我们去掉 index,因为只需要块在区块链数组位置就可以判断块位置,无需 index。

相应地修改 createGensisBlocak 方法,去掉第一个参数。

创建 Transaction 类表示每一笔交易,参数表示交易的发出方,接收方和交易的数量

在 BlockChain 的构造函数中添加每次挖矿的奖励为 100,pendingTransactions 用于保存在两个出块之间发生的所有交易。

将 addBlock 方法修改为 minePendingTransactions,并修改其具体内容见注释。

createTransaction 方法用于将发生的交易写入 pendingTransactions 的数组中。

getBalaceOfAddress 方法用于计算发生交易后,根据交易内容,对交易双方进行收支平衡计算。实现交易的结果

完成了代码实现,可以来测试一下,从下面打印结果来看,矿工完成挖矿(也就是记账)后,是在下一次交易时才得到自己应得的激励 100 比特币。

当然真正的区块链要比这里代码复杂的多的多,不过我相信一切都是从简单开始。

相关文章

  • JS 实现区块链—记账激励

    在比特币的世界里,挖矿是有奖励的,而且奖励的力度会随时间而逐渐减少,一半一半地减少。当初挖矿(记账)成功会得到 5...

  • 庖解智能合约

    0 昨天我们讲到了区块链的记账原理,按发展阶段来看,可以看做是区块链1.0阶段,在这个阶段区块链主要是为了实现货币...

  • AEP以区块链分布式记账减少农产品流通环节

    区块链在农业领域是否具有很大的应用潜力?区块链是比特币的底层技术,该技术可实现分布式记账,但账本不可篡改。区块链可...

  • 5.区块链挖矿与交易实现

    本段代码将实现:1.区块链挖矿;2.挖矿后获得记账权;3.将链中的交易打包进区块。 NiuCoinBlockCha...

  • JS 实现区块链—工作量证明

    今天我们通过 js 实现一个区块链应用,帮助您更好地理解区块链技术原理 创建区块链 区块链验证 工作量证明防纂改 ...

  • 五分钟商学院刘润老师话说:什么是区块链

    区块链是什么?区块链是加密的分布式记账技术。 来听听刘润老师如何理解区块链,其把区块链拆分为三部分:加密、记账、分...

  • 区块链随想(四)创新

    这次聊聊加密货币到现在出现的两大创新:区块链,通证激励。 区块链的创新是用数学方法解决了分布式共同记账的信任问题。...

  • 恶搞块

    本文是对区块链的一种恶搞。当然,说是说恶搞,恶搞的是实现手法,而不是目的。 目录 为什么是区块链 恶搞块记账· 分...

  • 一个简单区块链系统的实现

    使用node.js来实现一个简单的区块链系统。 运行效果图后续会放上。 一、区块和区块链的创建 区块链是一串使用哈...

  • 区块链100问(51-60)

    51、区块链资产的特点——匿名性 - 区块链100问第51集 52、区块链资产的特点——去中心化记账-区块链100...

网友评论

    本文标题:JS 实现区块链—记账激励

    本文链接:https://www.haomeiwen.com/subject/ivkpfqtx.html