编辑: 645135144 | 2019-07-03 |
参见 2.4.2).因此帐户(和分片链之间的消息系统,因为 源和目标帐户通常在不同的分片链中)对于可扩展系统(如TON Blockchain) 是至关重要的.实际上 TON Blockchain 的这个新功能,我们称为即时超立方体 路由(Instant Hypercube Routing;
参见 2.4.20),使其能够将在一个 shardchain 块中创建的消息传递和处理到目标 shardchain 的下一个块中,而不用管系统中 shardchains 的总数. 2.1.4 主链,工作链和分片链的数量. TON Blockchain 只有一个主链.但该系统最多可容纳2% 个工作链,每个工作 链最多可细分成=2&
( 个分片链. 2.15 工作链可以是虚拟区块链,而不是真正的区块链. 因为工作链通常被细分为分片链,所以工作链的存在是 虚拟的 ,不是真正的 区块链,这意味着它不是下面 2.2.1 中提供的一般意义上的真正区块链,而只是 一个 shardchains 的集合.当只有一个 shardchain 对应一个工作链时,这个独特 的shardchain 可以用工作链识别,在这种情况下,工作链成为 真正的 区块 链,至少在一段时间内,它与传统单链区块链的设计非常趋同.然而无限分片 范式(参见 2.1.2)告诉我们,这种相似性只是表面:重要的是潜在大量的 account- chains(账户链) 可以组成一个区块链. 2.1.6 工作链的识别. 每个工作链都有序号或工作链的专属标识符(workchain_id:????% ),这是一 个无符号的
32 位整数.工作链由主链中的特殊事件创建,定义(先前未使用过 的)工作链的标识符和工作链的描述,使该工作链与其他工作链可以交互及验 证. 2.1.7 创建和激活新的工作链. 基本上任何社区成员都可以创建新的工作链,只需支付发布新工作链所需的 (高)主链交易费用.但为了使新的工作链更积极,它需要得到三分之二验证 者的共识,因为他们也需要升级软件来处理新的工作链的块,并通过一笔特殊 交易来表明它们已经准好用新的工作链了.对激活新工作链感兴趣的一方可能 会为验证者提供一些激励,通过智能合约分发的一些奖励来支持新的工作链. 2.1.8 鉴定分片链. 每个 shardchain 由一对(?,?)=(workchainid,shardprefix)标识,其中 workchain_id:????% 标识相应的工作链,shard_prefix:2((…&
() 是一个长度最多 为2的60 次方的字符串,来定义此分片链负责的帐户子集.即,所有具有以 shard_prefix 开头的 account_id 的帐户(即将 shard_prefix 作为最高有效位)将 被分配给该 shardchain. 2.1.9 识别帐户链. 回想一下, account- chains(账户链) 只是虚拟存在(参见 2.1.2).但是,它 们有一个自然的标识符――即(workchainid,account_id),因为任何帐户链里 都包含有关状态信息和与客户账户有关的智能合约更新(简单帐户或智能合约 ――在这里的区别并不重要). 2.1.10 shardchains 的动态拆分和合并(参照 2.7). 不那么复杂的系统可以使用静态分片――例如,通过使用 account_id 的前八位 来选择
256 个预定义分片中的一个. TON 区块链的一个重要特征是它实现了动态分片,这意味着分片数量不固定. 相反,如果满足某些条件,则分片(?,?)可以自动细分为分片(?,?. 0)和(?,?. 1)(实际上如果原始分片负载长时间过高/拥堵时间过长,则延长). 反过来如果负载在一段时间内都很低,则分片(?,?. 0)和(?,?. 1)可以自 动合并回分片(?,?).也就是说一开始只为工作链 w 创建了一个分片 (?,?).之后,如果有必要,它会细分为更多分片(参见 2.7.6 和2.7.8). 2.1.11 Basic workchain 或者 Workchain Zero. 虽然使用特定的规则和事务可以定义多达 2% 工作链,但我们最初只定义了一 个工作链,其中 workchain_id = 0.这个称为 Workchain Zero 或Basic workchain 的工作链是用于处理 TON 智能合约和转移 TON coins 的工作链,也称为 Grams.大多数应用程序只需要 Workchain Zero. Basic workchain 的shardchains 将被称为 basic shardchains. 2.1.12 出块时间.我们期望每五秒在 shardchain 和masterchain 中 生成一个新块. 这将会有非常短的交易确认时间.所有 shardchain 的新块几乎同时生成;