交叉共享消息的事务规范

信息发送 3
NEW-SHARD 3
交叉-TX 3
投票-TX 4
运行-TX 5
事务列表同步 5

智能合约可以彼此之间(包括不同分片之间)交换消息。 达到当天最大量API KEY 超过次数限制

分片方案:

如果我们有一个节点同时挖掘多个分片,那么在创建一个块时,它可以向其中添加特殊交易,其中包含有关其他分片中存在的信息的信息,这些信息用于我们的区块链。 在创建块之前,此类事务本身不参与节点之间的交换。 它们只能与块不可分割地传输到其他节点

矿工通过特殊的投票交易创建虚拟链,以区块中特定的消息组成来投票,链中包含的区块越多,消息越可靠。 当达到最初设置的某个阈值时,该消息将固定在收件人分片中。 实际上,矿工扮演着先知的角色-见证了源碎片中任何信息的存在

通过分片1中的一种方法和分片2中的三种类型的事务来执行此机制:

碎片1

从智能合约代码中调用的SendMessage内置方法,例如,在将钱接收到作为将价值转移到另一个分片的渠道的账户时。 消息只能转移到智能合约的基本账户。 操作:所有节点(在处理过程中):写入传出消息表CrossOut Miner:通过专用通信通道将分片1的CrossOut表的当前状态传输到分片2的输入表中

碎片1和2

NEW-SHARD注册一个新的分片以与此区块链格式交换:

Type: "byte",

ShardName: "str5",

Description: "str40"

操作:用户启动程序:发送一个具有唯一的分片名称的交易(用于创建交换通道),必须付费以防止DDOS。 所有节点(在处理过程中):在通道列表中输入新名称。

碎片2

CROSS-TX出现来自另一分片格式的新消息:

Type:"byte",//150

BlockNumFrom: "uint32",

TrNumFrom:"uint16",

ShardFrom: "str5",

AccountFrom: "uint32",

Iteration: "byte",

Mode: "byte",

ShardTo: "str5",

AccountTo: "uint32",

MethodName: "str",

Params: "str"

例:

{ "Type": 150,

"BlockNumFrom": 55186,

"TrNumFrom": 0,

"ShardFrom": "TERA",

"AccountFrom": 45,

"Iteration": 2,

"Mode": 1,

"ShardTo": "TEST",

"AccountTo": 45,

"MethodName": "SendMyToken",

"Params": `{"Gate":45,"To":"13","Sum":100,"Description":"Test 1"}`}

操作:矿工:如果尚未在先前的有效块中添加新事务,则将其添加到该块中(比较CrossIn和CrossRun表+未处理的块)所有节点(在处理过程中):写入CrossRun表

VOTE-TX

矿工构建虚拟区块链,并因此对消息的组成进行投票。如果前一个矿工的块没有错误,则从中创建一个新块;如果该块至少包含一个错误,则将其丢弃,最后一个正确的块被当作前一个块。该方案与根据赞成或反对方案的投票相同,在该方案中,投票的权重彼此相等。使用此方案,只有在投票期间存在51%的恶意矿工时,才有可能发起攻击。投票期持续到领导者和孤儿链的高度差达到预定值为止(例如,快速通道为100个块,非常可靠通道为100万个块)

例:

Type: "byte",

ShardArr:[{ Shard: "str5",

PrevBlockNum: "uint32",

PrevTrNum: "uint16" }]

行动:矿工:向该区块添加一个交易,指示该链的最后一个有效区块。 矿工(在处理过程中):将链接添加到私有数据库中的最后一个有效块。

运行TX

当达到所需的块高度时,矿工将RUN-TX事务添加到他的块中以开始处理交叉共享消息,即 启动智能合约方法,该方法在CROSS-TX事务中指定(顺便说一句,该事务在con变量中指定)

例:

Type: "byte",

BlockNum: "uint32",

TrNum: "uint16"

动作:矿工:添加具有已经可以启动执行的消息的事务所有节点(在处理过程中):定义启动条件(存在所需的块高,尚未启动),启动智能合约,设置标志。

同步交易清单:

我们需要实现源节点和目标节点之间的交互事务列表的相同状态。 由于区块链在寻找领导者时经常重写区块链的属性,因此此类列表中的定性不断被修改。 提出了这样的解决方案:该列表包含SNum和SHash字段,其中针对每个分片分别写入顺序编号和与前一行关联的哈希。 因此,SNum + SHash对可以是一种迭代器,用于在异步模式下快速同步两个列表。

逻辑:

1.在目标接收端,我们从列表中获取最后一个SNum + SHash值,并将其用作迭代器,然后将其传递到Src源端。2.在Src端,将行中的哈希值与SNum编号进行比较
一个。如果匹配,则返回“结果:1”和一个Arr数组,该数组的字符串与SNum + 1的字符串开头(即不在Dst列表中)b。如果不匹配,则返回“结果:0”。3.目标方:如果结果为正,则加载新数据b。如果为零,我们将迭代器数量减少Delta值。如果重复出现零结果,则将Delta增加10%,但前提是其值不超过SNum余数的1/20(以防止巨大的退步)

1.《tera职业看这里!泰瑞TERA成功分片,成为区块链领域分片领头羊》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《tera职业看这里!泰瑞TERA成功分片,成为区块链领域分片领头羊》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.cxvn.com/gl/djyxgl/228756.html