Nervos Network解决了“不可能三角”问题。通过分层设计实现区块链第1层专注于安全性,第2层专注于性能。早期的CITA已针对财团链进行了优化。当前的CITA是通用的区块链框架,其设计目标是灵活实现各种类型的区块链。 CITA的默认配置是BFT共识+ EVM虚拟机,并且编程框架支持可以替换的微服务。例如,CITAHub社区中的朋友已经通过基础修改实现了POA和WASM虚拟机以及其他功能。但是,使用CITA强大的合同功能更容易自定义会计机制。在本文中,我们将介绍如何在合同层自定义类似于DPoS的高性能公共链,而无需修改基础代码。以EOS为代表的DPoS公链通常采用候选节点的代理选举,节点的任命以及计费节点的定期更新的方法来实现计费节点的民主替换。相应地,CITA还需要实现诸如选举合同,共识节点治理,节点分类激励以及共识节点块生成比率管理之类的功能。选举合同节点选举合同是标准的链上智能合同,它负责节点注册,收集用户投票,并将选举结果输出到节点管理合同。不同的社区对节点的选举可能有不同的要求,因此这里的投票方案非常灵活。您可以使用系统令牌进行投票,还可以指定某个ERC20令牌进行投票,还可以按帐户进行投票,依此类推。例如,在部分公共链的情况下,节点需要抵押令牌,而用户使用令牌进行投票以支持该节点。在存在实名认证服务的情况下,该节点可能需要获得尽可能多的实名用户的支持。选举合同应该能够周期性地向节点管理合同输出票数最高的几个节点,同时可以给票数第二高的候选节点,从而可以在选举合同中获得系统激励合同的激励。同时。节点管理合约CITA的节点管理合约(https://docs.citahub.com/zh-CN/cita/system/node)具有两个重要的系统功能:添加和删除共识节点,以及调整节点。这两个功能是我们的高性能区块链的核心,可实现“类似于DPoS”的功能。共识。节点管理合同只能由具有系统超级管理员权限的帐户调用。我们可以将先前的选举合同设置为系统超级管理员权限,并允许它调用节点管理合同。具体方法可以参考CITA治理机制的定制设计代码(https://github.com/cryptape/appchain-gov-general)。这样,可以将选举合同给出的计费节点的指定信息直接转换为节点管理合同的输入,实现计费节点的无缝替换。另外,节点管理合同还可以接收计费节点的权重参数,使得不同的计费节点具有不同的投票比例和不同的区块生成功能。不同的区块生成比率意味着后续区块生成的动机不同,会计的话语权也不同,从而获得类似于DPoS的效果。需要指出的是,在这种模式下,CITA的每一轮投票仍然采用BFT每个节点一票的方式,计费权重体现在计费权重不同的节点所产生的块数中所占的比例。长期(例如1000个块)不同,并不是说在EOS等区块链的DPoS共识中,具有不同权重的节点对BFT有不同的投票权重。当然,作为一个区块链框架,CITA还可以通过修改基础方法来实现相同的功能,感兴趣的开发人员可以提出实现该问题的方法。获得簿记权的激励性合同节点和尚未获得簿记权但已获得足够票数的候选节点可以根据社区对等方的规则获得整体奖励或红利。 CITA采用“系统自动执行合同”机制,可以实现每块自动执行令牌分配合同(https://docs.citahub.com/zh-CN/cita/system-contract-interface/ auto-exec [3] 3),以便将奖励分配给会计节点和候选节点。操作员可以在g中创建足够的系统令牌