基于Docker在Ubuntu+Jupyter上运行“以太坊”
基于Docker在Ubuntu+Jupyter上运行“以太坊”
openthings 发表于1年前
基于Docker在Ubuntu+Jupyter上运行“以太坊”
  • 发表于 1年前
  • 阅读 84
  • 收藏 0
  • 点赞 0
  • 评论 2

腾讯云 十分钟定制你的第一个小程序>>>   

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

共有 人打赏支持
粉丝 203
博文 616
码字总数 376282
作品 1
评论 (2)
openthings
jupyter/all-spark-notebook用的Ubuntu14.04,很不幸,Nodejs太老,golang太老,找不到这个版本的安装源了。
openthings
手动安装Nodejs和go语言,然后自己编译go-ethereum,出来的版本是可以用的。参考上面的方法。
×
openthings
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: