2.4 基于Go-Ethereum构建DPOS机制下的区块链基于Go-Ethereum构建DPOS机制下的区块链 恺英网络一朱崇文 ’ alt=‘OCR图片’/> 目录 1 Go版本以太坊 2 为何选择DPOS机制 3 拓展共识改造实战 4 智能合约的实践 5 压力测试下暴露的问题 GopherChina2018 ’ alt=‘OCR图片’/> Go版本以太坊 ’ alt=‘OCR图片’/> Go版本以太坊 以太坊的工具组 ’ alt=‘OCR图片’/> GopherChina2018 ’ alt=‘OCR图片’/> 为何选择DPOS机制 共识机制对比 POW • 消耗计算力 • 出块速度慢,确认慢 • TPS极低 10~20 • 确认1分钟+ DPOS • 代理人模式 • 出块速度快,确认快 • TPS 700~1000 (实现) • 平均确认1~3秒 ’ alt=‘OCR图片’/> 为何选择DPOS机制 DPOS机制的优势 系统可靠性 在商业场景下,网络性能可控0 码力 | 34 页 | 2.01 MB | 1 月前3
百度超级链 XuperChain master 中文文档jpg) XuperChain架构 ### 2. 模块 |模块|特性| |---|---| |存储|XuperChain的底层存储基于KV数据库,存储的数据包括区块数据、交易数据、账号余额、DPOS投票数据、合约账号数据、智能合约数据等,上链的数据全部持久化到底层存储。不同的链,存储独立。底层存储支持可插拔,从而可以满足不同的业务场景| |网络|负责交易数据的网络传播和广播、节点发现和维护。 密。局域网穿透技术采用NAT方案,同一条流保持长连接且复用。多条链复用同一个p2p网络| |共识|共识模块用于解决交易上链顺序问题,过滤无效交易并达成全网一致。XuperChain实现了更加高效的DPOS共识算法。支持可插拔,从而可以支持不同的业务场景| |密码学|用于构造和验证区块、交易的完整性,采用非对称加密算法生成公私钥、地址。匿名性较好。支持可插拔,从而可以支持不同的业务场景| |智能合约 int32 tx_count = 12; // 所有交易hash的merkle tree repeated bytes merkle_tree = 13; // 采用DPOS共识算法时,当前是第几轮 int64 curTerm = 16; int64 curBlockNum = 17; // 区块中执行失败的交易以及对应的失败原因 map0 码力 | 316 页 | 24.51 MB | 2 年前3
百度超级链 XuperChain 3.12 中文文档/p4_1.jpg) XuperChain架构 模块 |模块|特性| |---|---| |存储|XuperChain的底层存储基于KV数据库,存储的数据包括区块数据、交易数据、账号余额、DPOS投票数据、合约账号数据、智能合约数据等,上链的数据全部持久化到底层存储。不同的链,存储独立。底层存储支持可插拔,从而可以满足不同的业务场景| |网络|负责交易数据的网络传播和广播、节点发现和维护。 密。局域网穿透技术采用NAT方案,同一条流保持长连接且复用。多条链复用同一个p2p网络| |共识|共识模块用于解决交易上链顺序问题,过滤无效交易并达成全网一致。XuperChain实现了更加高效的DPOS共识算法。支持可插拔,从而可以支持不同的业务场景| |密码学|用于构造和验证区块、交易的完整性,采用非对称加密算法生成公私钥、地址。匿名性较好。支持可插拔,从而可以支持不同的业务场景| |智能合约 交易处理速度:达到9万TPS 1. 默认采用DPOS作为共识算法; 2. 交易处理充分利用计算机多核,支持并发执行; 3. 智能合约通过读写集技术能够支持并发执行; ## 总结 XuperChain是百度自研的一套区块链解决方案,采用经典的UTXO记账模式,并且支持丰富的智能合约开发语言,交易处理支持并发执行,拥有完善 的账号与权限体系,采用DPOS作为共识算法,交易处理速度可达到9万TPS。0 码力 | 336 页 | 12.62 MB | 2 年前3
百度超级链 XuperChain 3.12-c 中文文档/p4_1.jpg) XuperChain架构 模块 |模块|特性| |---|---| |存储|XuperChain的底层存储基于KV数据库,存储的数据包括区块数据、交易数据、账号余额、DPOS投票数据、合约账号数据、智能合约数据等,上链的数据全部持久化到底层存储。不同的链,存储独立。底层存储支持可插拔,从而可以满足不同的业务场景| |网络|负责交易数据的网络传播和广播、节点发现和维护。 密。局域网穿透技术采用NAT方案,同一条流保持长连接且复用。多条链复用同一个p2p网络| |共识|共识模块用于解决交易上链顺序问题,过滤无效交易并达成全网一致。XuperChain实现了更加高效的DPOS共识算法。支持可插拔,从而可以支持不同的业务场景| |密码学|用于构造和验证区块、交易的完整性,采用非对称加密算法生成公私钥、地址。匿名性较好。支持可插拔,从而可以支持不同的业务场景| |智能合约 交易处理速度:达到9万TPS 1. 默认采用DPOS作为共识算法; 2. 交易处理充分利用计算机多核,支持并发执行; 3. 智能合约通过读写集技术能够支持并发执行; ## 总结 XuperChain是百度自研的一套区块链解决方案,采用经典的UTXO记账模式,并且支持丰富的智能合约开发语言,交易处理支持并发执行,拥有完善 的账号与权限体系,采用DPOS作为共识算法,交易处理速度可达到9万TPS。0 码力 | 336 页 | 12.62 MB | 2 年前3
百度超级链 XuperChain 3.12-a中文文档/p4_1.jpg) XuperChain架构 模块 |模块|特性| |---|---| |存储|XuperChain的底层存储基于KV数据库,存储的数据包括区块数据、交易数据、账号余额、DPOS投票数据、合约账号数据、智能合约数据等,上链的数据全部持久化到底层存储。不同的链,存储独立。底层存储支持可插拔,从而可以满足不同的业务场景| |网络|负责交易数据的网络传播和广播、节点发现和维护。 密。局域网穿透技术采用NAT方案,同一条流保持长连接且复用。多条链复用同一个p2p网络| |共识|共识模块用于解决交易上链顺序问题,过滤无效交易并达成全网一致。XuperChain实现了更加高效的DPOS共识算法。支持可插拔,从而可以支持不同的业务场景| |密码学|用于构造和验证区块、交易的完整性,采用非对称加密算法生成公私钥、地址。匿名性较好。支持可插拔,从而可以支持不同的业务场景| |智能合约 交易处理速度:达到9万TPS 1. 默认采用DPOS作为共识算法; 2. 交易处理充分利用计算机多核,支持并发执行; 3. 智能合约通过读写集技术能够支持并发执行; ## 总结 XuperChain是百度自研的一套区块链解决方案,采用经典的UTXO记账模式,并且支持丰富的智能合约开发语言,交易处理支持并发执行,拥有完善 的账号与权限体系,采用DPOS作为共识算法,交易处理速度可达到9万TPS。0 码力 | 336 页 | 12.62 MB | 2 年前3
百度超级链 XuperChain 3.12-b 中文文档/p4_1.jpg) XuperChain架构 模块 |模块|特性| |---|---| |存储|XuperChain的底层存储基于KV数据库,存储的数据包括区块数据、交易数据、账号余额、DPOS投票数据、合约账号数据、智能合约数据等,上链的数据全部持久化到底层存储。不同的链,存储独立。底层存储支持可插拔,从而可以满足不同的业务场景| |网络|负责交易数据的网络传播和广播、节点发现和维护。 密。局域网穿透技术采用NAT方案,同一条流保持长连接且复用。多条链复用同一个p2p网络| |共识|共识模块用于解决交易上链顺序问题,过滤无效交易并达成全网一致。XuperChain实现了更加高效的DPOS共识算法。支持可插拔,从而可以支持不同的业务场景| |密码学|用于构造和验证区块、交易的完整性,采用非对称加密算法生成公私钥、地址。匿名性较好。支持可插拔,从而可以支持不同的业务场景| |智能合约 交易处理速度:达到9万TPS 1. 默认采用DPOS作为共识算法; 2. 交易处理充分利用计算机多核,支持并发执行; 3. 智能合约通过读写集技术能够支持并发执行; ## 总结 XuperChain是百度自研的一套区块链解决方案,采用经典的UTXO记账模式,并且支持丰富的智能合约开发语言,交易处理支持并发执行,拥有完善 的账号与权限体系,采用DPOS作为共识算法,交易处理速度可达到9万TPS。0 码力 | 336 页 | 12.62 MB | 2 年前3
百度超级链 XuperChain 3.7 中文文档jpg) XuperChain架构 ### 2. 模块 |模块|特性| |---|---| |存储|XuperChain的底层存储基于KV数据库,存储的数据包括区块数据、交易数据、账号余额、DPOS投票数据、合约账号数据、智能合约数据等,上链的数据全部持久化到底层存储。不同的链,存储独立。底层存储支持可插拔,从而可以满足不同的业务场景| |网络|负责交易数据的网络传播和广播、节点发现和维护。 密。局域网穿透技术采用NAT方案,同一条流保持长连接且复用。多条链复用同一个p2p网络| |共识|共识模块用于解决交易上链顺序问题,过滤无效交易并达成全网一致。XuperChain实现了更加高效的DPOS共识算法。支持可插拔,从而可以支持不同的业务场景| |密码学|用于构造和验证区块、交易的完整性,采用非对称加密算法生成公私钥、地址。匿名性较好。支持可插拔,从而可以支持不同的业务场景| |智能合约 int32 tx_count = 12; // 所有交易hash的merkle tree repeated bytes merkle_tree = 13; // 采用DPOS共识算法时,当前是第几轮 int64 curTerm = 16; int64 curBlockNum = 17; // 区块中执行失败的交易以及对应的失败原因 map0 码力 | 270 页 | 24.86 MB | 2 年前3
百度超级链 XuperChain latest 中文文档jpg) XuperChain架构 ### 2. 模块 |模块|特性| |---|---| |存储|XuperChain的底层存储基于KV数据库,存储的数据包括区块数据、交易数据、账号余额、DPOS投票数据、合约账号数据、智能合约数据等,上链的数据全部持久化到底层存储。不同的链,存储独立。底层存储支持可插拔,从而可以满足不同的业务场景| |网络|负责交易数据的网络传播和广播、节点发现和维护。 密。局域网穿透技术采用NAT方案,同一条流保持长连接且复用。多条链复用同一个p2p网络| |共识|共识模块用于解决交易上链顺序问题,过滤无效交易并达成全网一致。XuperChain实现了更加高效的DPOS共识算法。支持可插拔,从而可以支持不同的业务场景| |密码学|用于构造和验证区块、交易的完整性,采用非对称加密算法生成公私钥、地址。匿名性较好。支持可插拔,从而可以支持不同的业务场景| |智能合约 int32 tx_count = 12; // 所有交易hash的merkle tree repeated bytes merkle_tree = 13; // 采用DPOS共识算法时,当前是第几轮 int64 curTerm = 16; int64 curBlockNum = 17; // 区块中执行失败的交易以及对应的失败原因 map0 码力 | 316 页 | 24.51 MB | 2 年前3
百度超级链 XuperChain 3.9-e 中文文档jpg) XuperChain架构 ### 2. 模块 |模块|特性| |---|---| |存储|XuperChain的底层存储基于KV数据库,存储的数据包括区块数据、交易数据、账号余额、DPOS投票数据、合约账号数据、智能合约数据等,上链的数据全部持久化到底层存储。不同的链,存储独立。底层存储支持可插拔,从而可以满足不同的业务场景| |网络|负责交易数据的网络传播和广播、节点发现和维护。 密。局域网穿透技术采用NAT方案,同一条流保持长连接且复用。多条链复用同一个p2p网络| |共识|共识模块用于解决交易上链顺序问题,过滤无效交易并达成全网一致。XuperChain实现了更加高效的DPOS共识算法。支持可插拔,从而可以支持不同的业务场景| |密码学|用于构造和验证区块、交易的完整性,采用非对称加密算法生成公私钥、地址。匿名性较好。支持可插拔,从而可以支持不同的业务场景| |智能合约 int32 tx_count = 12; // 所有交易hash的merkle tree repeated bytes merkle_tree = 13; // 采用DPOS共识算法时,当前是第几轮 int64 curTerm = 16; int64 curBlockNum = 17; // 区块中执行失败的交易以及对应的失败原因 map0 码力 | 317 页 | 27.80 MB | 2 年前3
百度超级链 XuperChain 3.8 中文文档jpg) XuperChain架构 ### 2. 模块 |模块|特性| |---|---| |存储|XuperChain的底层存储基于KV数据库,存储的数据包括区块数据、交易数据、账号余额、DPOS投票数据、合约账号数据、智能合约数据等,上链的数据全部持久化到底层存储。不同的链,存储独立。底层存储支持可插拔,从而可以满足不同的业务场景| |网络|负责交易数据的网络传播和广播、节点发现和维护。 密。局域网穿透技术采用NAT方案,同一条流保持长连接且复用。多条链复用同一个p2p网络| |共识|共识模块用于解决交易上链顺序问题,过滤无效交易并达成全网一致。XuperChain实现了更加高效的DPOS共识算法。支持可插拔,从而可以支持不同的业务场景| |密码学|用于构造和验证区块、交易的完整性,采用非对称加密算法生成公私钥、地址。匿名性较好。支持可插拔,从而可以支持不同的业务场景| |智能合约 int32 tx_count = 12; // 所有交易hash的merkle tree repeated bytes merkle_tree = 13; // 采用DPOS共识算法时,当前是第几轮 int64 curTerm = 16; int64 curBlockNum = 17; // 区块中执行失败的交易以及对应的失败原因 map0 码力 | 316 页 | 27.93 MB | 2 年前3共 32 条- 1
- 2
- 3
- 4













