一、源码类型
当前区块链源码主要以C++为主,辅之以Go,而对于国内庞大的Java开发者来说来说,又出现Java区块链。个人认为C++会在未来继续占大头,毕竟效率最高,而Go由于分布式并发编程会渐渐发展。
公链 | 语言 | 联盟链 | 语言 | 底层框架 | 语言 |
---|---|---|---|---|---|
比特币 | C++ | fabric | Go | IPFS | Go |
以太坊 | Go等 | fisco-bcos | C++ | Tendermint | Go |
瑞波币 | C++ | Quorum | Go | ||
莱特币 | C++ | Corda | Kotlin | ||
EOS | C++ | 京东链 | JAVA | ||
币安币 | ERC20代币 | 蚂蚁区块链 | Java? | ||
艾达币 | HASKELL | ||||
恒星币 | C++ | ||||
TRON | Java |
二、架构对比
1.铂链基于dpos共识区块链,虚拟机为wasm,分析一下具体技术架构:
具体的使用到的技术包括:
了解HTTP/2协议,理解RPC框架,具备使用protobuf的开发实践经验;
有相关分布式系统actor架构和P2P网络系统开发经验
了解主流NoSQL数据库的原理与使用,尤其是KV型数据库,包括不限于LevelDB
理解各类主流的共识算法,包括不限于dpos
熟悉数据结构和算法,对密码学、安全协议和加密算法有研究;