Qtum DGP 分布自治协议技术详解

2019-02-01 18:29 栏目:经验之谈 来源: 查看()

Qtum量子链的分散治理协议(高仿DGP)是一种基于Qtum实现的链式协议,允许通过链式提议和投票系统更改共识参数。一旦投票通过,可以无需调整主链即可无缝调整参数。目前,在Qtum链上部署了四个高仿DGP合同,用于动态控制四个共识参数。:

Qtum DGP 分布自治协议技术详解

·块大小:阻止最大容量
·默认值为2 Mb,高仿DGP合约: 0000000000000000000000000000000000000081

·最低燃气价格: Block Creator可接受的最低燃气价格
·默认值为40 satoshis,高仿DGP合约:  0000000000000000000000000000000000000082

·块气限制:块可以消耗的最大气体数量
·默认为40万,高仿DGP合约: 0000000000000000000000000000000000000084

·每EVM操作EVM气体调度:气体 ·高仿DGP合同: 0000000000000000000000000000000000000080

将控制这四个常见区块链参数的智能合约嵌入到Qtum主网络的创建块中的原因是这四个参数是Qtum链中最关键的参数,并且它们是使用智能合约动态更改的。尽量减少对区块链网络的影响。

您可以使用高仿DGP协议添加更多可控参数,但此过程需要硬分叉。因为需要修改共识编码,所以可以使已经存储在链中的参数值可控。

高仿DGP工作原理

可以由高仿DGP合同控制的每个参数都需要单独部署单独的高仿DGP协定。 Qtum客户端将从控制参数的相应高仿DGP协定的每个块共识下获得由高仿DGP合约控制的参数的值。

如果客户端没有读取存储在高仿DGP合约中的参数值,它将直接返回客户端代码中定义的参数的初始值。

高仿DGP合同管理(管理员)的任务是在需要时为每个高仿DGP合同参数发起提议,并提交提案以启动投票。一旦提案获得足够的支持投票,提案将自动生效,新参数规则将作为相应参数的新共识规则。

如果提案未获得2,1600个区块所需的投票数,则该提案将被拒绝,合同将接受新提案。

高仿DGP合同

高仿DGP合同是一个可靠的合同,允许管理以下:

·管理操作:添加/删除合同管理席位和治理席位
·设置管理操作所需的管理席位的投票数
·设置接受高仿DGP合同参数值席位提议所需的管理席位数
·设置接受高仿DGP合同参数值席位提议所需的治理席位数
·开始对提案进行投票
·在投票中获得提案:当前投票数,以及高仿DGP合约参数和所需投票的当前值

当首次部署高仿DGP合同时,合同没有管理席位。因此,您必须调用相应的setter方法(只能调用一次):setInitialAdmin()来设置初始管理席位。此方法将第一个呼叫发件人设置为第一个管理席位。设置完成后,管理席位的代理可以发起提案并启动投票。该提案有以下三种类型:

座位增加提案(3种子类型):

·添加新的管理席位提案
·添加新的治理席位提案
·添加新的高仿DGP合同参数值席位提案

座位删除提案(2种子类型):

·删除当前管理席位提案
·删除当前治理席位提案

所需票数改变提案(3种子类型):

·更改接受高仿DGP合同参数值座位增加建议所需的管理席位数
·更改接受高仿DGP合同参数值座位增加提议所需的投票数
·对于管理席位或治理席位提案:席位增加/删除提案,或所需的投票数改变提案,更改接受两种类型提案所需的管理席位数

一旦提案启动,获得的支持票数不能少于票数,否则不会生效。

除了添加第一个行政席位外,任何其他操作(不包括确定提案到期)都需要创建提案并启动投票。

当管理席位代理创建提案时,提案会在创建完成时自动获得对该管理席位的投票。

在任何给定时间,每个提案类型最多可以有一个提案来启动投票。

治理座席代理只能投票添加新的高仿DGP合同参数值席位提案。提案获得批准后,需要设置高仿DGP合同所需的合同地址,以便在达成共识时获取此参数的值。

除了对新的高仿DGP合同参数值席位提案进行投票之外,管理席位代理还可以对管理提案进行投票,包括所有其他类型的提案。

例子

以下通过示例进行说明。在下面的示例中,我们将运行* qtumd regtest *节点并使用高仿DGP合约来修改最小Gas price参数 (高仿DGP contract: 0000000000000000000000000000000000000082)的值。

通过增加3个管理席位和2个治理席位将最低天然气价格参数修改为80 satoshi,并将高仿DGP合同参数席位增加建议所需的最小票数设置为2个管理席位投票和1个治理席位投票。 。在增加第二个管理席位后,我们还需要两张选票来管理席位继续增加更多管理席位或治理席位。

为了达到上述目标,我们需要执行以下步骤:

·设置初始管理席位
·由初始代理商代理创建提案以添加第二个管理席位
·由任何代理商代理创建提案,以获得2个管理席位投票,以使管理提案生效
·由任何代理商代理创建提案以添加第三个管理席位
·另一位代理人代表对第4步中提出的提案进行了投票,因为需要两个管理席位才能使管理提案生效(我们现在有3个管理席位)
·由任何代理商代理创建提案以添加第一个治理席位
·为另一个代理商代理在步骤6中创建的提案投票
·由任何代理商代理创建提案以添加第二个治理席位
·为另一个代理商代理在步骤8中创建的提案投票
·由任何代理商代理创建提案以获得2个管理席位投票,以接受高仿DGP参数值增加位置提议
·为另一个代理商代理在步骤10中创建的提案投票
·由任何代理商代理创建提案以获得对治理席位的投票,以接受高仿DGP参数值增加位置提议
·为另一个代理商代理在步骤12中创建的提案投票
·根据minGasPrice-dgp-template模板创建参数值合约,并将最小Gas price参数设置为80 satoshis,编译合同并将其部署在链上
·由任何代理程序代理创建提案,在步骤14中使用合同地址添加新的高仿DGP参数值席位
·为另一个代理商代理在步骤15中创建的提案投票
·对任何管理代理人在步骤15中创建的提案进行投票(使更改的最低天然气价格参数的值生效,对于所有合同,新共识下的最低天然气价格现在为80 satoshis)

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发