流动性质押挖矿分红开发源码版,流动性质押挖矿分红系统开发技术详细及分析

简介: 共识模块主要由几个组件组成,世代epoch、提案消息缓存服务msgcache、共识消息处理引擎engine、共识消息验证器verifier、提案消息存储服务forest、投票处理器voter、共识活性服务pacemaker、wal存储wal、节点间共识信息同步服务compensator、各模块相互配合实现maxbft流水线共识算法

共识模块主要由几个组件组成,世代epoch、提案消息缓存服务msgcache、共识消息处理引擎engine、共识消息验证器verifier、提案消息存储服务forest、投票处理器voter、共识活性服务pacemaker、wal存储wal、节点间共识信息同步服务compensator、各模块相互配合实现maxbft流水线共识算法。

epoch:共识运行过程中由一个个epoch组成,每个epoch包含一组共识节点、在预定的视图范围内由这些共识节点生成提案、投票共识信息、驱动共识运行;每个epoch的最后一个提案初始化下一个epoch的信息,当前epoch最后一个提案被提交上链后触发世代切换

msgcache:检查网路中接收的提案消息是否缺失祖先提案,缓存缺失祖先提案的消息、并触发请求获取缺失的提案

engine:处理世代内接收到的共识消息

verifier:实现了共识消息的提案、投票验证规则

forest:缓存验证过的提案信息、并维护共识的各种QC状态genericQC、lockedQC、finalQC

voter:缓存验证过的投票信息、实现提案的投票规则

pacemaker:共识活性服务,使用接收到的QC、提案、超时信息,推进节点的共识状态

wal:在共识过程中存储验证过的共识消息

compensator: 共识内部的同步服务,发送、处理获取缺失提案的请求

hotstuff-投票处理
6.5.2. pacemaker 状态推进机制
pacemaker 提供了共识算法的活性,当某次共识view共识未达成一致、或共识消息处理完成后,使用相应的结果推进pacemaker维护的节点共识状态、并设置相应的超时器;因此共识的状态由两种信息推动:

共识信息:提案、投票组成的QC信息;当视图V+1的follower接受视图V的提案后,使用提案信息驱动pacemaker进入V+1的共识状态,当视图V+1的Leader接受视图V的提案后,设置超时器、进入投票收集阶段,使用投票聚合的QC信息驱动pacemaker进入V+1的共识状态

超时信息:超时器有等待提案、等待投票两种类型,当节点进入一个新视图后,设置接受提案类型的超时器,当节点作为视图proposal.View+1的Leader时,接受提案proposal后进入投票超时阶段;无论何种超时时间被触发都将驱动pacemaker进入下一个新视图

超时时间在[MaxBFTRoundTimeoutMill, MaxBFTMaxTimeoutMill] 范围内波动,通过最新提交的提案视图finalView与当前设置超时的视图currView确定当前超时类型的时间;算法为:timeOut = currView - finaView <= 4? MaxBFTRoundTimeoutMill : MaxBFTRoundTimeoutMill + MaxBFTRoundTimeoutIntervalMill * (currView - finalView - 4)

公示中常量为4的原因:一个区块的提交需要满足three-chain规则(即当前区块后接三个子孙块v+1, v+2, v+3),又因实现中设置超时器时满足three-chain的提案还未被提交(即finalView还未更新),因此正常无超时情况下currView - finalView 最大的间隔应为4

6.5.3. epoch 切换机制
epoch机制为maxbft共识算法提供了增删共识节点的功能,每个epoch创建时基于当前链配置合约chainconfig的共识节点状态初始化该epoch参与共识的节点信息,当前epoch的最后一个提案创建下一个epoch的状态,当最后一个提案被提交后触发epoch切换,同时丢弃当前epoch在该提案后的所有生成的子孙块,由于epoch切换属于耗时的重量型操作,基于性能与功能的trade-off,因此每个epoch预分配一定数量的运行视图,仅在当前epoch的视图运行结束时,才基于最新的链配置生成下一个epoch的信息;epoch运行期间配置交易导致链配置变更不会立即反应在共识的epoch配置中。

6.5.4. 配置参数
MaxBFTRoundTimeoutMill:共识状态初始超时时间;示例:”5000”

MaxBFTRoundTimeoutIntervalMill:每次超时后下一轮共识增加的delta时间;示例:”2000”

MaxBFTMaxTimeoutMill:超时时间上限;示例:”15000”

MaxBftViewNumsPerEpoch:每个世代的运行的视图数量;示例:”50”

6.6. DPoS
DPoS(Delegated Proof of Stake)委托权益证明共识算法,类似于公司董事会制度,在DPoS共识制度下,会选出一定数量的节点,来负责生成、验证区块。节点的选举根据节点质押的权益来进行,被选出来的节点代表其他所有的节点进行小范围共识出块。正常生产区块的节点可以获得额外的权益激励,但如果节点不履行生产区块的职责,或者作恶,会被剔除出去,并且依据事先设定的惩罚规则进行惩罚(如扣除质押的部分权益)。

DPoS共识是由DPoS委托质押算法、TBFT拜占庭共识算法组合实现的;DPoS委托质押算法负责节点的权益质押、验证人集合的选举、激励、惩罚这些操作,TBFT共识算法负责对Proposer生成的区块进行验证,保证大多数验证者节点对区块达成一致;

chainmaker【v1.2.0+版本】的DPoS共识实现是基于证书体系构建的,所以新节点准备参与共识过程时,除了DPoS共识自身所需的权益质押,还需要使用证书体系的管理机制(即:系统配置合约的操作),将新节点添加到网络中。

DPoS共识中,设置指定数量区块的区块构成一个世代,每个世代包含一批从候选人中依据质押的权益选举出来的验证者,作为世代的验证者集合,每个验证者轮流作为Proposer进行出块,其它不出块的验证者对Proposer生成的区块进行TBFT共识,保证大多数验证者对该区块达成一致,每个世代的最后一个区块选举下一个世代的验证者集合,并将选举结果写入区块以便其它验证者节点进行校验。因此在区块链上存在三种节点:普通节点、候选人节点、验证人节点;普通节点通过质押一定数量的权益资产,成为候选人节点,每个世代的最后一个区块,依据候选人质押的权益,选举一批节点作为下一个世代的验证者集合。

candidates
Note

【chainmaker v1.2.0】的DPoS共识仅支持levelDB存储引擎

【chainmaker v1.2.0】未实现区块激励、作恶惩罚,仅支持共识节点的增删、质押/解质押功能

相关文章
|
区块链
Defi代币质押持币生息系统技术开发/源代码/质押挖矿dapp
Defi代币质押持币生息系统技术开发/源代码/质押挖矿dapp
|
JavaScript 前端开发 区块链
DAPP代币合约流动性质押分红挖矿系统开发丨技术分析
DAPP代币合约流动性质押分红挖矿系统开发丨技术分析
|
机器学习/深度学习 人工智能 安全
PtahDao/ProTradex/Meta2032流动性质押挖矿分红系统开发(NFT质押挖矿开发)丨成熟及源码
 区块链技术由此可以从多方面为企业赋能:提供可靠的共享数据,在各方之间建立信任;消除数据孤岛,即通过去中心化的,在一个网络中共享并支持获许可方访问的账本将数据集成到一个系统中;为数据赋予高度安全性
|
数据挖掘
借贷理财流动性挖矿开发详情丨借贷理财流动性挖矿系统开发(案例及源码)
 The"sharing"of the metauniverse ontology can be expressed in the form of standardization,which is the best order obtained by consensus within a certain range on the basis of scientific research and theoretical practice.The standards of the universe can be divided into five categories:basic,technolo
流动性质押挖矿矿池系统开发(开发案例)丨流动性质押挖矿矿池系统开发(详细及源码)
? (amountSpecified - state.amountSpecifiedRemaining, state.amountCalculated) (state.amountCalculated, amountSpecified - state.amountSpecifiedRemaining);
|
人工智能
defi流动性质押挖矿系统丨defi流动性质押挖矿系统开发(dapp开发)丨defi流动性质押挖矿源码版
 Liquidity mining,in short,is a token incentive plan designed to attract liquidity providers(LPs)to provide liquidity for specific transaction pairs/pools on AMM.
|
开发工具
defi/nft流动性质押挖矿分红开发正式版,defi/nft流动性质押挖矿分红系统开发(成熟案例及源码)
Liquidity mining usually requires pledge of loan vouchers or LP vouchers. That is to say, instead of pledging the original token to get the reward of liquidity mining, users need to pledge the original token in DeFi first, and then pledge the voucher to the specified contract to get the reward of li
NFT流动性质押挖矿开发功能丨NFT流动性质押挖矿系统开发(开发详细)丨NFT流动性质押挖矿系统源码部署
  Liquidity mining is an incentive mechanism to promote the use of DeFi and a new decentralized token distribution mechanism.Most DeFi applications require users to lock tokens into the contract.The larger the amount of lock-in the contract has,the better financial services can be obtained.Liquidity
|
人工智能
DAPP流动性矿池挖矿分红开发丨DAPP流动性矿池挖矿分红系统开发详细及逻辑丨DAPP流动性矿池挖矿分行系统源码部署
  Smart contract:Smart contract is a program running on the ETH blockchain,which defines the logic behind the state changes on the blockchain.In abstract,smart contract is a rule that can be executed automatically.In real life,a contract needs to have a special execution role after the contract is f