基于Docker在Ubuntu+Jupyter上运行“以太坊”

以太坊(https://ethereum.org)是一个开放的开源区块链(技术原理与发展趋势区块链相关术语)软件,能够实现无中心体系架构下的应用开发。html

下面咱们介绍在Docker中部署以太坊的方法(参见以太坊安装方法),而后使用Jupyter Notebook进行基于浏览器的访问。一旦环境设置完毕,就能够在不少环境下部署Docker容器,使用很是方便。Jupyter Notebook是基于浏览器的编程“笔记本”,很是适合进行数据探索类的研究。node

1.安装支持环境

1.1 安装Docker容器支持环境

我用的Mac OS X,如今的Docker已经原生支持了,不用像之前要安装VirtualBox,再使用Vagrant了。
到这里http://www.docker.io下载相应的版本,而后运行安装程序,就能够了。python

若是使用Ubuntu,建议使用 http://get.docker.io下载的脚本进行安装,官方的安装方法貌似与Ubuntu内置的lxd有冲突,常常出问题。方法以下:linux

wget http://get.docker.io -O docker-setup.sh
sudo chmod +x docker-setup.sh
./docker-setup.sh

1.2 安装Jupyter Notebook容器

采用Jupyter的官方Docker技术栈git

docker run -it --name GISpark 
    -p 9000:8888 
    --user root -e GRANT_SUDO=yes 
    -v /本地目录/GISpark:/home/jovyan/work/GISpark 
    jupyter/all-spark-notebook

1.3 安装和更新容器内软件

打开浏览器,输入:http://localhost:9000。github

在里面打开一个终端窗口,运行升级程序,安装须要的软件:golang

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3-dev

2.安装以太坊软件

而后,就能够打开终端窗口,在Ubuntu上直接安装以太坊软件,参见:http://www.javashuo.com/article/p-dslcsakq-et.htmldocker

3.安装问题解决

因为这个镜像的基础环境是基于Ubuntu 14.04的,所以Nodejs和go的版本比较老,没法安装Ethereum。下面咱们手工安装这两个软件的新版本,就能够了。编程

3.1 安装新版go语言运行时

下载并展开到目录。api

wget https://storage.googleapis.com/golang/go1.6.linux-amd64.tar.gz
tar -vxf go1.6.linux-amd64.tar.gz

而后,修改/etc/profile文件,把这个文件拷贝过来到本地目录,以便于修改:

cp /etc/profile .

修改文件,加入下面几行,设置go语言的环境变量:

export GOROOT=/home/jovyan/work/go
export GOBIN=/home/jovyan/work/go/bin
export PATH=$PATH:$GOBIN

而后把profile文件拷贝回去,运行source使其生效。

cp profile /etc
source profile

而后:

go
go env
go version

若是显示正常的信息,go运行时就设置成功了。

3.2 安装nodejs新版本

sudo apt-get update  
sudo apt-get install -y python-software-properties software-properties-common  

#若是按照一些攻略误安装了chris-lea-node_js,必定要删掉,方法以下:
#sudo rm -f /etc/apt/sources.list.d/chris-lea-node_js-*.list

#获取新的源,可选版本,目前实验能够用:
#curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -

sudo apt-get update  
sudo apt-get install nodejs

3.3 编译go-ethereum客户端

按照正常的PPA安装,会出现找不到安装源的错误(没有提供Ubuntu14.04-jessie的编译好的源)。 那就自力更生,本身编译。首先获取源代码:

sudo apt-get install -y build-essential libgmp3-dev golang
git clone https://github.com/ethereum/go-ethereum
cd go-ethereum
make geth

而后,按照提示,运行:/build/bin/geth。正常状况下,能够看到运行的结果。

3.4 优化

按照上面的安装,Ethereum的区块链数据会放到Docker容器的内部存储中。咱们能够设置将其放到Docker映射的宿主机目录卷,以方便管理和共享。

相关文章
相关标签/搜索