关于lilnux应用于区块链开发的环境部署(docker-chaincode-nodejs)

关于lilnux应用于区块链开发的环境部署(docker-chaincode-nodejs)

环境

ubuntu16.04 LTS  fabric1.0.0

说明

【】中的是要求的版本

步骤

  1. 更新apt源

    笔者使用阿里的源,不同源的区别在于仓库的包的版本不同,参考

    http://www.jb51.net/article/110521.htm

  2. 中文输入法

    注意:

    在16.04的版本中,目前ibus有各种无法解决的问题,建议使用fcitx

    操作:

    1. 打开系统设置->语言支持,下载语言包
    2. apply
    3. 应用汉语
    4. apply
    5. 在选择输入法的多选框中选择使用fcitx
    6. apply
    7. 桌面左上角搜索应用找到并开启fcitx,等待…
    8. 配置输入法,点击+号,去掉弹窗的勾,找到pinyin输入法,点OK
    9. 关闭窗口并重启电脑

    问题:

    可能会出现启动fcitx后无法自动加载输入法,需要每次都手动加的问题,笔者无法解决,经过多次尝试通过上述多次apply的步骤可能可以成功

    参考:

    http://jingyan.baidu.com/article/86f4a73e8f534637d752695e.html

  3. 因为自带了,所以python –version命令检查python 2.7.12【Python: 2.7.x】

  4. 下载安装git 2.14.0【git: 2.9.x or higher】

    1. 安装依赖包

      sudo apt install zlib1g-dev
    2. 下载源代码包

      https://www.kernel.org/pub/software/scm/git/

    3. 进入git解压包的根目录,配置安装目录,一般都在/usr/local目录,笔者是/usr/local/git

      ./configure --prefix=/usr/local/git
    4. 编译

      make
    5. 安装

      sudo make install
    6. 设置环境变量,重启生效,笔者的环境变量如下,路径是git的安装目录

      export Git=/usr/local/git
      export PATH=$PATH:$Git/bin
    7. 检查

      git --version
  5. 下载安装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】

    1. 官网下载

    https://nodejs.org/en/download/

  6. 把node包根目录/bin/node和node包根目录/lib/node_modules/npm/bin/npm-cli.js链接到/usr/bin

    ln node包根目录/bin/node /usr/bin/node
    ln -s /node包根目录/lib/node_modules/npm/bin/npm-cli.js /usr/bin/npm

    注:这里ln -s 表示软链接,不带这个的是硬链接(含义百度),软连接第一个参数必须使用绝对路径
  7. 检查

    node --version
    npm --version
  • 下载安装go 1.8,环境变量配置好后重启

    参考:

    http://www.cnblogs.com/auh2010006/p/6343231.html

  • apt安装curl

    sudo apt install curl
  • 安装docker 17.06.1-ce【Docker Engine: Version 17.03 or higher】

    1. 下载脚本安装docker

      curl -sSL https://get.docker.com/ | sh
    2. 添加用户到docker用户组以方便非root用户操作(重启生效,可以在最后重启)

      usermod -aG docker <username>
    3. 修改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"
    4. 重启docker服务

      service docker restart
    5. 查看docker版本以确定安装完成

      docker --version
  • apt安装docker-compose 1.8.0【Docker-Compose: Version 1.8 or higher】(如果是其他源可能版本不够那就需要去直接下载包安装了)

    sudo apt install docker-compose
  • 配置docker加速器daocloud

    参考:

    http://guide.daocloud.io/dcs/daocloud-services-9152632.html

    操作:

    1. 注册登陆

    https://www.daocloud.io

  • 配置
    https://www.daocloud.io/mirror#accelerator-doc
  • 重启docker服务
    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

    以下开发ide为笔者觉得不错的,根据个人爱好下载

  • 下载安装vscode(笔者个人觉得nodejs用vscode来写比其他的ide都爽)

    • vscode官网

    https://code.visualstudio.com/Download

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值