JD Chain抽象了共识协议接口,共识算法可插拔。
已实现MQ
、Raft
、BFT-SMaRt
三种共识算法。
已实现基于RabbitMQ
、ActiveMQ Classic
(JD Chain
1.6.5
版本新增)方案
MQ实现在
1.6.4
和1.6.5
中实现有变化,MQ服务地址URI不同,请参照对应版本文档操作示例
RabbitMQ
实现仅支持第一个节点提议区块,ActiveMQ
支持所有参与节点提议区块。
初始化使用mq.config
,配置MQ
服务及交易、区块等消息队列。
ledger.init
中设置:
consensus.service-provider=com.jd.blockchain.consensus.raft.MQConsensusProvider
consensus.conf=.../mq.config
JD Chain
基于SOFAJRaft集成Raft
共识,感谢优秀的SOFAJRaft
。
初始化使用raft.config
,配置共识节点拓扑、SOFAJRaft
运行参数等。
ledger.init
中设置:
consensus.service-provider=com.jd.blockchain.consensus.raft.RaftConsensusProvider
consensus.conf=.../raft.config
JD Chain
基于BFT-SMaRT深度改造优化,形成了具有高度代码差异的fork版本JD Chain BFT-SMaRt,感谢BFT-SMaRT
团队。
初始化使用bftsmart.config
,配置共识节点拓扑、BFT-SMaRT
运行参数等。
ledger.init
中设置:
consensus.service-provider=com.jd.blockchain.consensus.raft.BftsmartConsensusProvider
consensus.conf=.../bftsmart.config