Page 167 - 《软件学报》2026年第6期
P. 167
2486 软件学报 2026 年第 37 卷第 6 期
states 映射定义了平行链到其状态 ParachainState 的双射关系, 用于管理每个平行链的当前状态信息.
states : Parachain ↔ ParachainState
(3) 中继链状态模式
中继链状态通过 RelaychainState 模式进行建模, 描述了中继链中关键的数据结构, 具体见代码 4.
● metadatas: seq Metadata 记录了所有已收集的消息元数据, 为跨链消息的验证提供依据.
● validatedBlocks: seq Block 该序列存储了已被中继链验证的区块, 以确保区块链的一致性和安全性.
代码 4. RelaychainState.
metadatas: seq Metadata
validatedBlocks: seq Block
(4) 通道模式
通道管理部分定义了平行链之间消息传递所需的通道结构, 通过 Channel 模式 (见代码 5) 进行描述. 通道的
关键属性为源平行链和目标平行链, 用以明确通道的起点和终点.
代码 5. Channel.
S: Parachain
D: Parachain
4.1.2 操作模式
(1) 打开通道模式 (OpenChannel)
在 OpenChannel 操作 (代码 6) 模式中, 处理了平行链间通道的开启. 该操作首先检查发送者和接收者平行链
是否不同, 并且都属于已定义的平行链集合 (Parachains), 同时通过 mkChannel 函数确认通道尚未开启. 满足这些
条件后, 操作会将新的通道添加到开放通道集合中, 并在通道存款映射中记录相应的存款金额.
代码 6. OpenChannel.
openChannels, openChannels': P Channel
channelDeposits, channelDeposits': Channel↔DOT
S, D: Parachain
deposit: DOT
S , D ∧ {S, D}⊆Parachains ∧ ¬mkChannel(S, D) ∈ openChannels
⇒openChannels'=openChannels ∪ {mkChannel(S, D)}
∧ channelDeposits'=channelDeposits⊕{(mkChannel(S, D) 7→ deposit)}
(2) 消息收集模式 (CollectingMessage)
在消息收集模式中, 平行链 S 中的用户调用智能合约后, 平行链 S 的收集者接收到跨链数据 (ccdata). 收集者
将发送方平行链 S、接收方平行链 D、时间戳、消息大小及元数据打包生成跨链消息 M, 并将该消息放入平行链
S 的出口队列. 随后, 收集者将消息的元数据插入中继链的元数据序列 metadatas 中, 以便后续验证跨链消息的真
实性. 具体见代码 7.
代码 7. CollectingMessage.
ccdata?: string
S?, D?: Parachain

