20个稳定版本

1.3.17 2021年10月25日
1.3.14 2021年8月23日
1.3.12 2021年7月30日
1.2.0 2021年2月28日
1.1.4 2020年8月27日

#44#memory-pool

Download history 4/week @ 2024-04-21 1/week @ 2024-04-28 1/week @ 2024-05-26 3/week @ 2024-06-09 1/week @ 2024-06-16 1/week @ 2024-06-30

63 每月下载次数
用于 4 crates

GPL-3.0 许可证

2.5MB
4.5K SLoC

snarkos-consensus

Crates.io Authors License

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