区块链技术迅猛发展,新想法、新概念、新名词层出不穷。万向区块链因此推出“技术研究报告”专栏,定期与大家分享在区块链行业创新及热门技术方面的研究成果,带领大家第一时间研究学习新技术,紧跟技术发展趋势,探索发掘技术的应用价值。
在《EOS.IO技术调研》一文中,我们分享关于EOS.IO概况、共识、出块、验证等方面的研究结果。
本文作者:万向区块链通用架构技术部 吴超尘
简介
技术组成 | EOS.IO | |
---|---|---|
背景 | 开发团队 | BM |
成功项目 | BitShare(基于区块链技术的去中心化交易所), Steemit(基于区块链技术的社交和内容平台), EOS | |
主打功能 | TPS+WASM | |
技术 | 模块化开发 | 插件机制 (plugin) |
共识 | DPoS + Pipelined BFT | |
存储系统 | ChainBase / RocksDB | |
外部DB插件 | MongoDB, PG, Mysql | |
密码算法 | 哈希算法 | SHA2 - SHA256 |
私钥 | 32个字节的随机数,然后Base58编码 | |
公钥 | 由私钥通过ECDSA-secp256k1/r1 计算出对应的公钥 65个字节(未压缩) | |
签名算法 | SHA256 + ECDSA-secp256k1/r1 sign | |
验签算法 | ECDSA-secp256k1/r1 recove | |
应用 | 虚拟机 | WASM |
SDK | js, go | |
开发 | 开发语言 | C++ (11/14/17) |
智能合约语言 | C++ (11/14/17) | |
社区活跃度 | Github Starred 11.3k, Fork 3.7k |
共识
0.共识大概过程
DPoS (21个生产节点轮流出块,每轮出12个块, 0.5秒出1个块), 流程大概:
-
散户抵押之后进行投票
-
每轮按投票权重选出21个超级节点(BP)
-
BP按schedule轮流出块
-
区块的验证: Pipelined BFT (基于流水线的拜占庭容错机制)
-
成为不可逆区块: LIB(Last Irreversible Block)