链接:https://pan.baidu.com/s/18CxvujwZi8Sv8fSPD_EB0A
提取码:9blk
http://releases.ubuntu.com/16.04/
选择对应镜像并下载
详见:https://blog.csdn.net/salmon_zhang/article/details/79468918
【注意】
要在虚拟机选项中,把连接CD/DVD 关掉,并重启。详见:https://blog.csdn.net/weixin_36429334/article/details/73231926
否则会出错:[sdb] assuming drive cache:write through
1)看启动的Ubuntu系统能否连接网络
2) 保证apt source是国内的,提高下载速度。
具体操作:
进入ubuntu桌面右上角按钮菜单中选择“系统设置”, 在弹出的窗口中选择 “软件和更新”。
切换到“Ubuntu软件”选项,在底部“下载自”中选择国内的镜像,然后点击关闭。
系统弹出对话框,选择“重新载入”即可。
以下主要参照优秀师兄的专栏:https://zhuanlan.zhihu.com/p/35063055
输入sudo apt install curl
使用阿里提供的镜像进行安装,输入curl -fsSL https://get.docker.com/ | sh
,下载完成后显示
sudo usermod -aG docker yrr
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://obou6wyb.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
Docker-compose是支持通过模板脚本批量创建Docker容器的一个组件。
在安装Docker-Compose之前,需要安装Python-pip,运行脚本:
sudo apt-get install python-pip
我们从官方网站(https://github.com/docker/compose/releases )下载,运行脚本:
sudo curl -L https://github.com/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
用终端下载半天没下载下来orz,于是直接到网站(http://www.golangtc.com/download)进行手动下载了,选择
sudo tar -C /usr/local -xzf go1.9.2.linux-amd64.tar.gz
/usr/local/go/bin/go version
1)多用户配置,终端输入:vim ~/.profile
2)在文件末尾插入以下内容
3)终端输入source ~/.profile
重新加载 profile 文件,加载环境变量到内存
export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$HOME/go/bin
$HOME是当前用户主目录。
export GOPATH=$HOME/go 表示我们把go的目录GOPATH设置为当前用户的文件夹。
PATH 表示环境变量。在Linux环境中,是区分大小写的。
其次,在Linux中,引用变量,要在前面加上一个$符号。
综上所述,$PATH 以及 $HOME均表示对变量的引用。
其中,PATH=$PATH:/usr/local/go/bin 表示将/usr/local/go/bin这个路径,加入到环境变量中!
由于我们把go的目录GOPATH设置为当前用户的文件夹下,所以记得创建go文件夹
cd ~
mkdir go
使用Git命令下载源码,首先需要建立对应的目录,然后进入该目录,Git下载源码:
mkdir -p ~/go/src/github.com/hyperledger
cd ~/go/src/github.com/hyperledger
git clone https://github.com/hyperledger/fabric.git
1) 从docker hub下载镜像:
cd fabric/examples/e2e_cli/
chmod +x download-dockerimages.sh
sudo ./download-dockerimages.sh
【注意】
此处用sudo获取管理员权限,运行docker命令
否则报错:
”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.26/images/json: dial unix /var/run/docker.sock: connect: permission denied“
2) 下载完毕后,我们运行以下命令检查下载列表
sudo docker images
1) 终端切换到fabric路径中,并选择1.0.0的版本
cd ~/go/src/github.com/hyperledger/fabric
git checkout v1.0.0
2) 将当前路径的scripts文件夹中的bootstrap-1.0.0.sh拷贝到fabric目录下(此操作会生成bin目录)
chmod +x bootstrap-1.0.0.sh
3) 切换路径到e2e_cli
cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli
4) 下载docker images
sudo ./download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0
5) 启动
sudo ./network_setup.sh up
最后显示如下,完美~
【注意】
Q1:ERROR: Couldn’t connect to Docker daemon at http+docker://localunixsocket - is it running?
A1:前面添加sudo进行启动
Q2: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 -
!!! Query result on peer0 is INVALID !!!
A2:按照7中的流程走没问题,之前没有按照流程走就出现了这个问题orz
6) 测试Fabric网络
a)打开新的终端,输入docker exec -it cli bash
进入CLI,将显示:
b)查询账户余额
通过输入peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
可查询a账户的余额(官方例子中,channel名为mychannel,链码名为mycc),将显示:
c)转账操作
将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"]}'
,将显示:
d)查看a账户余额,将显示:
e)查看b账户余额,显示:
7) 完成测试并退出
退出CLI输入exit
关闭Fabric网络,输入sudo ./network_setup.sh down