/* 以前只是听说过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. HDU 3213 Box Relations(拓扑排序构造)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3231 题意:有n个长方体,四种限制条件.(1)I x y x和y有相交:(2)X/Y/Z  x y x ...

  2. Know How To Use Check Box Mapping Of Other Values Property In Oracle Forms

    Check Box Mapping of Other Values specifies how any fetched or assigned value that is not one of the ...

  3. Spark Streaming官方文档学习--下

    Accumulators and Broadcast Variables 这些不能从checkpoint重新恢复 如果想启动检查点的时候使用这两个变量,就需要创建这写变量的懒惰的singleton实例 ...

  4. LightOJ::1077 -----奇妙的最大公约数

    题目:http://www.lightoj.com/volume_showproblem.php?problem=1077 题意:在平面上, 给出两个点的坐标 例如:(x, y) 其中x, y 都是整 ...

  5. html中出现的script失效

    如果在Controller中出现script代码类似 $hello_str='Hello God<script>alert(3);</script>'; 那么我不希望在传给vi ...

  6. 装了maven插件的eclipse中M2_REPO无法编辑、删除(转)

    今天用了新版本的eclipse,用maven在命令行生成了一个普通项目.导入eclipse之后发现本地仓库的路径不正确. 显示的为 user.path/.m2/repository 但是我的仓库早已经 ...

  7. iOS - ASIHTTPRequest 网络请求

    前言 使用 iOS SDK 中的 HTTP 网络请求 API,相当的复杂,调用很繁琐,ASIHTTPRequest 就是一个对 CFNetwork API 进行了封装,并且使用起来非常简单的一套 AP ...

  8. HDU4801·二阶魔方

    题意:给定二阶魔方初始状态,问N(1 <= N <= 7)步旋转操作以内最多能使几个面相同. dfs搜索+剪枝. 魔方的每个旋转操作即对应于一个置换操作.又因为相对运动,上层左旋一次和下层 ...

  9. poj2079Triangle(N点中三点组成三角形面积最大)

    链接 根据旋转卡壳的思想,找到当前边的最远点. 确定i,j找到最远的k使 cross(i,j,k)最大,那么i,j+1时只需从k+1开始找即可 . #include <iostream> ...

  10. Android App组件之ListFragment -- 说明和示例

    Android App组件之ListFragment -- 说明和示例 1 ListFragement介绍 ListFragment继承于Fragment.因此它具有Fragment的特性,能够作为a ...