文档章节

初次编写chaincode并部署运行体验

fangYC
 fangYC
发布于 2017/08/19 17:37
字数 688
阅读 154
收藏 0

#环境:

1、vmware和ubuntu虚拟客户机环境为ubuntu16.04.2 LTS和vm12.5.7
2、已经运行成功fabric1.0的byfn网络(可参考笔者的另一篇文章“hyperledger-fabric+docker安装体验”)

#说明:

1、方便起见,笔者利用byfn网络所带的脚本进行部署chaincode,并没有通过开发模式
2、以下描述的脚本中语句和内容都是原先的不经过修改的例子

#步骤:

1、在你喜欢的IDE上编写chaincode,这方面自行参考网上,和{你的目录}/fabric-samples/chaincode/下的几个链码例子,参考链接:http://www.cnblogs.com/studyzy/p/7360733.html

2、在{你的目录}/fabric-samples/chaincode/下新建一个文件夹,把写好的chaincode文件(***.go等所有相关文件)复制到该文件夹中,参考命令:

	cp {chaincode文件路径}/具体文件 {你的目录}/fabric-samples/chaincode/新文件夹/具体文件

3、打开first-network/scripts目录下的scripts.sh文件,按照如下步骤修改:

	1)找到脚本中的installChaincode函数,修改其中内容chaincode_example02为第二步新建的文件夹名字
	2)找到脚本中的instantiateChaincode函数,修改其中参数部分:
		如,["init","a","100","b","200"]中第一个参数是要做的对应操作,init对应chaincode中的Init方法(这一步中init不用改),其他的都会进入Invoke方法,具体见代码;第二个参数开始就是要传入chaincode的参数(args []string),根据代码需要进行修改
	3)找到脚本中的chaincodeQuery函数,修改同2,其中第一个参数根据chaincode中编写的Invoke方法内查询方法对应的字符串
	4)找到脚本中的chaincodeInvoke函数,修改同2,其中第一个参数根据chaincode中编写的Invoke方法内调用的方法对应的字符串
	5)找到#Query on chaincode on Peer0/Org1注释下的语句,把chaincodeQuery的第二个参数修改为你的chaincode在此时调用查询方法得到的结果(注意,如果结果中有空格,则只写以空格分隔的最后一部分。这个参数其实是用于脚本判断查询是否成功)
	6)找到#Query on chaincode on Peer3/Org2, check if the result is 90注释下的语句,同5一样修改,注意此时的查询结果不一定和5一样,因为在这之前经过了一次invoke,当然,具体看你的chaincode了

4、这时候就可以开启测试了,进入byfn.sh脚本目录,直接执行./byfn.sh -m up

5、进行测试:
	进入cli容器,执行查询、调用等命令测试chaincode是否正常运行,具体命令参考scripts.sh脚本或者参考http://hyperledger-fabric.readthedocs.io/en/latest/samples.html

DONE.

© 著作权归作者所有

共有 人打赏支持
fangYC
粉丝 0
博文 12
码字总数 11571
作品 0
揭阳
程序员
虚拟货币,山寨币开发多节点集群的部署(1)

区块链爱好者(QQ:53016353) 虚拟货币 Fabric 1.0即将揭开面纱,社区用户对此充满期待。为迎接 Fabric 1.0 的发布,本文分3期连载,介绍如何搭建多节点的分布式 Fabric 集群,文后可下载P...

jqq53016353
2017/12/07
0
0
用Java为Hyperledger Fabric(超级账本)开发区块链链代码智能合约之编写链代码程序

编写第一个 Java 链代码程序 在上一节中,您已经熟悉了如何构建、运行、部署和调用链代码,但尚未编写任何 Java 代码。 在本节中,将会使用 Eclipse IDE、一个用于 Eclipse 的 Gradle 插件,...

笔阁
05/24
0
0
在Fabric ChainCode中导入第三方包(以状态机为例)

在企业级应用开发中,经常会涉及到流程和状态,而有限状态机(FSM)则是对应的一种简单实现,如果复杂化,就上升到Workflow和BPM了。我们在Fabric ChainCode的开发过程中,也很可能涉及到状态...

深蓝居
2017/09/08
0
0
Fabric基础架构原理(4):链码 | 赠书活动

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/q48S71bCzBeYLOu9T0n/article/details/82836879 题图摄于加州Carmel 本文首发于哈希1024社区: https://hash...

亨利笔记
09/24
0
0
HyperLedger Fabric 1.2 多机多节点部署(10.3)

多机多节点指在多台电脑上部署多个组织和节点,本案例部署一个排序(orderer)服务,两个组织(org1,org2)和四个节点(peer),每个组织包括两个节点,需要五台计算机,计算机配置如下: 多...

灵·龙
09/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

请在移动端使用 先选择画笔

先选择画笔 请在移动端使用 https://lxz096.github.io/Canvas-/画板.html

壹峰
17分钟前
0
0
getSupportFragmentManager().beginTransaction().add报错cannot resolve method 'add'

getSupportFragmentManager().beginTransaction().add报错cannot resolve method 'add' 是导包的问题,所有包要保持一致,有app下的包,要保证都为app下的包 v4的包要保证都为v4的包...

lanyu96
31分钟前
0
0
linux 安装redis

Redis的安装 http://redis.io/download 官方安装例子 $ wget http://download.redis.io/releases/redis-4.0.11.tar.gz $ tar xzf redis-4.0.11.tar.gz $ cd redis-4.0.11 $ make //启动 $ sr......

苏牧影子
33分钟前
1
0
图(graph)

图(graph) 图是非线性数据结构,是一种较线性结构和树结构更为复杂的数据结构,在图结构中数据元素之间的关系可以是任意的,图中任意两个数据元素之间都可能相关。 1、概念 1.定义 图(g...

星汉
37分钟前
1
0
好用的vue组件

http://elickzhao.github.io/2017/08/vue%E4%B8%80%E4%BA%9B%E7%89%B9%E5%88%AB%E6%9C%89%E7%94%A8%E7%9A%84%E6%8F%92%E4%BB%B6/...

Littlebox
53分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部