GBT交易验证机制

1. 微小节点交易的生成

  • 由微小节点生成的GBT传送交易发送至超级节点。

2. 生成超级节点验证池

随机选定GBT验证者

  1. 3个超级节点会参照在线展示板,并按照排序来选定微小节点。

  2. 3个筛选型超级节点会按照顺序随机选择3%,作为微小节点验证者。

  3. 选择验证者的超级节点是按照超级节点登录的顺序进行排定的。当有新的超级节点加入时,则将其排到末尾。所有的排序结束后,新加入的超级节点则会按照此前的排序再次进入首位。

记录验证者的选定结果

为知晓何种微小节点成为了验证者,超级节点则把结果值记录到区块中。

3. 超级节点的交易排序以及转达

交易排序的必要性

  1. 如果与交易时所需的金额相比,在余额不足的情况下,交易能否能被接收也可能因其排序的不同而产生变化。

  2. 在验证交易的过程中,哪些交易该优先处理,因此有必要对交易进行排序。

选定对交易进行排序的超级节点

  • 交易的排序是由一个超级节点根据超级节点间制定的顺序依次进行,顺序的排定则是按照超级节点登录的顺序进行, 所有的排序结束后,超级节点则会按照此前的排序再次进入首位。

交易的排序与传达

  1. 超级节点按照接收到的交易顺序对交易进行排序,并制定对交易的处理顺序。

  2. 受到验证处罚的微小节点在生成交易时,该节点提交的交易在排序等待验证的过程中会被置于后位。

  3. 若同一时间接收到两个交易,则由超级节点来裁定其顺序。

发送给验证者的捆绑交易数量

  1. 当交易的排序数量较少,或是交易传播的数量增多时,通过验证池的生成确保网络的效率。

  2. 交易的排序数量较多时,交易处理的速度不会下降。

  3. 即使过了一定的时间,相应的(交易排序值)没有被排满,这一部分交易仍旧会被传送至微小节点。

4. 微小节点的交易验证

交易的验证

  1. 微小节点将下载的交易同自身持有的状态值相比较,以此来判断该交易是否有效。

结果值验证投票以及有效区块的选定

  1. 微小节点验证者把自身验证的有效交易置入到区块中。

  2. 相应区块的哈希值发送至参与选定验证者的3个超级节点中去。

  3. 此时,对于何种节点对应支付了多少值的投票结果则由超级节点来决定。

5. 区块的确定

超级节点的GBT区块确定

  1. 接收哈希值的超级节点,记录着哪个节点提交了什么值,以及哪个节点是否有反馈答案。

  2. 3名超级节点根据验证值投票决定是否生成GBT区块。如果超过 2/3以上同意,则会创建GBT区块。

  3. 超级节点认为经2/3以上节点同意的哈希值是可以信赖的,然后会下载微小节点对应的区块并将其连接起来。这些新连接的区块被定义为最新状态值。

  4. 接收到哈希值的超级节点中若有超过2/3拒绝该区块的创建,该区块的创建则会被视为无效。之后验证池会重新挑选哈希值进行验证。

  5. 若有超级节点反对2/3以上节点所同意的内容,该超级节点质押的代币会被削减。(详细内容请参照 参与者-超级节点)

共享最新状态值

  • 超级节点会一直公开系统中的最新状态,并对微小节点们最新状态进行更新。

再次验证

  • 在100个验证者中,若有超过2/3的验证者未能在特定时间内达成共识,这种情况下则要重新选择验证池,整个验证过程也须重新进行。

    若验证过程执行3次以上也未能够完成,则所有超级节点都要参与此次验证。

6. 微小节点错误验证的处罚

错误的范围

  • 验证时间内未能验证出示的哈希值,或未能出示与2/3 验证者的相符的结果,以上这些情况被判断为是微小节点的错误验证。

GC 参照

  • 超级节点会将微小节点的验证结果同区块中记录的内容相对照,超级节点会根据参照的结果运行相应的奖励合约。(详细内容请参照 GBT Protocol 智能合约验证机制)

利用交易排序进行的处罚

  1. 进行错误验证微小节点,其发送的交易在处理的顺序中会被置于后位。其SC的驱动(运行)也会被置于后位。

  2. 例如,一般微小节点生成交易其指数为100,发生一次错误交易的微小节点其指数为99,指数为99的微小节点提出交易验证申请时,整个验证池则是在处理完其他交易后,再处其进行处理。

  3. 一周之后,节点的交易指数值恢复正常,便可获得正常的交易排序。