ubuntu16.04 LTS fabric1.0.0
【】中的是要求的版本
更新apt源
笔者使用阿里的源,不同源的区别在于仓库的包的版本不同,参考
中文输入法
注意:
在16.04的版本中,目前ibus有各种无法解决的问题,建议使用fcitx
操作:
问题:
可能会出现启动fcitx后无法自动加载输入法,需要每次都手动加的问题,笔者无法解决,经过多次尝试通过上述多次apply的步骤可能可以成功
参考:
http://jingyan.baidu.com/article/86f4a73e8f534637d752695e.html
因为自带了,所以python –version命令检查python 2.7.12【Python: 2.7.x】
下载安装git 2.14.0【git: 2.9.x or higher】
安装依赖包
sudo apt install zlib1g-dev
下载源代码包
进入git解压包的根目录,配置安装目录,一般都在/usr/local目录,笔者是/usr/local/git
./configure --prefix=/usr/local/git
编译
make
安装
sudo make install
设置环境变量,重启生效,笔者的环境变量如下,路径是git的安装目录
export Git=/usr/local/git
export PATH=$PATH:$Git/bin
检查
git --version
下载安装node 6.11.2(include npm 3.10.10)【Node: 6.x (note version 7 is not supported) and npm: v3.x or v5.x】
ln node包根目录/bin/node /usr/bin/node
ln -s /node包根目录/lib/node_modules/npm/bin/npm-cli.js /usr/bin/npm
node --version
npm --version
下载安装go 1.8,环境变量配置好后重启
参考:
apt安装curl
sudo apt install curl
安装docker 17.06.1-ce【Docker Engine: Version 17.03 or higher】
下载脚本安装docker
curl -sSL https://get.docker.com/ | sh
添加用户到docker用户组以方便非root用户操作(重启生效,可以在最后重启)
usermod -aG docker <username>
修改docker配置文件
/etc/default/docker:
# Use DOCKER_OPTS to modify the daemon startup options.
#DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"
DOCKER_OPTS="-H=unix:///var/run/docker.sock -H=0.0.0.0:2375"
重启docker服务
service docker restart
查看docker版本以确定安装完成
docker --version
apt安装docker-compose 1.8.0【Docker-Compose: Version 1.8 or higher】(如果是其他源可能版本不够那就需要去直接下载包安装了)
sudo apt install docker-compose
配置docker加速器daocloud
参考:
操作:
service docker restart
下载fabric的一些工具和脚本并且自动下载镜像和修改tag,可能下载过程会中断,这是网络原因
curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap-1.0.0.sh | bash
下载一系列fabric例子和脚本用于搭建fabric网络
git clone https://github.com/hyperledger/fabric-samples.git
测试byfn网络、测试fabcar网络、测试balance-transfer网络
byfn:执行byfn.sh脚本
fabcar:先在该目录下执行npm install,然后执行startFabric.sh脚本,然后运行query.js或者invoke.js文件
balance-transfer:先在该目录下执行npm install,然后顺序执行runApp.sh和testAPIs.sh
测试fabcar时报错,关于invoke.js的错误,需要先修改invoke.js文件的57、58行(根据该行前面的注释)
测试balance-transfer网络时报错,缺少jq,需要下载jq
sudo apt install jq
测试balance-transfer网络执行testAPIs.sh时可能出现下面的错误,
error: [Peer.js]: sendProposal - timed out after:45000
error: [Peer.js]: sendProposal - timed out after:45000
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: REQUEST_TIMEOUT
at Timeout._onTimeout (/home/fangyincheng/fabric-samples/balance-transfer/node_modules/fabric-client/lib/Peer.js:100:19)
at ontimeout (timers.js:386:14)
at tryOnTimeout (timers.js:250:5)
at Timer.listOnTimeout (timers.js:214:5)
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: REQUEST_TIMEOUT
at Timeout._onTimeout (/home/fangyincheng/fabric-samples/balance-transfer/node_modules/fabric-client/lib/Peer.js:100:19)
at ontimeout (timers.js:386:14)
at tryOnTimeout (timers.js:250:5)
at Timer.listOnTimeout (timers.js:214:5)
[2017-08-25 06:07:13.509] [ERROR] instantiate-chaincode - instantiate proposal was bad
[2017-08-25 06:07:13.510] [ERROR] instantiate-chaincode - instantiate proposal was bad
[2017-08-25 06:07:13.510] [ERROR] instantiate-chaincode - Failed to send instantiate Proposal or receive valid response. Response null or status is not 200. exiting...
[2017-08-25 06:07:13.510] [ERROR] instantiate-chaincode - Failed to order the transaction. Error code: undefined
改,/home/fangyincheng/fabric-samples/balance-transfer/node_modules/fabric-client/config/default.json文件下的45000的超时时间为更长,笔者改为100000便可以了
以下开发ide为笔者觉得不错的,根据个人爱好下载
下载安装intelliJ IDEA并安装go插件
下载安装vscode(笔者个人觉得nodejs用vscode来写比其他的ide都爽)