之前在有道云笔记上分享过,但想想还是搬到这里来吧,以后统一方便整理自己的知识进入正题....

之前在调研 hyperledger fabric,其实部署说明官网都有,只是东西都是国外的照着操作也会遇到许多的坑,这里就提前给大家踩雷了,进入正题...

系统环境 linux 16.04+

安装 curl

安装 docker 和 docker-compse

step 1 : docker官网下载 根据自己环境下载指定版本的 *.deb 包 https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/
step 2 : sudo dpkg -i docker-ce_*.deb
step 3 : 通过运行hello-world 映象验证是否安装Docker CE
$ sudo docker run hello-world Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: . The Docker client contacted the Docker daemon. . The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) . The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. . The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/engine/userguide/
step 4 : 修改docker 镜像
sudo vim /etc/docker/daemon.json 添加如下内容
{ "registry-mirrors": ["https://registry.docker-cn.com"] }

修改保存后重启docker 使配置生效,

systemctl restart docker
step 5 : 判断是否安装docker,执行 docker --version
docker-compse 安装方法: 参考资料 https://docs.docker.com/compose/install/#install-compose
step 1 : 运行命令下载最新版本的docker-compse
sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

step 2 : 对二进制文件应用可执行权限

sudo chmod +x /usr/local/bin/docker-compose

step 3 : 判断是否安装

$ docker-compose --version docker-compose version 1.21., build 5920eb0

安装go

go安装方法: 下载最新压缩包 https://golang.org/dl/
step 1 : 解压安装
tar -C /usr/local -xzf go1.10.1.linux-amd64.tar.gz
使用nano ~/.profile 添加代码
step 2 : 配置
export GOROOT=/usr/local/go export PATH=$GOROOT/bin:$PATH export GOPATH=/opt/gopath
执行 source ~/.profile

安装 Samples, Binaries and Docker Images

创建文件目录
cd /opt sudo mkdir gopath cd gopath/ sudo mkdir src cd src/ sudo mkdir github.com cd github.com/ sudo mkdir hyperledger cd hyperledger/

若能翻墙,则执行

curl -sSL https://goo.gl/6wtTN5 | bash -s 1.1.0
若无法下载,则将该路径的代码拷贝到本地 https://github.com/hyperledger/fabric/blob/master/scripts/bootstrap.sh
将文件中第77行,第80行代码注释掉,且手动下载下面2个文件到目录 /opt/gopath/src/github.com/hyperledger
# curl https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/${ARCH}-${VERSION}/hyperledger-fabric-${ARCH}-${VERSION}.tar.gz | tar xz # curl https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric-ca/hyperledger-fabric-ca/${ARCH}-${VERSION}/hyperledger-fabric-ca-${ARCH}-${VERSION}.tar.gz | tar xz
下载路径 ,根据实际版本选择下载 ,本例为 1.1.0-rcl
解压下载文件,生成文件夹 bin,文件夹下有二进制文件如下
  • cryptogen,
  • configtxgen,
  • configtxlator,
  • peer,
  • orderer, and
  • fabric-ca-client
配置 nano ~/.profile 添加
export PATH=/opt/gopath/src/github.com/hyperledger/bin:$PATH
编译 source ~/.profile
执行 bootstrap.sh
sudo bash bootstrap.sh
docker exec -it cli bash

查询账户a

peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'

账户a转10给账户b

peer chaincode invoke -o orderer.example.com: --tls --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","10"]}'

查看mychannel下的info

 

hyperledger fabric部署总结的更多相关文章

  1. Hyperledger Fabric 部署

    Hyperledger Fabric 部署 Hyperledger Fabric需要使用Docker.Go环境. Docker环境安装 Docker环境安装 直接查看这一篇,安装好之后将当前用户非ro ...

  2. HyperLedger Fabric部署与链码解读

    1.Fabric简介 Fabric是超级账本中的一个项目,用以推进区块链技术.和其他区块链类似,它也有一个账本,使用智能合约,且是一个参与者可以分别管理自身交易的系统.它是一个联盟链.Fabric与其 ...

  3. Hyperledger Fabric 部署在多个主机上

    前言 在实验Hyperledger Fabric无排序组织以Raft协议启动多个Orderer服务.TLS组织运行维护Orderer服务中,我们已经完成了使用提供 TLS-CA 服务的 council ...

  4. HyperLedger Fabric 1.1 手动部署单机单节点

    手动部署单机单节点 之前发布过官方的e2e部署方案,由于环境或是访问权限等各种问题,还是有相当一部分码友无法成功跑起来,故此,本章将来一次纯手动操作的集群部署. 主要需要的步骤如下: 1:环境整理 2 ...

  5. 用Java为Hyperledger Fabric(超级账本)开发区块链智能合约链代码之部署与运行示例代码

    部署并运行 Java 链代码示例 您已经定义并启动了本地区块链网络,而且已构建 Java shim 客户端 JAR 并安装到本地 Maven 存储库中,现在已准备好在之前下载的 Hyperledger ...

  6. Centos7 HyperLedger Fabric 1.4 生产环境部署

    Kafka生产环境部署案例采用三个排序(orderer)服务.四个kafka.三个zookeeper和四个节点(peer)组成,共准备八台服务器,每台服务器对应的服务如下所示: kafka案例网络拓扑 ...

  7. 在Ubuntu中部署并测试HyperLedger Fabric 0.6

    最近开始研究区块链,对这个新兴的技术有了基本概念上的了解,所以打算基于一个开源项目做做实验.如果是做数字货币,那么比特币的源代码是最好的了,不过这算是区块链1.0吧,已经有很多改进的竞争币和山寨币出来 ...

  8. Hyperledger fabric 1.3版本的安装部署(原创多机多Orderer部署

    首先,我们在安装前,要考虑一个问题 Hyperledger Fabric,通过指定的节点进行背书授权,才能完成交易的存储 延伸开来,就是为了实现容错.高并发.易扩展,需要zookeeper来选择排序引 ...

  9. HyperLedger/Fabric SDK使用Docker容器镜像快速部署上线

    HyperLedger/Fabric SDK Docker Image 该项目在github上的地址是:https://github.com/aberic/fabric-sdk-container ( ...

随机推荐

  1. Centos7修改yum源

    1. 备份本地yum源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak 2.获取阿里yum源配置文 ...

  2. maven导入外部jar包的方法

    maven的导入外部jar包的方法(前提还有外部jar包) 1.问题: 在maven添加依赖包时,添加不成功,可以选择通过外部命令导入到仓库里. 2.命令:(在Dos命令行) mvn install: ...

  3. ecshop 商品属性显示方法

    功能:在商品列表上,点击放大镜,显示商品所有属性以及其价格,效果如下: 方法/步骤: 1.编辑\admin\templates\goods_list.htm 模板,在 <!-- 商品搜索 --& ...

  4. 360大牛:全面解读PHP面试

    让大家了解基本面试流程和面试的核心要求以及意义是什么并理解PHP面试考点主要以基础为核心,说明PHP面试考察范围. 有需要联系:QQ:1844912514

  5. 一次jdk1.7升级jdk1.8后导致redis运行时blocked_clients过多问题解决

    公司有个采集项目,因为请求量较大,添加了redis集群,并且升级了原有的jdk1.7到jdk1.8版本,之后问题就出来了. 1.程序运行一段时间就自动停止,必须重启才能再次运行. 2.redis连接监 ...

  6. Re.多项式除法/取模

    前言 emmm又是暂无 前置 多项式求逆 多项式除法/取模目的 还是跟之前一样顾名思义] 给定一个多项式F(x),请求出多项式Q(x)和R(x),满足F(x)=Q(x)∗G(x)+R(x),R项数小于 ...

  7. loj6074 子序列

    题目链接 思路 首先考虑暴力\(dp\) 用\(f[i][j]\)表示前\(i\)个字符,以\(j\)这个字符结尾的本质不同的字符串个数. 然后就有如下的转移 \(if(s_i==j)\) \[f_{ ...

  8. Tomcat系列(7)——Tomcat类加载机制

    1. 核心部分 1. 类加载器: 通过一个类的全限定名来获取描述此类的二进制字节流. 对于任意一个类,都需要由加载他的类加载器和这个类本身一同确立其在Java虚拟机中的唯一性,每一个类加载器,都拥有一 ...

  9. [源码分析]Java1.8中StringJoiner的使用以及源码分析

    [源码分析]StringJoiner的使用以及源码分析 StringJoiner是Java里1.8新增的类, 或许有一部分人没有接触过. 所以本文将从使用例子入手, 分析StringJoiner的源码 ...

  10. 责任链模式-Chain of Responsibility(Java实现), 例2

    责任链模式-Chain of Responsibility 在这种模式中,通常每个接收者都包含对另一个接收者的引用.如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推. 咱们在 ...