LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资产 > 【译文】阿童木COSMOS白皮书(九)

【译文】阿童木COSMOS白皮书(九)

2020-01-06 灰狼 来源:区块链网络

10.7IBC包传送确认

发送方可能希望接收链确认数据包的发送,这有几个原因。例如,如果预期目标链有故障,则发送方可能不知道其状态。或者,发送方可能希望对数据包施加超时(使用MaxHeight数据包字段),而任何目标链都可能遭受拒绝服务攻击,并且传入数据包的数量突然激增。

在这些情况下,发送方可以通过将初始分组状态设置为AckPending来要求传递确认。然后,接收链负责通过在应用程序Merkle哈希包含缩写的IBCPacket来确认交付。

首先,在“Hub”上发布了一个IBCBlockCommit和IBCPacketTx,证明了在“ZONE1”上存在一个IBCPacket。假设IBCPacketTx具有以下值:

§ FromChainID: “Zone1”

§ FromBlockHeight: 100 (比如说)

§ Packet: 一个IBCPacket:

§ Header: 一个IBCPacketHeader:

§ SrcChainID: “Zone1”

§ DstChainID: “Zone2”

§ Number: 200 (比如说)

§ Status:AckPending

§ Type: “coin”

§ MaxHeight: 350 (比如 “Hub”当前高度 300)

§ Payload: < “代币”有效载荷的字节>

接下来,在“ZONE2”上发布了一个IBCBlockCommit和IBCPacketTx,证明了在“Hub”上存在一个IBCPacket。假设IBCPacketTx具有以下值:

§ FromChainID: “Hub”

§ FromBlockHeight: 300

§ Packet: 一个IBCPacket:

§ Header: 一个IBCPacketHeader:

§ SrcChainID: “Zone1”

§ DstChainID: “Zone2”

§ Number: 200

§ Status:AckPending

§ Type: “coin”

§ MaxHeight: 350

Payload: <”代币”有效载荷的相同字节>

接下来,“Zone2”必须在其应用程序哈希中包含一个显示AckSent的新状态的缩写包。一个IBCBlockCommit和IBCPacketTx被发布在“Hub”上,这证明了在“ZONE2”上存在一个缩写的IBCPacket。假设IBCPacketTx具有以下值:

§ FromChainID: “Zone2”

§ FromBlockHeight: 400 (比如说)

§ Packet: anIBCPacket:

§ Header: anIBCPacketHeader:

§ SrcChainID: “Zone1”

§ DstChainID: “Zone2”

§ Number: 200

§ Status:AckSent

§ Type: “coin”

§ MaxHeight: 350

§ PayloadHash: <“代币“有效载荷的哈希字节等同值>

最后,“Hub”必须更新从AckPending 到AckReceived的数据包状态。这种新的最终状态的证据应该回到“区域2”。假设IBCPacketTx具有以下值:

§ FromChainID: “Hub”

§ FromBlockHeight: 301

§ Packet: anIBCPacket:

§ Header: anIBCPacketHeader:

§ SrcChainID: “Zone1”

§ DstChainID: “Zone2”

§ Number: 200

§ Status:AckReceived

§ Type: “coin”

§ MaxHeight: 350

§ PayloadHash: <“代币“有效载荷的哈希字节等同值>

同时,“区域1”可以乐观地假设“代币”包的成功交付,除非“Hub”上证明了相反的证据。在上面的例子中,如果块350的“Hub”没有从“Zone2”接收AckSent状态,它将自动将状态设置为超时。超时的证据可以在“Zone1”上发布,并且任何代币可以返回。

—-

编译者/作者:灰狼

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...