美文网首页
1. 准备阶段

1. 准备阶段

作者: eftales | 来源:发表于2020-02-14 20:22 被阅读0次

说明

对应官方教程的准备阶段

为准备阶段编写了自动化脚本并进行了测试。

该脚本会自动下载安装 git,curl,golang,python,node.js docker,docker-compose。

需要注意的是,不同版本的代码对go的要求不一样,2.0版本要求go版本为1.13及以上,1.4要求v1.12,以下安装的是最新版本的go,可以满足所有版本的要求。

自动构建脚本

  • tips
    1. 需要使用虚拟(Virtual)专用(Private)网络(Network)
    2. 在执行过程中会重启多次,每次重启之后接着执行即可,直到输出 恭喜您成功搭建了 fabric 环境! 再停下,需要重启 2 次
    3. 最好在纯净的 ubuntu 16.04 中运行以下脚本,推荐使用英文版的ubuntu,硬盘推荐40GB以上,内存6GB以上
    4. 输入命令 sudo envprepare.sh 执行脚本,执行过程中需要按几次回车
    5. 如果还是不清楚可以看B站视频
    6. 本小节适合任何fabric版本
# filename envprepare.sh
set -e
if [ ! -f "/home/eftales/step1.txt" ] 
then
    # 更换 apt 源为清华源
    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

    echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse" > sources.list
    echo "deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse" >> sources.list
    echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse" >> sources.list
    echo "deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse" >> sources.list
    echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse" >> sources.list
    echo "deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse" >> sources.list
    echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse" >> sources.list
    echo "deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse" >> sources.list

    sudo mv sources.list /etc/apt/sources.list

    sudo apt-get update

    # 安装 curl
    sudo apt install curl git -y

    # 安装 golang,并配置 gopath 和 goroot
    echo -e "\n" | sudo add-apt-repository ppa:longsleep/golang-backports
    sudo apt-get update
    sudo apt-get install golang-go -y

    sudo mkdir /home/eftales/gopath
    sudo mkdir /home/eftales/gopath/bin
    sudo mkdir /home/eftales/gopath/pkg
    sudo mkdir -p /home/eftales/gopath/src/github.com/hyperledger

    sudo cp /etc/profile  profile
    sudo chmod 777 profile
    echo "# GOPATH" >> profile 
    echo "export GOPATH=/home/eftales/gopath" >> profile 
    echo "export GOROOT=/usr/lib/go" >> profile 
    echo "export GOBIN=\$GOPATH/bin" >> profile 
    echo "export PATH=\$PATH:\$GOBIN " >> profile 
    sudo mv profile /etc/profile



    # 安装 docker 和 docker-compose
    sudo apt-get remove docker docker-engine docker.io containerd runc
    sudo apt-get update
    sudo apt-get install  -y \
        apt-transport-https \
        ca-certificates \
        curl \
        gnupg-agent \
        software-properties-common
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    sudo add-apt-repository \
    "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
    $(lsb_release -cs) \
    stable"
    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io -y

    sudo curl -L "https://github.com/docker/compose/releases/download/1.25.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sleep 1
    sudo chmod +x /usr/local/bin/docker-compose
    
    sudo systemctl start docker
    sudo systemctl enable docker
    sudo groupadd docker #添加docker用户组
    sudo usermod -a -G docker $USER

    sudo mkdir -p /etc/docker
    echo "{" > daemon.json
    echo "\"registry-mirrors\": [\"https://ofyci9nf.mirror.aliyuncs.com\"]" >> daemon.json
    echo "}" >> daemon.json
    echo "" >> daemon.json

    sudo mv daemon.json  /etc/docker/daemon.json

    sudo systemctl daemon-reload
    sudo systemctl restart docker
    
    sleep 5

    touch step2.txt
    touch step1.txt
    
    echo "第一步已经完成,请重启并重新执行本脚本以完成第二步"

    # sudo gpasswd -a $USER docker #将当前用户添加至docker用户组
    # sudo newgrp docker #更新docker用户组


elif [ -f "/home/eftales/step2.txt" ] 
then
    # 安装 node.js
    sudo apt-get install -y nodejs nodejs-legacy npm 

    npm config set registry https://registry.npm.taobao.org
    npm config list 
    sudo npm install n -g 
    sudo n 8.9.4
    sudo npm install npm@5.6.0 -g
    
    node -v
    npm -v  


    rm step2.txt
    touch step3.txt
    echo "开发环境安装成功!"
    echo "重新启动之后还需要执行本文件下载 fabric-sample "


elif [ -f "/home/eftales/step3.txt" ] 
then
    # 下载 fabric-sample 
    sudo mkdir -p $GOPATH/src/github.com/hyperledger
    cd $GOPATH/src/github.com/hyperledger
    sudo rm -rf  $GOPATH/src/github.com/hyperledger/fabric-samples # 如果有的话先删掉
    sudo curl -sS https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh -o bootsrap.sh
    sudo chmod 777  bootsrap.sh
    sudo ./bootsrap.sh 1.4.4 1.4.4 0.4.15 # 这个命令还会下载上面删掉的东西
    sudo chmod 777 -R fabric-samples # 设置文件权限,如果没有这一步之后执行会报错
    sudo cp /etc/profile  profile
    sudo chmod 777 profile
    echo "# fabric-samples-bin" >> profile
    echo "export PATH=\$PATH:\$GOPATH/src/github.com/hyperledger/fabric-samples/bin" >> profile 

    sudo mv profile  /etc/profile



    rm -f step*.txt
    echo "所有步骤都已经完成!"
    
else
    rm -f step*.txt
fi

如果有问题

  1. docker-compose 无法运行
    重新下载安装docker-compose
  2. cryptogen generate --config=./crypto-config.yaml 报错 panic: runtime error: invalid memory address or nil pointer dereference
    执行 cd $GOPATH/src/github.com/hyperledger && sudo chmod 777 -R fabric-samples
  3. 如果有问题基本都是网络问题,重新下载一遍就行。

相关文章

  • 1. 准备阶段

    说明 对应官方教程的准备阶段。 为准备阶段编写了自动化脚本并进行了测试。 该脚本会自动下载安装 git,curl,...

  • 面试技巧

    准备阶段-引入阶段-正题阶段-变换阶段-结束阶段 一、准备阶段 1.主动向应聘人打招呼,告知你的姓名和职位 2.解...

  • 1.需求分析到需求评审的历练学习笔记

    idea从产生到上线分两个阶段:需求的准备阶段、需求的实施阶段 需求准备阶段: 1.先问为什么: 目的:判断需求...

  • 理财规划

    理财规划最重要的在于规划: 一般分为四个步骤:1.准备阶段2.策划阶段 3.实施阶段4.总结阶段 首先,准备阶段:...

  • 活动策划学习复盘

    【❤️我的三点收获】 1.了解了完整的活动策划流程分为准备阶段、策划阶段、执行阶段这3个阶段。(以前对于活动准备阶...

  • 1.准备

    gcc使用 1.gcc编译流程:1)预处理:gcc -E2)编译:gcc -S3)汇编:gcc -c4)链接:没参...

  • 2019-07-15《如何阅读一本书》阅读的第四个层次:主题阅读

    主题阅读包括两个阶段:1.准备阶段 2.主题阅读本身 一、观察研究范围:主题阅读的准备阶段 (1)针对主题,寻找相...

  • 0基础如何学UI设计,才能月薪过万

    0基础学员如何成为一名月薪过万的UI设计师 一共有三个步骤,分别是准备阶段,了解阶段和学习阶段。 1. 准备阶段 ...

  • 《如何阅读一本书》阅读的第一个层次:基础阅读

    第一个阶段被称为“阅读准备阶段”包括:1.身体方面的准备,包括良好的视力与听力。智力方面的准备是要有起码的认知...

  • 期末准备阶段……

    明天结束标志着只有一个星期学生就要离校。然而,事情好像还没有理清楚。在我的头脑里,乱成一团。心里着急却又不知道从何...

网友评论

      本文标题:1. 准备阶段

      本文链接:https://www.haomeiwen.com/subject/epwdfhtx.html