本篇旨在记录照着助教老师教程一步步艰难配置的过程。其中一是步骤摘要,二是重点记录自己在过程中遇到的问题及解决方案,三是助教老师给的完整的过程,适用于一步步照做从零开始,但可能并不对每个人保证没问题,如果途中遇到问题可以参照我的或自行解决。
1.准备工作:新虚拟机安装Samba,实现文件夹和剪贴板共享。注意修改/etc/apt/sources.list时,千万先备份到sources.list.bak 而不要直接修改, 否则换完国内的源好多sudo apt-get 都不好使脸就黑了
2. 下载go,并移动到目录,设置环境变量
3. 安装docker,这步最复杂
4. 下载fabric, 安装并运行示例
感谢室友然神指点和助教老师的教程!
按照助教给的用中科大源貌似行不通,按照然神提议照docker官网操作,设置代理后基本解决问题
1. 一开始第3步添加GPG key时行不通
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
报错:
pgg@ubuntu:~$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
curl: (7) Failed to connect to download.docker.com port 443: Connection refused
gpg: no valid OpenPGP data found.
但这个设置了代理之后貌似就解决了?具体我也不清楚
2. 按官网命令添加完repository后,$ sudo apt-get update 时又遇到问题,下着下着速度就没有了,
Err:10 https://download.docker.com/linux/ubuntu xenial InRelease
Failed to connect to download.docker.com port 443: Connection refused
解决方法:设置代理,将虚拟机sudo apt-get 利用主机上s代理,下载速度变为每秒几百k,详见我的另一篇文章
sudo apt-get update -c apt_proxy.conf
sudo apt-get install docker-ce -c apt_proxy.conf
2. 安装fabric
1. git 获取官网fabric代码时速度极慢,设置代理后提速百倍!
git config --global https.proxy 192.168.2.242:1080
git config --global http.proxy 192.168.2.242:1080
前面步骤照常,用docker安装镜像时出现问题,
===> List out hyperledger docker images
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.37/images/json: dial unix /var/run/docker.sock: connect: permission denied
上百度搜错误解决,王宝花的简书,注意里面最后一步是必须的!
2. hyperledger 执行出现问题,
2018-07-12 07:13:26.292 UTC [msp/identity] Sign -> DEBU 007 Sign: digest: A08C3B675318A2F011F0DD326D3DC10D6A4B61DC3E9B06088B24D6755674C9B3
Error: Error endorsing query: rpc error: code = Unknown desc = could not find chaincode with name 'mycc' - make sure the chaincode mycc has been successfully instantiated and try again -
这个可能是一开始复制了错误的命令导致的,切换到指定目录,并拉取 beta版镜像后,./network_setup.sh up 启动网络能出现 START - E2E 但不能出现 END - E2E !
cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/
source download-dockerimages.sh -c x86_64-1.0.0-beta -f x86_64-1.0.0-beta
把错误原因粘贴找了许多地方,都没解决,几乎放弃!!!
后来,我重启了机器,然后 source 了网上普遍流传的,非beta版:
source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0
然后再启动网络时错误就没了! 所以我也不知道是需要重启,还是需要拉取非beta版的镜像~
系统环境:ubuntu16.04
需要安装git、pip等常用工具
首先到https://golang.google.cn/dl/下载安装包并解压
tar -xvf go1.10.linux-amd64.tar.gz sudo mv go /usr/local
编辑环境变量:
gedit ~/.profile export PATH=$PATH:/usr/local/go/bin export GOROOT=/usr/local/go export GOPATH=$HOME/go export PATH=$PATH:$HOME/go/bin source ~/.profile
在Home目录下创建go文件夹
mkdir go
更新源:
sudo apt-get update
添加使用 HTTPS 传输的软件包以及 CA 证书:
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
添加软件源的GPG密钥(此处用中科大的源):
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
向 source.list 中添加 Docker 软件源:
sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
安装和启动docker-ce:
sudo apt-get update sudo apt-get install docker-ce sudo systemctl enable docker sudo systemctl start docker
增加docker用户组:
sudo groupadd docker sudo usermod -aG docker $USER
安装Docker-compose(需要安装好pip工具):
sudo pip install docker-compose
安装Docker的方法有多种,使用sudo apt install docker.io安装的版本较低。一些教程上的安装方法不适合国内环境可以使用docker version命令查看版本
技巧:使用阿里云加速
$sudo mkdir -p /etc/docker $sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["加速地址,到https://cr.console.aliyun.com/#/accelerator申请"] } EOF $sudo systemctl daemon-reload $sudo systemctl restart docker
需要安装git工具
mkdir -p ~/go/src/github.com/hyperledger cd ~/go/src/github.com/hyperledger git clone https://github.com/hyperledger/fabric.git
切换到v1.0.0版本:
cd ~/go/src/github.com/hyperledger/fabric git checkout v1.0.0
拉取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 source download-dockerimages.sh -c x86_64-1.0.0-beta -f x86_64-1.0.0-beta
过程中可能会提示错误。尝试修改base下的peer-base文件:CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=e2e_cli_default
(这一步不同情况可能处理方法不同,请尽量自行尝试解决)
清理容器和停止网络:
docker rm -f $(docker ps -aq) ./network_setup.sh down
部署过程到此结束。