Hyperledger Fabric 1.2快速安装

Zealot
区块链
2018-08-24

Hyperledger Fabric当前最新版本为1.2, 自行参考官方安装文档
https://hyperledger-fabric.readthedocs.io/en/release-1.2/prereqs.html
以Centos7安装为例, 简单说明注意事项。

1.安装或更新curl
yum install curl
yum update curl
保证尽量新的版本, 后面步骤安装脚本使用curl下载文件

2.docker安装
(1)Docker CE安装参考官方文档
https://docs.docker.com/install/linux/docker-ce/centos/
如果官方的源采访有限制则可使用阿里的源
yum install yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager —add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce

官方镜像下载会比较慢,最好修改为国内的镜像地址。 docker存储镜像的目录最好不放系统盘下,最好指向数据盘.
新建或编辑/etc/docker/daemon.json
{
“data-root”: “/mnt/sda3/docker-root”,
“registry-mirrors”: [“https://docker.mirrors.ustc.edu.cn“]
}

启动docker服务
systemctl start docker

(2)Docker Compose
参考官方文档
https://docs.docker.com/compose/install/#install-compose
最好到gitub的release page下载, 当前最新版本1.22.0
https://github.com/docker/compose/releases

curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

3.Go语言
版本需要1.10.x或以上, yum能搜出来的是1.9.4的, 国内是不能直接装的了, 到go语言中文网下载.
https://studygolang.com/dl

wget https://studygolang.com/dl/golang/go1.10.3.linux-amd64.tar.gz
tar -zvxf go1.10.3.linux-amd64.tar.gz

设置GOPATH, 这里编辑全局环境变量/etc/profile
export GOPATH=/mnt/sda3/go
PATH=$GOPATH/bin:$PATH

环境变量生效source /etc/profile

验证下是否生效
echo $GOPATH
go version

4.Node.js
官方下载解压设置到环境变量即可, 注意9.x版本不支持, 需要安装8.9.x或更新
wget https://nodejs.org/dist/v8.11.3/node-v8.11.3-linux-x64.tar.xz
xz -d node-v8.11.3-linux-x64.tar.xz
tar -xvf node-v8.11.3-linux-x64.tar

编辑/etc/profile
export NODE_HOME=/mnt/sda3/node-v8.11.3-linux-x64
PATH=$NODE_HOME/bin:$PATH

生效source /etc/profile
验证是否生效, npm需要5.6版本或更新
node -v
npm -v

5.bootsrap.sh安装fabric-sample
wget https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh
chmod u+x bootstrap.sh

确保docker服务启动 systemctl start docker
确保安装了git客户端 yum install git
执行./bootstrap.sh 进行安装
当前目录下载fabric-samples目录, 里面的bin目录包含了fabric-tools常用的的cryptogen, peer等工具, 这里我们移动bin到一个外部目录并配置到/etc/profile环境变量中
PATH=/mnt/sda3/hyperledger-fabric/bin:$PATH
Export PATH

在阿里云碰到多下载很慢的问题, 这个时候可以尝试手工下载控制台提示下载的文件, 终止bootstrap.sh运行, 手工上传这两个压缩包放fabric-samples目录下, 再运行bootstrap.sh即可跳过。
https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/linux-amd64-1.2.0/hyperledger-fabric-linux-amd64-1.2.0.tar.gz

https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric-ca/hyperledger-fabric-ca/linux-amd64-1.2.0/hyperledger-fabric-ca-linux-amd64-1.2.0.tar.gz

6.运行例子
进去/mnt/sda3/fabric-samples/first-network
执行./byfn.sh down先清理下防止以前运行过
再执行./byfn.sh up 如果能看到以下结果就是两个Org,四个Peer的区块链网络运行成功了

Creating network "net_byfn" with the default driver
Creating volume "net_orderer.example.com" with default driver
Creating volume "net_peer0.org1.example.com" with default driver
Creating volume "net_peer1.org1.example.com" with default driver
Creating volume "net_peer0.org2.example.com" with default driver
Creating volume "net_peer1.org2.example.com" with default driver
Creating peer0.org1.example.com ... done
Creating peer0.org2.example.com ... done
Creating peer1.org2.example.com ... done
Creating peer1.org1.example.com ... done
Creating orderer.example.com    ... done
Creating cli                    ... done


========= All GOOD, BYFN execution completed =========== 


 _____   _   _   ____   
| ____| | \ | | |  _ \  
|  _|   |  \| | | | | | 
| |___  | |\  | | |_| | 
|_____| |_| \_| |____/ 

在阿里云一些环境可能会抛出getaddrinfo异常
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x63 pc=0x7f9d15ded259]
runtime stack:
runtime.throw(0xdc37a7, 0x2a)
/opt/go/src/runtime/panic.go:566 +0x95
runtime.sigpanic()
/opt/go/src/runtime/sigpanic_unix.go:12 +0x2cc
goroutine 64 [syscall, locked to thread]:
runtime.cgocall(0xb08d50, 0xc4203bcdf8, 0xc400000000)
/opt/go/src/runtime/cgocall.go:131 +0x110 fp=0xc4203bcdb0 sp=0xc4203bcd70
net._C2func_getaddrinfo(0x7f9d000008c0, 0x0, 0xc420323110, 0xc4201a01e8, 0x0, 0x0, 0x0)

可以去把/etc/resolve.conf的options配置去掉, 具体原因参考
https://yq.aliyun.com/articles/238940

t_304b08e8fb754ccbb2ccb25a9f081920.png

点赞 0
0条评论
其他心得
Zealot · 212天前 
1.简介 Fabric CA基于开源项目CFSSL开发, 主要为fabric网络提供PKI证书服务,是MSP生成的基础。可能有人会问, 官方不是有cryptogen工具批量生成MSP吗? cryptogen实际是辅助测试工具,默认不同orderer,org都有不同的CA, 如果一个org要追加个peer或user, cryptogen就不管用了。生产环境我们建议使用fabric ca全面管理证书, 如果想简单来而区块链组织,节点和用户基本不会变, cryptogen也没问题。 2.
Zealot · 109天前 
去年得知蚂蚁金服放出SOFA的部分开源项目, RPC部分号称源于阿里内部的HSF, HSF当年可是把dubbo 1.x踢出局的, 只是没想到京东改造dubbo为JSF, 当当改为dubbox。国内蛮多电商公司实施服务化就直接上dubbo 1.x或dubbox。这应该是阿里没想到的, 所以现在dubbo 2.x又回笼为apache的顶级项目, 把dubbox合并还继续完善。 朋友说他们公司花了千万买了SOFA的商业版, 那么值钱的东西今天抽空过了一下开源部分的SOFAStack和dubbo2.x文档
Zealot · 118天前 
Fabric 1.4.1引入Raft排序服务, 运维界比较出名的etcd实现的orderer服务。后生可畏, etcd是中国一个年轻人的作品, 实现了raft协议, 在k8s等容器化, 虚拟化, 集群化有官方应用。etcd也是go语言编写, fabric开窍了, 直接把etcd和orderer整合了, 相比kafka/zookeeper的排序服务,搭建简单多了,也比kafka这些省了很多资源(kafka默认开的堆是2GB..), 所以个人是强烈推荐使用,尽量出来不久,但在1.4LTS维护,
Luoying web framework Luoying web framework contains a bundle of components to accelerate J2EE development Github地址 https://github.com/zealzeng/luoying-web Maven地址 <dependency> <groupId>com.whlylc</groupId> <artifac
Zealot · 126天前 
Hyperledger Fabric v2.0 Alpha引入两大新功能,新的Fabric链码生命周期和FabToken. 新的链码生命周期 2.0支持链码的去中心化的治理,引入新的流程在节点上安装链码,在通道上启动实例。新的链码生命周期允许多个组织对链码的参数协同达成一致,例如链码的背书策略。新的模型的改进点如下: (1) 多个组织必须确认同意链码的参数 1.x版本里,一个组织拥有修改链码参数的能力,例如修改背书策略,通道的其它成员也被同步而更改。新的链码生命周期更灵活一些,它兼容支