DeepHash专栏|Monoxide:突破区块链不可能三角的极简架构( 七 )

全网所有共识组用一个整数编号(0到n-1) , 我们限定共识组的总个数为 2 的 k 次幂 , 即n=2^k 。 任何一个账簿地址 , 根据其地址二进制数据的前 k 个比特 , 永久地被分配在一个共识组中 。 每个交易则根据交易的验证方的地址(例如转账交易的支付方) , 被分配在验证方所属的共识组 。 所以 Monoxide 网络的划分不需要任何中心化的机制来分配地址和交易 。

Monoxide 全网由各个共识组的出块和未确认交易集合完全独立 , 共识组之间完全并行、异步也无需锁定和同步 , 即使某一个共识组发生拥塞也不会干扰其它共识组的吞吐和出块 。

Monoxide 全网由各个共识组的广播子网所构成 , 但这些广播子网互相不重叠、不打搅 。 在我们的设计中 , 这些广播子网由 DHT 的 Swarm 实现 , 每一个广播子网对应一个 Swarm 。 新启动的全节点根据自身所在共识组编号 , 利用 DHT 的路由机制找到同一共识组里面的其它全节点 , 并尝试连接 。

全节点可以随机选择加入任意一个或多个共识组 , 或由上层应用来决定 。 例如 , 钱包节点通常会加入登录用户的钱包地址所在的共识组 , 以便维护其账户余额等状态 。 Monoxide 不记录任何用户登录状态或用户私钥 , 以避免以太网全节点之前出现的 RPC 接口安全隐患 。 除非其上层应用要求 , 通常一个共识组的全节点不会主动连接另一个共识组的节点 。

推荐阅读