查看原文
其他

用Hyperledger cello的0.9.0-h3c分支创建一套区块链系统

来源 | CSDN博客
作者 | rtxie
责编 | Jerry
本文介绍用hyperledger cello的0.9.0-h3c分支创建一套区块链系统的完整流程,希望对读者有所帮助。
环境准备工作:需要准备一台装有ubuntu 16.04的主机,内存需要大一些,建议8G以上,提前安装docker-ce和docker-compose。
接下来,使用如下命令获取代码:
git clone https://github.com/hyperledger/cello -b release-0.9.0-h3c。
代码获取成功后,编译版本镜像,直接进入代码目录,执行make docker,执行成功后效果如下图:
版本编译完成后的查看结果,使用docker images查看编译成功的docker镜像:

然后执行make start,即可启动cello,效果如下图:
这时候可以通过docker ps命令查看启动的docker容器:
这个时候,就可以通过浏览器访问cello的operator-dashboard管理界面了。
但是在此之前,需要打开本机的2375端口,供创建主机使用,脚本如下:
docker run -d -v /var/run/docker.sock:/var/run/docker.sock -p 0.0.0.0:2375:2375 bobrik/socat TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock
执行成功后,通过docker ps可以看到bobric/socat容器正在监听2375端口:
需要提前在主机中安装执行apt-getinstall nfs-common,以便能够正常的mount nfs目录,然后进入到script/worker_node目录执行./setup.sh
此时cello已经安装完毕,在浏览器中输入:http://服务器ip:8071即可启动cello的operator-dashboard,界面效果如下图:
默认用户名和密码是admin/pass
登陆后的界面如下:
这个时候,可以通过界面搭建区块链网络了。
点击“主机管理”--〉“添加”,出现如下界面:
在“名称”中输入需要创建的主机名,比如“host”,在“服务地址”中输入本机的ip地址:2375,其他选项默认,然后点击“提交”,成功后,效果如下:
点击“组织管理”-〉“添加”,分别创建一个peer组织和一个orderer组织,如下:
创建成功后的可以看到已经创建完成的组织列表,在组织列表中可以查看组织详情或者增加peer节点的数量:
点击网络管理->新建网络,创建一个区块链网络
点击提交后效果如下:
等片刻后,在主机串口下通过docker ps命令可以看到peer/orderer/ca节点都已经启动。
此时可以登陆cello的user-dashboard界面了,在浏览器导航栏输入http://主机ip:8081,效果如下图:
回到operator-dashboard管理界面,在“用户管理”中找到创建组织的时候自动生成的组织用户作为user-dashboard的登录用户名,默认密码是666666,登陆user-dashboard后的效果如下:
点击“通道管理”->“创建通道”,创建一个通道:
点击“提交”后,生成通道,这时可以看到已经生成的通道列表:
在刚刚创建的通道的“操作”选项点击“添加节点”,在组织中选择想要的节点添加到通道中,如下:
点击“提交”,可以看到通道中的节点数量已经发生了变化:
点击“链码管理”->"上传链码",选择一个链码压缩包上传,需要注意,链码压缩包需要连同所在目录一块压缩成zip格式上传,同时需要计算压缩包的md5值
上传成功后,点击“安装”,把链码安装到通道的节点中,如下:
回到主机串口下,执行:
docker pull hyperledger/fabric-ccenv:1.4.2
然后执行:
docker tag fc0f502399a6 hyperledger/fabric-ccenv:latest
把镜像的tag修改成latest:
点击“实例化链码”,选择实例化的通道,配置实例化参数,在“操作”中选择“与”/“或”/“自定义”,可以选择不同的背书策略,“与”和“或”的背书策略,系统已经默认设定,选择“自定义”的时候,需要手工输入背书策略。需要注意的是:每一个参与背书的节点,都必须安装对应的链码。
链码实例化成功后,整个区块链系统的搭建已经完成,此时可以验证链码的执行效果。
点击"通道管理"->“通道详情”->"实例化链码列表",选择对应的链码,然后输入invoke或者query参数,即可验证效果。
在图上的示例中使用了fabric官方的example 02的例子,通过a给b转帐的动作来演示链码的执行效果。
原文链接https://blog.csdn.net/rtxie/article/details/108866866
推荐阅读

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存