22、区块链的链规则、节点管理与账户体系搭建

区块链的链规则、节点管理与账户体系搭建

1. 最长链规则

在区块链网络中,由于所有配备矿工的节点会同时工作,多个节点可能会同时挖出具有相同前序区块的新区块,这就会产生两条并行的链,即所谓的分叉。这些分叉都需要被管理,直到达成共识确定保留哪一条链。通常,区块链的共识机制会优先选择最长的链。为了性能考虑,所有分叉都会被保留在内存中,以防其中某条分叉再次变长。一般来说,经过12个区块后,一条分叉就可以被认为不再相关。

2. 存储和切换链分叉

为了管理多个链分叉,需要对 Blockchain 类进行一些准备工作:
- 添加链列表属性 :在 Blockchain 类中添加一个名为 altChains 的链列表属性,并在构造函数中使用支持并发的 CopyOnWriteArrayList 来初始化该列表。同时,将 chain 属性添加到列表中, chain 属性始终包含矿工将操作的最长链。
- 定义最佳区块属性 :定义一个 Block 类型的属性来表示最佳区块,矿工将使用该区块作为前序区块。在构造函数中,将创世区块定义为初始的最佳区块。

以下是相关代码的实现步骤:
- getChainForBlock 方法 :该方法用于查找给定区块所属的链。首先检查 chain

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值