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

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

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

1.安装支持环境

1.1 安装Docker容器支持环境

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

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

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

1.2 安装Jupyter Notebook容器

采用Jupyter的官方Docker技术栈

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。

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

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

2.安装以太坊软件

然后,就可以打开终端窗口,在Ubuntu上直接安装以太坊软件,参见:https://my.oschina.net/u/2306127/blog/750162

3.安装问题解决

由于这个镜像的基础环境是基于Ubuntu 14.04的,因此Nodejs和go的版本比较老,无法安装Ethereum。下面我们手工安装这两个软件的新版本,就可以了。

3.1 安装新版go语言运行时

下载并展开到目录。

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映射的宿主机目录卷,以方便管理和共享。

转载于:https://my.oschina.net/u/2306127/blog/755267

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值