
网络分片
注意:这是关于如何组织网络以满足未来数据分片需求的高级想法。这个想法可以看作是 PeerDAS 和 SubnetDAS 提案的后续。在某些方面,它补充了这些提案,而在另一些方面,它可以作为这些提案的替代方案。
最基本的想法是将网络分成 N 个(假设 N = 32 作为初始方法)网络分片,并让每个分片负责:
- 传播(推送)整个 Gossip 网络流量的
1/N,作为各种子网(例如,证明、同步委员会和未来的 DA 采样子网)的骨干 - 保管和服务(拉取)
1/N的网络数据(DA 样本、blob 切片、潜在的区块)
数据传播(Gossip 子网骨干)
这个想法可以被认为是广义的 Attnet Revamp spec PR
类似于 Attnet Revamp,网络中的每个节点在任何时刻都被分配到一个网络分片。节点作为一个 Gossip 骨干,服务于静态分配给该分片的一组 Gossip 子网。同样类似于 Attnet Revamp,节点以确定性的方式在网络分片之间循环。
这个概念的主要优势是能够统一且安全地支持更小尺寸的 Gossip 子网(甚至是单个发布者和单个订阅者的极端情况)。网络分片的概念也为推/拉数据传播建立了一个额外的抽象层。
注意:单个 Gossip 子网(主题)可能跨越多个分片(明显的例子是跨越所有分片的
beacon_block主题)。
数据保管
除了服务于分配给分片的 Gossip 骨干外,节点还承诺保管和服务于在该分片主题上发布的数据。数据保留策略应该是特定于主题的。
当一个节点加入或重新连接到网络时,它应该填补缺失的过去数据的保管空白,以诚实地履行其职责。
注意:由于节点随着时间的推移在分片之间循环,因此以客户端的身份检索历史数据并不那么直接。可以利用不同的实现策略来优化此过程。
自愿分片参与
具有高带宽和存储能力的节点可能自愿希望加入到多个网络分片。这可以通过 PeerDAS write up 中提出的方法来实现。
Danksharding 应用
现有方法的问题
- 查找和连接到抽象子网基本上很慢并且需要不可预测的时间
- 小型子网容易受到女巫攻击
- 拉取随机样本(在追赶头部时)也很慢且不可预测
推送采样
让我们考虑原始的 Danksharding DAS(数据可用性采样)。每个 slot 256K(512 * 512)的数据样本需要发布。每个节点只需要接收其中的 75 个(由节点随机选择)。理想情况下,一个节点应该在每个 slot(或至少每隔几个 slot)验证不同的随机样本子集。
可以有 256K 样本子网分布在所有分片上(例如,每个分片 8K 个子网)。
一个采样节点(从“客户端”的角度来看)应该只维护与来自所有分片的节点之间的稳定和平衡的连接。
注意:如果可以放宽采样算法,则对于常规节点可以放宽上述连接到所有分片的要求:例如,节点可以随机选择并缓慢旋转分片子集,并从分配给所选分片的那些样本子网中随机选择样本子集。但是,对于任何放宽的方法,都需要重新审视安全属性。
节点将能够订阅/取消订阅相应的样本子网,几乎是立即的,因为无需搜索和连接到子网节点
这个概念满足了各种采样方法的需求,包括原始的 Danksharding、SubnetDAS 方法
拉取采样
拉取最近的样本非常简单:使用特定的 RPC 方法从分配给相应分片的节点请求样本。
由于分片节点的轮换,拉取历史样本有点棘手。但是,可以使用各种策略来优化该过程:
- 在搜索和连接到缺失样本的节点时,检索当前连接的节点可用的样本
- 可能采用更宽松的采样策略,并略微放宽安全属性
未解决的问题
- (技术) Gossip 实现是否能够处理该数量级(10K 左右)的主题订阅?
- (Gossip 协议 更改) 主题通配符?例如
das_shard_N_sample_* - (Gossip 协议 更改) 主题层次结构?例如
das/shard_N -> das/shard_N/sample_M - (Gossip 实现 更改) 按需订阅?分片节点订阅单个子网
das_shard_N,但如果客户端发起subscribe das_shard_N_sample_M消息,则节点会回复相同的subscribe消息
- (Gossip 协议 更改) 主题通配符?例如
- (技术) 当节点(作为客户端)订阅一个主题时,及时包含到 mesh 中的概率是多少?否则客户端只能通过 gossip 收到消息(大约 500 毫秒的额外延迟)
- 在节点跨分片轮换中增加交错(在提出 Attnet Revamp 时已经讨论过)
- 在跨分片轮换中增加随机性,使得只能预测接下来
M个 epoch 的分片分配。这将有助于缓解对单个分片的女巫攻击(保证在发现中存活超过M个 epoch 的节点不是专门为女巫攻击而设计的)(在提出 Attnet Revamp 时已经讨论过) - 分片数量:
- 较少数量分片(每个分片更多节点)的缺点
- 每个节点更高的吞吐量和 CPU 负载
- 每个节点更大的保管存储
- 较多数量分片(每个分片更少节点)的缺点
- 可靠性较低
- 更容易受到攻击(女巫/日蚀)
- 需要连接到所有分片(例如,用于完整采样)的客户端节点需要更多的对等连接
- 原文链接: ethresear.ch/t/network-s...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~