美文网首页
fabric应用开发评估

fabric应用开发评估

作者: chen4w | 来源:发表于2017-01-15 15:35 被阅读0次

    用两天时间阅读和动手实验了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去实施行业应用;
    • 另一类则是帮助完善fabric自身。
      fabric推荐第一类开发者下载官方image,并在docker下开发;第二类用户则下载编译代码运行。
      本文主要针对第一类开发进行评估。

    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距离其目标尚存在以下差距:

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

    相关文章

      网友评论

          本文标题:fabric应用开发评估

          本文链接:https://www.haomeiwen.com/subject/hfgybttx.html