区块链的链规则、节点管理与账户体系搭建
1. 最长链规则
在区块链网络中,由于所有配备矿工的节点会同时工作,多个节点可能会同时挖出具有相同前序区块的新区块,这就会产生两条并行的链,即所谓的分叉。这些分叉都需要被管理,直到达成共识确定保留哪一条链。通常,区块链的共识机制会优先选择最长的链。为了性能考虑,所有分叉都会被保留在内存中,以防其中某条分叉再次变长。一般来说,经过12个区块后,一条分叉就可以被认为不再相关。
2. 存储和切换链分叉
为了管理多个链分叉,需要对 Blockchain 类进行一些准备工作:
- 添加链列表属性 :在 Blockchain 类中添加一个名为 altChains 的链列表属性,并在构造函数中使用支持并发的 CopyOnWriteArrayList 来初始化该列表。同时,将 chain 属性添加到列表中, chain 属性始终包含矿工将操作的最长链。
- 定义最佳区块属性 :定义一个 Block 类型的属性来表示最佳区块,矿工将使用该区块作为前序区块。在构造函数中,将创世区块定义为初始的最佳区块。
以下是相关代码的实现步骤:
- getChainForBlock 方法 :该方法用于查找给定区块所属的链。首先检查 chain
超级会员免费看
订阅专栏 解锁全文
1226

被折叠的 条评论
为什么被折叠?



