/* 以前只是听说过BlockChain,没怎么了解过,最近导师在搞Blockchain,让我配一下Open BlockChain的环境,于是就硬着头皮配了一下,还挺顺利的。 由于没接触过BlockChain,配置有什么问题还请各位大神指正*/

环境:Ubuntu14.04 x64

一、准备工作:

1.Git Client

Ubuntu自带git client 所以省略此步骤

2.Go环境配置

参考:http://xianglong.me/article/ubuntu-install-golang-env/

(1)       安装依赖:

sudo  apt-get  install  bison  ed  gawk  gcc  libc6-dev  make

(2)       下载go1.6.2.linux-amd64.tar.gz

https://golang.org/dl/,下载go1.6.2.linux-amd64.tar.gz, 由于国内经常被墙,备份了一份在http://pan.baidu.com/s/1gfDEG0r

(3)       安装go语言包

进入go1.6.2.linux-amd64.tar.gz所在目录,解压go1.6.2到$Home/Code (或其他目录),运行:

tar -zxvf go1.6.2.linux-amd64.tar.gz -C ~/Code

(4)       配置环境变量

编辑~/.bashrc,在文件末尾添加:

export GOROOT=$HOME/Code/go
export GOBIN=$GOROOT/bin
export PATH=$GOROOT/bin:$PATH
export GOPATH=$HOME/Code/workspace/Go

退出,运行source  ~/.bashrc 使环境变量生效

(5)       测试Go开发环境

在终端输入go,则会出现帮助信息

建立测试文件hello.go,内容如下

package main
import "fmt"
func main() {
fmt.Printf("Hello World!\n")
}

运行:go run hello.go

如果go环境配置正确,则打印Hello World!

3.VirtualBox配置

参考:http://www.mamicode.com/info-detail-193664.html

(1)       下载virtualbox-5.0_5.0.20-106931-Ubuntu-trusty_amd64.deb

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

virtualbox-5.0_5.0.20-106931-Ubuntu-trusty_amd64.deb

(2)       安装virtualbox-5.0_5.0.20-106931-Ubuntu-trusty_amd64.deb

在终端运行:

sudo dpkg -i virtualbox-5.0_5.0.20-106931-Ubuntu-trusty_amd64.deb

如果提示缺少依赖包,那么执行sudo apt-get -f install 修复依赖关系,然后再次执行sudo dpkg -i virtualbox-5.0_5.0.20-106931-Ubuntu-trusty_amd64.deb;

如果提示Failed, trying without DKMS,则需要sudo apt-get install dkms;

(3)       测试virtualbox

virtualbox –help,如果显示帮助文档,则表示安装成功

4.vagrant配置

(1)       下载vagrant_1.8.1_x86_64.deb

https://www.vagrantup.com/downloads.html,选择的是DEBIAN 64-bit版本

(2)       安装vagrant_1.8.1_x86_64.deb

在终端运行sudo dpkg -i vagrant_1.8.1_x86_64.deb,安装vagrant

(3)       测试

在执行vagrant之前首先配置box:

下载需要使用的 box :

官方提供的范例:http://files.vagrantup.com/precise32.box

还可以在 http://www.vagrantbox.es/ 这里下载更多不同系统甚至是已经配置好环境直接可以用的box,虽然可以直接在Vagrant直接使用网址,由Vagrant自动下载安装,但是考虑到网络情况,还是建议自行先下载好。

$ vagrant box add {title} {url}/{box_path}
$ vagrant init {title}
$ vagrant up

至此vagrant安装完毕。其他vagrant命令:

$ vagrant init    # 初始化
$ vagrant up    # 启动虚拟机
$ vagrant halt  # 关闭虚拟机
$ vagrant reload # 重启虚拟机
$ vagrant ssh   # SSH 至虚拟机
$ vagrant status # 查看虚拟机运行状态
$ vagrant destroy # 销毁当前虚拟机

二、配置openblockchain开发环境

参考:https://github.com/openblockchain/obc-docs/blob/master/dev-setup/devenv.md

https://github.com/openblockchain/obc-peer/blob/master/README.md

1.clone Open Blockchain工程和Open Blockchain Development Environment工程

(1)       clone the Open Blockchain Peer project

执行下面命令克隆Open Blockchain Peer project

cd $GOPATH/src
mkdir -p github.com/openblockchain
cd github.com/openblockchain
git clone https://github.com/<username>/obc-peer.git

(2)       clone the Open Blockchain Peer project

选择别的目录(不在GOPATH目录树下),创建workspace文件件(或其他文件名)

执行命令:

cd workspace
git clone https://github.com/openblockchain/obc-dev-env.git

2. 初始OBC开发环境

(1)       初始化

进入workspace/ obc-dev-env/

执行:vagrant up进行初始化

过程中自动下载virtualbox.box

(2)       ssh进入虚拟机

在workspace/ obc-dev-env/下执行:vagrant ssh则会进入OBC的虚拟机

至此,OBC虚拟机配置完毕

3. build, run and test the Open Blockchain Peer project

(1)       Building the project

进入$GOPTH/src/github.com/openblockchain/obc-peer

(如果不知道GOPTH路径,运行echo $GOPATH进行查看)

运行go build进行构建项目

(此过程可能需要root权限,可以运行sudo go build进行构建,初始密码应该为空;如果想进入root用户,可以执行sudo passwd root创建root用户密码,但root用户下没有配置Go环境变量,可在/root/.bashrc文件中进行配置)

(2)       Run

执行

cd $GOPATH/src/github.com/openblockchain/obc-peer

./obc-peer

则会打印文档信息

至此,Openchain – Peer运行成功

(3)       Test

没仔细配,待完善

注意的是进行Behave测试时,测试需要安装python的behave模块,可参考

http://pythonhosted.org/behave/

https://pypi.python.org/pypi/behave

http://pythonhosted.org/behave/install.html (安装easy_install工具:sudo apt-get install python-setuptools)

By Xu Yuzhuang

Email:dazh_xu@163.com

Date:2016-05-07

Ubuntu配置Open BlockChain的更多相关文章

  1. ubuntu配置NFS

    ubuntu配置NFS: sudo apt-get install nfs-kernel-server 配置/etc/exports 例如:我们要将根目录下的 /opt/FriendlyARM/min ...

  2. ubuntu配置tftp服务

    ubuntu配置TFTP服务: TFTP是用来下载远程文件的最简单的网络协议,基于UDP协议.xinetd是新一代的网络守护进程服务程序,经常用于管理多种轻量型internet服务. sudo apt ...

  3. 关于ubuntu配置静态IP 无法正常上网的解决方案

    在ubuntu中配置静态IP后无法正常上网. 解决: 1.在终端执行 vim /etc/network/interfaces 在文件中加入如下内容,网关要写上,我开始一直无法上网就是因为没有配置网关 ...

  4. 转: ubuntu配置NFS,挂载开发板

    ====================================== 命令: 1. $sudo apt-get install nfs-kernel-server           (安装N ...

  5. Ubuntu配置和修改IP地址

    Ubuntu配置和修改IP地址 1.修改配置文件/etc/network/interfacesroot@ubuntu:~# sudo gedit /etc/network/interfaces 添加以 ...

  6. ubuntu 配置JDK环境变量

    ubuntu 配置JDK环境变量 (2011-11-25 16:45:59) 转载▼ 标签: ubuntu jdk 环境变量 杂谈 分类: Linux_Ubuntu_CentOs 过程如下: 1. 先 ...

  7. Ubuntu配置OpenStack 二:配置时间同步NTP和安装数据库Maridb以及问题总结

    继上一节Ubuntu配置OpenStack 一:配置主机环境,下面继续为安装时间同步,以及配置openstack的安装包源和安装数据库Maridb.(全文截图都是由自己徒手搭建完成并且截图) 一.安装 ...

  8. Ubuntu配置tomcat9

    buntu 安装jdk:[链接] Ubuntu安装eclipse:[链接] Ubuntu下安装MySQL与mysql workbench:[链接] Ubuntu配置tomcat9:[链接] Ubunt ...

  9. ubuntu配置小飞机

    现在有两种方式在ubuntu配置本地shadowsocks(前提已经在服务器上搭建好了ss) windows,ios和安卓配置都是gui,没什么好说的.然后前期工作什么买vps啊,比较无脑,不想记录这 ...

随机推荐

  1. 初试 uTenux

    申请的的开发套件到目前还没到手,看到网友们都开始动手干了,我也是按捺不住了,所以就先在悠龙公司的主页下载了uTenux_V1.5.00r160.zip,打算看看,先了解一下. 下面是文件目录表: └─ ...

  2. MYSQL主键自动增加的配置及auto_increment注意事项

    文章一 原文地址: http://ej38.com/showinfo/mysql-202971.html 文章二:   点击转入第二篇文章 在数据库应用,我们经常要用到唯一编号.在MySQL中可通过字 ...

  3. 用ubuntu下载电影:磁力链接,torrent,迅雷链接

    用ubuntu下载电影:磁力链接,torrent,迅雷链接 操作系统:Ubuntu 14.04 64位 需要软件:Ktorent, Amule 安装软件: sudo apt-get install k ...

  4. Socket&GCDAsyncSocket(异步Socket)

    Socket ********************************************* 简单理解Socket 就是网络连接,可以实现两个点之间的数据通讯. •Socket允许使用长连 ...

  5. JavaScript中的加法运算

    <head runat="server"> <title>JavaScript实现加法计算器</title> <script type=& ...

  6. MVC 3 数据验证 Model Validation 详解

    在MVC 3中 数据验证,已经应用的非常普遍,我们在web form时代需要在View端通过js来验证每个需要验证的控件值,并且这种验证的可用性很低.但是来到了MVC 新时代,我们可以通过MVC提供的 ...

  7. JSP学习——原理

    JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术.   JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比 ...

  8. read 计时命令

    使用read命令存在潜在危险,脚本很可能会停下来一直等待脚本用户输入数据,如果无论是否输入数据脚本的必须继续执行,那么可以使用-t选项指定一个计时器.-t选项指定read命令等待输入的秒数,当计数器计 ...

  9. Scrum Meeting---Two(2015-10-26)

    这次会议主要有两个方面 一.讨论项目 经过我们团队的激烈讨论,我们团队决定专注于做二手交易这一块.即将之前决定要做的学习经验交流以及校园交由这两块删除. 二.后两天的任务规划 以下便是我们的任务规划: ...

  10. Dijkstra(迪杰斯特拉)源最短路径 小白说明

    源最短路径 小白说明 Dijkstra算法,书上其实说的很简洁,仔细看,仔细思考是会理解的.但要先理解几条引论和推理. 而自己思考的思路在不需要任何推理只从贪心思路出发,和Dijkstra有所不同,但 ...