织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 区块链

跨链进入下半场,哪些问题值得我们深思?(3)

时间:2022-01-17 12:08来源:未知 作者:admin 点击:
LayerZero的白皮书大概这样描述这个方案(我尽量翻译) 上图说明了有效传递单个LayerZero消息所涉及的步骤,图中每个黑底的数字代表了一个步骤。 **步骤




LayerZero的白皮书大概这样描述这个方案(我尽量翻译)


上图说明了有效传递单个LayerZero消息所涉及的步骤,图中每个黑底的数字代表了一个步骤。


**步骤1:**链A(AppA)上的用户应用程序作为事务t的一部分执行一系列的动作。我们通过交易标识符t来唯一标识事务T,t的格式可能会根据链A的类型而有所变化。事务T中包含的一个步骤是通过LayerZero传输有效传递。为了说明目的,并且不丧失一般性,我们假设在这个场景中Appa使用我们的模版中继器。AppA向LayerZero通信器发送一个包含以下信息的请求:


t:代表唯一的事件识别符


dst:代表指向链上智能合约的全局识别符


payload:代表链A应用希望传送给链B应用的任何消息数据


relayer_arge:代表在链A应用希望采用图中所示的模版中继器(layerZero提供的一个可自定义的中继器)时所提交的支付信息的一些参数


**步骤2:**通信器(Communicator)构造一个包含dst和payload的LayerZero数据包,称为数据包(dst、payload),并将它与t和relayer_args一起发送给验证器(Validator)。


**步骤3:**验证器(Validator)将t和dst发送到网络。此步骤通知网络,需要将链A上当前块的块头发送到链B。


**步骤4:**验证器(Validator)将包(dst、有效负载)、t和relayer_args转发到中继器(Relayer),通知中继器(Relayer)需要预取T的事务证明并最终发送到链B。这与步骤3同时发生。


**步骤5:**网络将当前事务(cur_blk_id)的块ID发送给Oracle。这将通知Oracle获取链A上当前块的块头,并将其发送到链B。如果在同一块中发生了多个LayerZero事务,则步骤5只执行一次。


**步骤6:**Oracle从链A中读取块头(blk_hdr)。


**步骤7:**中继器(Relayer)从链A读取与交易T关联的交易证明(证明(t)),并在链外存储。步骤6和步骤7彼此异步发生。


**步骤8:**Oracle确认blk_hdr对应的块在链A上稳定提交,然后将blk_hdr发送到链B上的网络。确定每条链何时发生这种情况的机制是不同的,但通常需要等待一定数量的块确认。


**步骤9:**网络将指定为blkJhdrJhash的区块hash发送给验证器(Validator)。


**步骤10:**验证器(Validator)将blkJhdrJhash转发到中继器(Relayer)。


**步骤11:**在接收到blk_hdr_hash之后,中继器(Relayer)发送与当前块匹配的所有包(dst、payload)、t、证明(t)元组的列表。如果多个用户在同一端点之间同时发送消息,则在同一块内可能存在多个数据包和关联的事务证明。 (责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容