《区块链:从入门到放弃》之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命令。
《区块链:从入门到放弃》之obc安装步骤的更多相关文章
- 区块链会2020再次爆发,先学点DAPP压压惊,跟我一起学《区块链DApp入门实战》
区块链DApp正在经历市场洗礼,常言道,对抗动荡最稳妥的是稳扎稳打的技术学习,不能临时抱佛脚. 马化腾说:互联网会像水和电一样融入我们的生活.而区块链呢?它是价值互联网的基石,是未来必然的趋势,也会像 ...
- 区块链侧链应用开发平台Asch节点安装及区块生产教程
1 系统要求 必须是linux系统 必须有公网ip 建议使用ubuntu 14.04 64位 建议内存1G以上 建议带宽2Mb以上 2 安装 2.1 下载 wget https://www.asch. ...
- hadoop入门学习教程--DKHadoop完整安装步骤
使用hadoop版本是DKH标准三节点发行版,DKHadoop版本的易用性比较好,环境部署要简单的多,参考此篇安装前请先下载DKHadoop版本,网盘链接:https://pan.baidu.com/ ...
- saltstack入门至放弃之salt安装部署
学习了一段时间的saltstack,是时候记录下了.友提:学习环境是两台centos_7.2_x64机器 系统初始化: 两台机器执行以下脚本即可(友提:两台服务器的主机名配置在/etc/hosts中, ...
- 区块链开发(四)Nodejs下载&安装
以太坊框架truffle的安装需要依赖nodejs中的npm命令,本篇博客我们就简单介绍一下node的安装过程.操作系统基于ubuntu 16.04版本. 下载地址 nodejs官网:http://w ...
- Redis入门到放弃系列-redis安装
Redis是什么? Redis is an open source (BSD licensed), in-memory data structure store, used as a database ...
- 孤荷凌寒自学python第103天认识区块链017
[主要内容] 今天继续分析从github上获取的开源代码怎么实现简单区块链的入门知识,共用时间25分钟. (此外整理作笔记花费了约34分钟) 详细学习过程见文末学习过程屏幕录像. 今天所作的工作是进一 ...
- 用Java为Hyperledger Fabric(超级账本)编写区块链智能合约链代码
编写第一个 Java 链代码程序 在上一节中,您已经熟悉了如何构建.运行.部署和调用链代码,但尚未编写任何 Java 代码. 在本节中,将会使用 Eclipse IDE.一个用于 Eclipse 的 ...
- 区块链技术(一):Truffle开发入门
以太坊是区块链开发领域最好的编程平台,而truffle是以太坊(Ethereum)最受欢迎的一个开发框架,这是我们第一篇区块链技术文章介绍truffle的原因,实战是最重要的事情,这篇文章不讲原理,只 ...
随机推荐
- Unity协程(Coroutine)原理深入剖析
Unity协程(Coroutine)原理深入剖析 By D.S.Qiu 尊重他人的劳动,支持原创,转载请注明出处:http.dsqiu.iteye.com 其实协程并没有那么复杂,网上很多地方都说是多 ...
- CUnit的用法
转自:http://blog.csdn.net/scucj/article/details/4385630/ CUnit下载地址: http://sourceforge.net/projects/cu ...
- Selenium2+python自动化19-单选框和复选框(radiobox、checkbox)
本篇主要介绍单选框和复选框的操作 一.认识单选框和复选框 1.先认清楚单选框和复选框长什么样 2.各位小伙伴看清楚哦,上面的单选框是圆的:下图复选框是方的,这个是业界的标准,要是开发小伙伴把图标弄错了 ...
- HDOJ 4508 湫湫系列故事——减肥记I (完全背包带优化)
完全背包的模版题.. 加了一个小优化 n^2的写法 O(V+N)在本题中复杂度较高 不采纳 完全背包问题有一个很简单有效的优化,是这样的:若两件物品i.j满足c[i]<=c[j]且w[i]&g ...
- swift webView 提出这样的要求你能忍吗?
提出的要求是:webView字体显示大小合适,里面会有大的图片,大的表格,不能按比例缩放,可以左右滑动查看. 首先,如果要满足上面的要求需要将webView放入scrollView中显示 scroll ...
- 转贴 IT外企那点儿事完整版
转贴 IT外企那点儿事完整版 第一章:外企也就那么回儿事(http://www.cnblogs.com/forfuture1978/archive/2010/04/30/1725341.html) 1 ...
- linux中的开机和关机命令
与关机.重新启动相关的命令 * 将数据同步写入硬盘中的命令 sync * 惯用的关机命令 shutdown * 重新启动.关机 reboot halt poweroff sync 强制将内存中的 ...
- css3浏览器前缀 -mos/-webkit/-o/-ms
1.css3浏览器前缀的意思 -moz为firefox的前缀: -webkit为safari和chrome的前缀: -o为opera浏览器的前缀: -ms为ie浏览器的前缀: 2.常见的需要使用浏览器 ...
- ytxgnopyvw
Rt.不是我的博客被盗了 而是我要测试一下某网站是自动抓取我的博客还是手动抓取. 如果是手动抓取,那么该网站的管理员一定会看见这篇博文, 希望管理员能够自己反省. ytxgn只是为了百度搜索方便罢了.
- Web 通信 之 长连接、长轮询(long polling)
基于HTTP的长连接,是一种通过长轮询方式实现"服务器推"的技术,它弥补了HTTP简单的请求应答模式的不足,极大地增强了程序的实时性和交互性. 一.什么是长连接.长轮询? 用通俗易 ...