标签:docker容器 合约 编译 应用开发 anti 分布 配置管理 version 智能
Fabric的智能合约称为链码(chaincode),分为系统链码和用户链码。系统链码用来实现系统层面的功能,用户链码实现用户的应用功能。链码被编译成一个独立的应用程序,运行于隔离的Docker容器中。
和以太坊相比,Fabric链码和底层账本是分开的,升级链码时并不需要迁移账本数据到新链码当中,真正实现了逻辑与数据的分离,同时,链码采用Go、Java、Nodejs语言编写。
安装链码,其中:ccPath是相对$GOPATH/src的路径;ccType为链码的编程语言,默认为golang,且支持node,car,java:
peer chaincode install -n ${ccName} -v ${ccVersion} -p ${ccPath} -l ${ccType}
链码安装并未产生交易,因此不会影响通道内的其它peer节点,可以说链码安装是一个本地操作。
实例化链码:
peer chaincode instantiate -o ${ordererAddr} -C ${channelName} -n ${ccName} -v ${ccVersion} -c ${InitArgs} -P ${EndorserPolicy}
其实链码实例化,就是一笔特殊的交易,链码在某个节点实例化后,实例化的信息就被广播到通道内的所有节点了。如果其它节点再次实例化,自然就会冲突。通道内的其它peer节点,只是同步了世界状态,并不需要调用被实例化链码的Init,也就不会创建镜像,并启动链码容器了。
标签:docker容器 合约 编译 应用开发 anti 分布 配置管理 version 智能
原文地址:https://www.cnblogs.com/HachikoT/p/14268900.html