点击阅读前文《Eth1.x 术语表(上)》 节点行为 Gossip事务广播 P2P 网络的功能,帮助分发 新的 事务到网络中的所有节点依赖于节点能够访问 ETH DevP2P Protocol 或者 LES DevP2P Protocol依赖于执行事务验证的能力来防止对节点的 DoS 攻击而验证事务是计算密集型的(译者注:计算密集是重点吗?还是具备相关状态数据的需求才是重点?)区块广播 广播最新的区块依赖于区块验证的能力历史数据检索检索区块头根据哈希根据区块号可批请求,所请求内容必须是连续的,或者其前后之间有一致的间隔检索区块体所得数据需要根据 Header.transactions_root 和 Header.uncles_root 来验证(译者注:即依据本地已有的区块头数据来验证相应区块体的完整性)检索收据根据区块分批检索所得数据需要根据 Header.receipts_root 来验证状态检索根据哈希值来检索单个状态树节点在未来的协议中有可能会移除,因为这种检索机制与 flat database layout 有冲突追随区块链依赖于节点能访问区块广播网络依赖于具有从全体区块头中获得的近期区块头依赖于执行区块验证的能力来防止 DoS 攻击事务验证验证事务需要: 有能力执行 ecrecover 操作来确定发送者(译者注:即从签名数据中恢复出发送者的地址)确认该事务的 nonce 正是 该发起事务的账户的下一个 nonce确认该账户的余额足以支付该事务的 gas(译者注:该检查的方法应为 余额 > 该交易指定的 gas price * gas limit)需要了解 EVM 的规则来计算事务的 gas 值区块验证区块验证包含下述事项中的所有内容: 检查工作量证明的 seal计算密集型比较同一高度上其它竞争区块的挖矿总难度执行交易,以验证 Header.state_root 的正确性需要区块执行能力计算密集型主链索引 主链区块索引把区块号映射为该高度的主链区块的哈希值 需要从全部区块头中构建每 100 万个区块,存储映射需占用 61 MB每个条目需要 64 bytes(字节)区块号需要 32 字节可以使用更高效的变长编码方法来减少长度区块哈希值也要 32 字节截至 2021 年 1 月 29 日,主链区块索引总共占用约 600 MB 的空间只能够通过验证所得区块哈希是否等于该高度上已知主链的区块哈希值来证明如果能为协议引入区块头累加器的话,证明效率可以更高主链事务索引把事务的哈希值映射成该事务所在主链区块的哈希值,以及该事务在该块内的索引值。 需要从历史区块体中构建截至 2021 年 1月 29 日,总共有 10 亿笔历史事务每个条目都需要占用 70 字节事务哈希值 32 字节主链区块哈希值 32 字节事务索引 4 字节可以使用变长编码方法来稍微减少长度截至 2021 年 1 月 29 日,这些索引总共占用 65 GB 空间可以使用根据 Header.transactions_root 生成的默克尔证据来证明 (责任编辑:admin) |