zoukankan      html  css  js  c++  java
  • 《区块链:从入门到放弃》之obc安装步骤

    obc安装步骤

    朋友们可能会好奇,厨师不研究菜谱怎么改研究兵法了,哈哈,我原本是app出身,最近被安排去预研区块链和比特币技术,2个月下来,颇有斩获。期间得到IBM的CC同学指导我一步一步安装obc的环境。学习期间,把安装步骤整理下来,以飨后人。

    这门技术我的感受是,噱头更多一些,它里面有很深刻的思想在里面,但还很难应用到现实中,尤其是金融行业之外的其他垂直领域。所以接下来有机会,我要写本《区块链:从入门到放弃》的书。

    咸盐少叙,赶快介绍OBC的安装步骤:

     

    1.下载并安装Vagrant和VitualBox。

    http://www.vagrantup.com/downloads

    https://www.virtualbox.org/wiki/Downloads

    注:接下来的步骤如果安装官方文档,必死无疑,我曾经卡了耽误很久,因为很多网站国内不能访问。为此,我们采取折中的办法,把被屏蔽的网址上的下载文件,通过其他渠道提前下载好,然后手动安装。

    2.下载ubunta镜像。

    https://atlas.hashicorp.com/obc/boxes/dev-env/versions/0.2.1/providers/virtualbox.box

    改个名字吧,比如重命名为openchain.iso,叫什么不重要,只是为了好认。

    3.把镜像添加到vagrant中。

    vagrant box add --name obc/dev-env /Users/baojianqiang/Downloads/blockchain.iso

    其中,最后一个参数是ubunta镜像在本机的路径,上面这个路径是我本机的存放路径。

    关于vagrant本地添加box镜像的更多介绍,请参见:

    http://www.imooc.com/qadetail/62953

    4.启动镜像

    首先,进入到obc-dev-env所在的目录,执行vagrant up命令,Vagrant会执行目录下的Vagrantfile文件

    注:我们事先要修改一下这个Vagrantfile文件:

    1)      删除config.vm.box_version这行,否则手动安装就不能进行。

    2)      删除./setup.sh这行。我们要手动执行setup.sh脚本。

    接下来,运行vagrant ssh命令启动镜像。

             这时看光标所在的那行,你会发现,我们进入到vagrant的ubunta系统了,接下来执行的命令都将在ubunta上运行。

             同时你可以启动VisualBox,有3个共享目录,这是在Vagrantfile文件中设置过的结果,主机和虚机的目录映射关系如下:

             此外,输入node –v,会检查到虚机上安装的是v0.12.7版本。输入git version,会检查到虚机上安装的是1.9.1版本。

    5.手动逐步执行setup.sh脚本

             Vagrantfile文件会执行脚本文件setup.sh。这个脚本主要干了几件事情:

    1)      Ubunta系统更新

    2)      下载并安装Docker

    3)      安装python相关(包括pip、behave和nose)

    4)      更新flask、python-dateutil、pytz、pyyaml、conchdb、flask-cors和requests

    5)      下载并安装GO

    6)      下载并安装RocksDB,并设置CGO_CFLAGS和CGO_LDFLAGS

    7)      下载并安装ProtoBuf

    8)      配置RocksDB(为此需要创建目录、开权限然后更新limits.conf)

    我们要修改这个脚本文件,因为里面有些东西下载不了。

    删除docker run --rm busybox echo All good这行,这是为了测试Docker安装是否成功的,只是一个测试,但是这次测试要下载busybox,而这个在国内是不能访问的,所以干脆删除不执行了。

    先做一些准备工作

             1)获取ubunta虚机的root权限,输入su命令,要去我们输入密码。ubunta虚机的默认账户和密码都是vagrant。

             接下来进入到虚机的vagrant目录,对应本机的obc-dev-env目录:

             cd /vagrant

             2)在Ubunta系统,想要执行一个sh脚本,需要输入以下命令:

    chmod +x setup.sh

             ./setup.sh

    接下来我把setup.sh脚本文件拆分为若干小的文件,每个文件只干一件事情:

             1)setup1.sh

    下载并安装Docker

             2)setup2.sh

             下载并安装python、pip、behave和nose

             更新一些插件,如flask。

             3)setup3.sh

             安装go语音环境。

             这会间接执行installGolang.sh脚本。脚本中有两句话可能会不能执行,因为golang.org在国内不能正常访问:

             # Install Golint and goimports

             go get github.com/golang/lint/golint

    go get golang.org/x/tools/cmd/goimports

             go get语句的作用是先下载,然后在下载的目录中执行go install,后面这个命令会生成结果文件(可执行文件或.a包,然后将其转移到$GOPATH/bin目录下)。

             解决方案是,我们手动将其下载,然后复制到共享目录,接下来手动执行go install即可 

     

    这时候在命令行输入go还提示我们找不到该命令。进入到etc/profile.d目录,对gopath.sh文件执行source命令:

             cd /etc/profile.d

             source gopath.sh

             4)setup4.sh

             下载并安装RocksDB和Protobuf

    进入到etc/profile.d目录,对gopath.sh文件执行source命令:

             cd /etc/profile.d

             source rocksLDLibrary.sh

             注:每打开一个ssh窗体,都要执行第3步和第4步这两个source命令。

  • 相关阅读:
    101. Symmetric Tree(js)
    100. Same Tree(js)
    99. Recover Binary Search Tree(js)
    98. Validate Binary Search Tree(js)
    97. Interleaving String(js)
    96. Unique Binary Search Trees(js)
    95. Unique Binary Search Trees II(js)
    94. Binary Tree Inorder Traversal(js)
    93. Restore IP Addresses(js)
    92. Reverse Linked List II(js)
  • 原文地址:https://www.cnblogs.com/Jax/p/5383341.html
Copyright © 2011-2022 走看看