fabric应用开发评估

2017-01-15  本文已影响0人  chen4w

用两天时间阅读和动手实验了fabric的开发,本文目的在于概述fabric的开发现状。

fabric的定位

fabric文档的开门见山讲了自己的特征:

The fabric is an implementation of blockchain technology, leveraging familiar and proven technologies【注:go语言实现、第三方CA】. It is a modular architecture allowing pluggable implementations of various function【共识机制可替换,chaincode可复用】. It features powerful container technology to host any mainstream language 【用go或java编写chaincode】for smart contracts development.

fabric的目标是用于哪些场景呢?这里给出了典型应用场景,包括:B2B合约、制造供应链、资产托管,并且总结了每种场景下各参与方及其行为。

fabric开发者分类

fabric将开发者分为两类:

fabric的SDK主要能做啥?

1.用go、java编写chaincode(类似以太坊的智能合约);
2.用cli/restAPI/nodejs 部署、调用chaincode。

环境搭建

分以下几步:

  1. 安装docker环境
  2. 下载fabric提供的image
  3. docker-compose up运行image,启动fabric-peer、fabric-membersrvc、fabric-starter-kit节点
  4. 在docker终端下cli与节点交互、或者在docker下运行nodejs应用;或者通过RestAPI与节点交互(可以在docker外执行,相当于http协议跨主机交互)
    细节过程在这里
    RestAPI方式的交互,我参考了这篇文章。Rest测试工具用的是PostMan,以raw json post方式提交就好。

免费午餐

对Hyperledger应用开发者而言,IBM Bluemix提供免费的入门级区块运行环境,具体操作请移步这里。作者的其它文章也推荐——看完这几篇文章,就算不动手,也大致了解fabric的应用开发能做什么?怎么做的?

赞与槽

超级账本的目标——行业实施区块链应用的基础组件,以下几点是迈向工程化的进步:

从开发者的角度来考虑,我认为fabric距离其目标尚存在以下差距:

  1. chaincode只看到build->deploy->invoke,debug在哪里亲?目前看来出错时似乎只能依赖log输出分析;
  2. 用nodejs写application也是如此,只能运行在docker下,虽然提供了与宿主机共享的mytest目录,可以在宿主机下用ide修改代码,在docker下run/debug,但是缺一体化的ide,程序员的开发效率一定龟爬。
上一篇下一篇

猜你喜欢

热点阅读