家蛙树

Linux基金会超级记账本开发框架和工具

Zealot
区块链
2018-09-13

Linux基金会的Hyperledger超级记账本是一个开源合作的跨行业的区块链技术,包括金融,银行,物联网,工厂,科技等行业的领军者如IBM, Intel, Huawei, Baidu, Tencent, CISCO, Xiaomi等大小公司都是其组织会员。

官网有不少的区块链框架和工具,如果第一次接触不好选择,让我们快速的过一遍。

t_0cc64562ddc7486fb6530e94fbc1a54f.png

1.区块链开发框架

1.1 Hyperledger Burrow
状态 Github Star 开发语言 活跃度 文档
孵化中 520 Go 较高 一般

t_a2a3be7f18894245b7ba088a705c1fc8.png

Burrow是初创公司monax.io捐献,Intel赞助的之智能合同应用引擎。部署为Ethereum 以太坊的智能合同节点,可以执行Permissioned EVM虚拟机上的智能合同。智能合同使用Solidity编写,可提供交易的最终性, 使用PoS(Proof of Stake)的Tendermint共识引擎实现高的吞吐量。也提供了API网关, 暴露为REST和JSON-RPC服务,感觉小巧且便于与其它系统整合。
如果涉及到以太坊的定制开发,Burrow应该是个选择。

1.2 Hyperledger Fabric
状态 Github Star 开发语言 活跃度 文档
可用 6726 Go 较高 较好

t_8869e98062ff4b0eb1508f4f11551c2f.png

Fabric是一个分布式的记账本平台,旨在提供组件可插拔,可伸缩和易于扩展的设计架构。Fabric应该当今商用度,成熟度最高的区块链解决方案之一,国内很多公司都是基于Fabric定制自己的区块链业务平台,更多信息可关注笔者公众号。

1.3 Hyperledger Indy
状态 Github Star 开发语言 活跃度 文档
孵化中 252 Python 较高 一般

t_3c2315aecf88414c96fc99964cedf4b2.png
Indy是分布式记账本,应该是Sovrin基金会捐献,旨在提供去中心化的身份凭证服务,使用区块链技术加密和交换身份凭证,保障安全。
具体的场景请参考白皮书https://sovrin.org/wp-content/uploads/2018/03/Sovrin-Protocol-and-Token-White-Paper.pdf
更多可能作为一个组件和现实系统整合。

1.4 Hyperledger Iroha

状态 Github Star 开发语言 活跃度 文档
可用 923 C++ 一般 较好

t_77ca9daeb5ac47da95466c70df4a6157.png

Iroha是C++实现的区块链平台,实现Yet Anothe BFT共识算法,和排序服务。
权限设计基于角色或授权权限,区块使用文件存储,状态使用PostgreSQL数据库保存。
Iroha是 Soramitsu, Hitachi, NTT Data 和Colu公司捐献的。

估计推广一般,不过毕竟是可用,是C++实现的区块链的一个选择。

1.5 Hyperledger Sawtooth
状态 Github Star 开发语言 活跃度 文档
可用 1001 Rust 较高 较好

t_5a83a89956864c25998a6f5dc590e791.png
Sawtooth是一个企业级的分布式记账本,应该是Intel捐献的, 一些特色是:

(1)应用和核心系统的隔离,Sawtooth提供了智能合同的抽象,应用的开发者选择各自语言开发合同的逻辑。
(2)支持私有网络,集群种的节点可以单独配置采访权限。
(3)并行执行交易,Sawtooth有个调度器把交易分割为并行的流程,隔离开每个交易的执行。
(4)消息订阅
(5)Seth子项目兼容以太网智能合同
(6)可插拔的共识算法
当前主要支持Proof of Elapsed Time (PoET)时间消失证明,它依赖于安全可信任的软硬件环境(Intel的自身的CPU应该是没问题),应该就是使用安全的CPU指令保证leader的安全和随机,优于那些PoW等proof算法的能量损耗。
还支持Raft等共识算法。
(7)Sawtooth的数据模型和交易语言使用不同的Transaction Family实现, 即可实现扩展,例如子系统的Sabre Transaction Family是支持WebAssembly virtual machine上运行的智能合同, Supply Chain Transaction Family是支持用于跟踪商品。

Sawtooth是一个完整的企业级区块链平台,热度第二的框架,也是值得研究的。顺路说下Rust, 除了火狐浏览器没想到又添多案例,对rust有期待,不过笔者是给Rust的borrow checker打败了。

2.开发工具

2.1 Hyperledger Caliper

t_2f3e81da69ad4279b3d3478a8c4a788e.png
孵化中,用于测试区块链的性能,指标例如TPS, 传输延时,资源使用率等,华为捐献的。客观的说华为的BCS平台是可以的,做了很多自动化运维,部署的工具。

2.2 Hyperledger Cello

t_984315959fb14a5792dce20baf7c43cc.png
孵化中,定位于Fabric区块链网络的自动化运维平台,例如创建,编辑,删除主机,区块链网络,部署链码,查询调用链码等功能。 不过笔者需要吐槽下,可能Fabric版本迭代快,实际上Cello还类似个beta版跟不上,一堆的bug,没有完整的BAAS平台,脚本维护靠谱些。

不过Cello定位很重要,Fabric部署是有些麻烦,自动化运维平台对于Fabric推广和维护必不可少。

2.3 Hyperledger Composer

t_464d28e7f1544db883d6ddf56bbd41f5.png

孵化中,链码开发基础提到过的另外一种开发模式,IBM主导,推荐Mac和Ubuntu运行,类似solidity, 用javascript语法,定义资源,参与者,交易,把链码逻辑可暴露为REST服务, Fabric底层, 实际一些配置还是得绕回Fabric, 开发可能相对方便些,运维的话又要多了composer相关的配置,直接用Fabric可能简单些。

2.4 Hyperledger Explorer

t_f790459cceda4e7a899f706a0a4c4f48.png
孵化中,Web系统,用于浏览,调用,部署或查询区块链网络的数据,交易,网络,节点等信息。

2.5 Hyperledger Quilt

t_cabc1ba83f94455993f7ed3653e4e47b.png

Quilt提供Interledger 协议(ILP), 一种支付协议,在分布式对账本系统和非对账本系统进行转钱服务,日本NTT Data公司提供,去中心化的支付协议,可以去研究下。

虽然比特币出来十年,但是区块链正刚起步,有兴趣的同学可以继续关注我们的公众号。

t_1ae967c732714d6c9c16740838ce20bb.png

点赞 0
0条评论
其他心得
Zealot · 38天前 
对于Fabric的权限和MSP配置这块,可能大家实际部署会给一堆msp目录绕晕,我们回过头来梳理一下。 1.Peer节点如何控制用户的采访权限?我们以first-network为例, 先看下peer0的启动配置docker-compose-cli.yaml。 引用到base/docker-compose-base.yaml peer0.org1.example.com: container_name: peer0.org1.example.com extends: fi
Fabric在半天前发布1.3版本,参考 https://github.com/hyperledger/fabric/releases 介绍下1.3的新特性,参考 https://hyperledger-fabric.readthedocs.io/en/release-1.3/whatsnew.html 1.MSP新实现方式,使用身份混合器/Identify Mixer 通过使用零知识证明(zero-knowledge proofs), 可实现身份的匿名和不可连接。 开发环境提供了
Zealot · 88天前 
Hyperledger Fabric当前最新版本为1.2, 自行参考官方安装文档 https://hyperledger-fabric.readthedocs.io/en/release-1.2/prereqs.html 以Centos7安装为例, 简单说明注意事项。 1.安装或更新curl yum install curlyum update curl保证尽量新的版本, 后面步骤安装脚本使用curl下载文件 2.docker安装 (1)Docker CE安装参考官
Zealot · 52天前 
1.基于Hyperledger Cello Cello的定位是为Fabric提供一个BaaS平台,使用Web UI方便的管理区块链网络,节点和链码。 理想丰满,希望兼容K8s,swarm等多容器,提供了安装网络,简单监控,安装链码,调用等基本功能,可惜bugs一堆,又得兼顾Fabric快速迭代的版本。还有一点,以docker为例,实际Work Node使用remote docker访问模式,需要在Master的管理平台手工输入所有的worker node ip和端口,有些维护
1.Consistency 一致性 一致性是分布式系统需要解决的基础问题,一致性是对外呈现的一致的状态或结果,一致性为什么很重要,举个扫码支付的例子。 小明到商场想玩夹娃娃机,他爸爸扫码支付了10元,娃娃取币机正常情况下需要弹出10个币,假设取币机出了问题,没接收到支付成功的通知,没弹出币就让人抓狂了。两个系统中订单状态不一致了,支付系统认为是支付成功,娃娃取币机认为订单待支付。 1.1一致性模型 一致性的模型定义,只列出一些常见的,一起学习研究。(1)Strict Consist