20个稳定版本
1.3.17 | 2021年10月25日 |
---|---|
1.3.14 | 2021年8月23日 |
1.3.12 |
|
1.2.0 | 2021年2月28日 |
1.1.4 | 2020年8月27日 |
#44 在 #memory-pool
63 每月下载次数
用于 4 crates
2.5MB
4.5K SLoC
snarkos-consensus
snarkOS-consensus 定义了Aleo网络的共识机制 - 如何验证区块,发放区块奖励,确定区块时间/难度,以及如何挖矿。
区块
区块难度和区块时间
区块时间是网络产生一个有效区块所需的时间。这个区块时间是可变的,基于网络的算力,但由区块难度调节。区块难度根据最近区块时间进行调整,以调节和稳定网络的平均区块时间。
区块奖励
区块奖励是奖励给挖出区块的地址的Aleo信用总额。这个值是基础区块奖励,加上包含在区块中的所有交易支付的费率。
区块编号 | 奖励 |
---|---|
0 - 3,503,999 | 150 ALEO |
3,504,000 - 7,007,999 | 75 ALEO |
7,008,000 - ∞ | 37.5 ALEO |
最初,每个Aleo区块奖励价值150个Aleo信用。这个区块奖励每3,504,000个区块减半一次,大约是每小时的估计100个区块的四年。经过两次减半,区块奖励将永久保持在37.5。
验证
区块验证是共识过程,它检查区块在账本中的有效性。如果一个区块中的所有交易都有效,区块交易的总价值平衡正确,没有重复消费,并且区块头属性有效 - 时间戳、nonce、PoSW证明、Merkle树哈希、难度目标等,则该区块有效。
内存池
全节点需要跟踪可以包含在将来区块中的交易。因为这些未确认的交易尚未包含在账本中,所以节点将它们存储在内存中,因此得名内存池。
当节点关闭或交易包含在有效的区块中时,交易将从内存池中移除。
包含在过时区块中的交易可以重新添加到内存池中,因为它们不再与最长链上的交易发生冲突。
矿工
矿工是Aleo矿工的CPU实现,它从内存池中检索交易并尝试计算一个有效的nonce来解决简洁工作证明难题。
成功找到有效区块后,矿工因其贡献获得区块奖励。
依赖项
~49MB
~602K SLoC