跳到主要内容

无限分片范式

理解TON区块链中的拆分合并

TON(Telegram Open Network)区块链引入了一些创新概念来提高区块链的可扩展性和效率。其中一个概念是拆分合并功能,这是其区块链架构的一个组成部分。本短文探讨了TON区块链中拆分合并的关键方面,重点讨论其在无限分片范式(ISP,Infinity Sharding Paradigm)中的作用。

无限分片范式(ISP)及其应用

ISP是TON区块链设计的基础,将每个账户视为其独立的“账户链”的一部分。这些账户链然后被聚合到分片链块中以提高效率。一个分片链的状态包括其所有账户链的状态。因此,一个分片链区块本质上是一系列分配给它的虚拟账户区块的集合。

  • ShardState:近似表示为 Hashmap(n, AccountState),其中n是account_id的位长度。
  • ShardBlock:近似表示为 Hashmap(n, AccountBlock)。

每个分片链,或更准确地说,每个分片链区块,由workchain_id和账户id的二进制前缀s的组合来标识。

分片示例

在提供的图形方案中:

  • 黑线代表主链。
  • 工作链的分片按时间划分,用黑色虚线表示。
  • 区块101、102、103和80与序号为29的主链块相关。这里,101、102和103在一个分片中,而80在另一个分片中。
  • 如果发生拆分或合并事件,受影响的分片会暂停,直到下一个主链块。

总之,TON区块链中的拆分合并是一个复杂但高效的机制,增强了区块链网络的可扩展性和交互性。它体现了TON解决常见区块链挑战的方法,强调效率和全局一致性。

分片细节

分片链的拆分和非拆分部分

一个分片链块和状态分为两部分:

  1. 拆分部分:符合ISP形式,包含特定于账户的数据。
  2. 非拆分部分:涉及区块与其他区块和外部世界的交互相关的数据。

与其他块的交互

非拆分部分对于确保全局一致性至关重要,简化为内部和外部的局部一致性条件。它们对以下方面非常重要:

  • 分片链之间的消息转发。
  • 涉及多个分片链的交易。
  • 交付保证和验证,关于区块的初始状态与其前一个区块的一致性。

入站和出站消息

分片链区块的非拆分部分的关键组成部分包括:

  • InMsgDescr:导入到区块中的所有消息的描述。
  • OutMsgDescr:区块导出或生成的所有消息的描述。

区块头和验证者签名

区块头,另一个非拆分组件,包含工作链id、账户id的二进制前缀和各种哈希(例如,前一个的哈希)等重要信息。验证者签名被附加到未签名的区块上,形成签名区块。

出站消息队列

分片链状态中的OutMsgQueue是一个关键的非拆分部分。它保存OutMsgDescr中的未处理消息,直到它们被处理或发送到目的地。

分片的拆分和合并机制

在动态分片的背景下,分片配置可能因拆分和合并事件而变化。这些事件与主链区块同步。例如,如果发生拆分或合并,受影响的分片会等待下一个主链区块之后再继续。

参阅