Fabric1.0.0单机环境部署
从2018年6月份左右,开始接触fabric,搭建了单机或集群环境,也写了一些文档。最近整理电脑时发现,在这里分享出来。。。。
系统: linux ubuntu 16.04
安装Go
1.8以上
cd /www/download/
wget https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz
解压缩,解压后文件夹是go
sudo tar -xzf go1.9.linux-amd64.tar.gz
sudo vi /etc/profile
export PATH=$PATH:/www/download/go/binexport GOROOT=/www/download/goexport GOPATH=$HOME/goexport PATH=$PATH:$HOME/go/bin
source /etc/profile
go version
安装Docker
更新源
sudo apt-get update
安装docker
sudo apt-get install -y docker.io
修改当前用户(我使用的用户叫content2)权限
sudo usermod -aG docker content2
注销并重新登录(或关闭当前黑屏窗口重新进入),然后添加阿里云的Docker Hub镜像:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'{"registry-mirrors": ["https://obou6wyb.mirror.aliyuncs.com"]}EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
docker -v
安装docker-compose
Docker-compose是支持通过模板脚本批量创建Docker容器的一个组件。
sudo apt-get install -y docker-compose
docker-compose --version
Fabric源码下载
阿里云服务器需要修改修改 /etc/resolv.conf 配置,将 options timeout:2 attempts:3 rotate single-request-reopen 内容注释掉,作者修改后的内容如下# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTENnameserver 100.100.2.136nameserver 100.100.2.138# options timeout:2 attempts:3 rotate single-request-reopen
sudo mkdir -p ~/go/src/github.com/hyperledger
cd ~/go/src/github.com/hyperledger
sudo git clone -b release-1.0 https://github.com/hyperledger/fabric
给fabric文件夹授权
sudo chown content2.content2-R fabric
生成可执行文件
cd ~/go/src/github.com/hyperledger/fabric
make configtxgen
Fabric Docker镜像的下载
cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/
source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0
检查下载的镜像列表
docker images
启动Fabric网络并完成ChainCode的测试
在~/go/src/github.com/hyperledger/fabric/examples/e2e_cli目录下执行启动命令,它会启动一个 mychannel 的channel
./network_setup.sh up
执行完成后,会显示
至此,整个Fabric网络已经通了。
这里容易出现错误,
类似这样的错误,是因为channel已经建立,命名冲突。这时候需要清除docker容器的内容,并重新执行上面的命令。
1)删除一个容器 docker rm
2)强制删除一个容器 docker rm -f
3)强制删除全部容器 docker rm -f $(docker ps -aq)
测试Fabric网络
以现在安装好的Example02为例,在官方例子中,channel名字是mychannel,链码的名字是mycc。我们首先进入CLI,我们重新打开一个命令行窗口,输入:
docker exec -it cli bash
查询a账户的余额:
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
显示余额是90
把a账户的余额再转20元给b账户:
peer chaincode invoke -o orderer.example.com:7050 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n mycc -c '{"Args":["invoke","a","b","20"]}'
查询a账户的余额,显示70
关闭Fabric网络
cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli
./network_setup.sh down
Fabric1.0.0单机环境部署相关推荐
- 【RocketMQ】4、Windows10单机环境部署
[RocketMQ]4.Windows10单机环境部署 文章目录 [RocketMQ]4.Windows10单机环境部署 一.RocketMQ下载 二.环境搭建 三.启动RocketMQ 四.图形管理 ...
- JeeSite 4.0 (1.0)开发环境部署运行
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 环境要求 1.Java SDK 1.8 下载 2.Eclipse IDE for Java EE M ...
- Spring Boot 2.0.0.M7 生产环境部署
springboot 生产环境 注意事项 1.去除不需要的 jar 开发工具jar:spring-boot-devtools 监控一定要做好权限控制或者去除 控制jar:spring-boot-sta ...
- fabric1.4.3单机环境搭建教程(四)
fabric中链码的其他操作 1.链码的打包 通过链码对相关数据(如链码名称,版本,实例化策略)进行封装,可以使用package命令进行打包操作 $ peer chaincode package -n ...
- (个人)Zookeeper集群环境部署
一.准备工作 1. 下载zookeeper,下载地址:https://zookeeper.apache.org/releases.html#download 2. 下载CentOS7的镜像,下载地址 ...
- TiDB 6.1 单机环境 On openEular 2003 SP3
作者: 数据小黑 原文来源: https://tidb.net/blog/8dafdf96 背景 最近对国产操作系统很感兴趣,也有一些场景需要验证落地,经过朋友推荐,选择华为的openEular进行验 ...
- Hyperledger fabric1.4.0搭建环境
Hyperledger fabric1.4.0搭建环境 原创牧竹子 最后发布于2019-05-11 21:10:20 阅读数 630 收藏 展开 Hyperledger fabric1.4.0搭建环 ...
- linux单机到单机adg环境,Oracle 11.2.0.4 DataGuard 环境打PSU,OJVM PSU补丁快速参考
环境:RHEL6.5 + Oracle 11.2.0.4 DataGuard physical standby 主库和备库都是单节点. 需求:主备库同时应用160719的PSU和OJVM PSU补丁. ...
- eclipse中hadoop2.3.0环境部署及在eclipse中直接提交mapreduce任务
转自:http://my.oschina.net/mkh/blog/340112 1 eclipse中hadoop环境部署概览 eclipse中部署hadoop包括两大部分:hdfs环境部署和mapr ...
最新文章
- 6.字符串解析(LeetCode第394题)
- php将科学计算法得出的结果转换成原始数据
- python读数据-python数据读写
- c语言万年历需要注意什么意思,C语言万年历
- 时钟信号线 电源线 地线_信号线和电源线的区别
- 如何写一个数据库中间件以及需要准备的知识储备
- 一步步优化JVM四:决定Java堆的大小以及内存占用
- Datalogic 得利捷推出超级灵活且坚固可靠的PowerScan 9600 系列 庆祝公司成立50周年
- 大数据技术如何影响企业决策?
- 电脑主板资料库 07【转至www.ongood.com.tw】【FreeXploiT收集整理】
- WPS表格2013怎么进行数据合并计算将多个区域进行合并计算
- 海外服务器租用主要要看三个方面
- [转] 大三下,我们该做什么?
- Android 小米全面屏手势底部虚拟按键的适配
- 第三方平台创建小程序步骤
- 脱裤子放屁之用两个栈实现队列、用两个队列实现栈
- 铁路基边坡滑坡隧道监测解决方案
- 22-07-04 西安 尚好房(01)项目经验总结
- 地球人口承载力估计(c++基础)
- 太平歌词 - 《白蛇传》