SC事务验证机制

1. 创建与微小节点相关的SC事务

微小节点的交易生成

  1. 微小节点来创建能够运行SC的事务。

  2. 生成的事务会传送至超级节点。

2. 验证池的选定

将保留源文件的节点选定为验证者

  • 选拔那些保留有对各类事务存有需求的源文件的宏节点,作为处理相应交易的验证者。

将验证者记录上链

  • 对于何种节点保留有何种源文件的相关信息,则是由筛选型超级节点来决定。筛选型超级节点会决定何种节点该存有何种源文件,并将相关的信息记录在区块中。

3. 超级节点的事务排列以及传送

对事务进行排序的必要性

  • 当事务处理的先后顺序显得尤为重要时,系统中需要制定一个关于该优先处理哪些事务的标准。

选择负责事务排序的超级节点

  • 事务的排序是由一个超级节点,按照超级节点间制定好的顺序依次进行。

事务排序的方式

  1. 超级节点在接受到发自微小节点的事务后,按照接收的时间顺序将其进行排列。即使是同一时间发生的事务,优先传送至超级节点的事务则被优先排列。

  2. 创建事务的微小节点在接受到处罚时,其发送的事务在排序中会被置于后位。

发送给验证者的捆绑事务数量

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

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

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

4. 宏节点的验证

接受事务

  • 被选定为验证者的宏节点来下载超级节点已排列好的事务。

验证方式

  • 运行与接受到的事务所相关的源文件和SC后,会算出相应的结果值。

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

  1. 创建存有各个源文件所对应的事务以及结果值的区块,并向超级节点提交哈希头。

  2. 相应区块的哈希值传送至3名超级节点。

  3. 接受投票结果值的超级节点则按顺序对其进判定。

5. 区块的确定

超级节点的SC区块确定

  1. 接收哈希值的超级节点,记录着各类源文对应的验证者中谁提交了什么值,谁是否有提交相应的答案。

  2. 3个超级节点根据源文件的类别以及相应的验证值对是否该生成GBT区块进行投票,超过2/3同意时,GBT区块即可生成。

  3. 超级节点认为经2/3 以上节点同意的哈希值是正确的,并会把相应宏节点提供的交易内容下载下来创建SC区块,通过这种方式将相连的区块更新至最新状态值。

  4. 接收哈希值的超级节点中,当有2/3以上特定源文件在拒绝该交易生成时,对于该交易与源文件对应的相关内容,超级节点则会对其进行无效处理。

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

共享最新状态值

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

未能达成共识的情况

  • 当验证者对特定源文件所对应的交易未能达成共识时,对应的交易捆绑由超级节点对其进行验证并进行区块确认。

6. 宏节点处理事务的奖励

SC 演算价格表的必要性

  1. 宏节点在参与验证的过程中,若演算的内容越复杂,其所需的计算机算力资源也越多。

  2. 为了对消耗掉的算力给予相应的奖励,必须确定该对哪种演算模式予何种补偿。

  3. 当有大量交易发生时,系统很难根据演算量来重新计算价格。

SC 演算价格表的导入方法

  1. Foundation 在网络系统启动时,会在GBT Protocol系统中显示那些可运行的SC,并计算出事务处理时所要消耗的算力资源。

  2. 根据各类事务消耗的算力资源 ,来制定以Fiat为基准的奖励规则。

开发者质押代币

  1. 开发者为处理自身DApp所产生的事务,而预先将适量的代币进行质押。

  2. 每月1日在进行结算时,质押的代币量若是不足,开发者则会接收到警告提示。

  3. 开发者须将不足的部分进行追加质押。

  4. 每月1日,若开发者质押的代币数量不足,或比正常时所需的代币量少时,与DApp相关的演算则无法进行。

  5. 若DApp在过一周内未能将其需要追加质押的代币补足,与之相关的DApp源文件则会从宏节点和超级节点中删除。

奖励的支付方式

  1. DApp开发者将代币存到智能合约中,通过这个合约来支付给负责处理DApp 相关演算的宏节点。

  2. 每月1日,超级节点在参照SC执行件数价格表、宏节点验证结果以及区块中的内容后,再执行与超级节点有关的存储奖励/处罚合约。(详细内容请参照GBT Protocol 智能合约机制)

  3. 在运行智能合约进行结算的同时,通过DApp开发者的质押合约将代币发送至节点的GBT 账户中。

7. 处罚

错误验证时,Staking 减少/抵消

  • 当有宏节点反对经2/3以上节点做出的验证决议时,该宏节点质押的代币数量会被削减。

未出示验证值,Staking削减以及未领取奖励

  1. 在一定的时间内未出示验证值,则会被认定为未参与验证。

  2. 不能够获得验证SC事务的相关奖励。