以太坊(https://ethereum.org)是一个开放的开源区块链(技术原理与发展趋势,区块链相关术语)软件,能够实现无中心体系架构下的应用开发。html
下面咱们介绍在Docker中部署以太坊的方法(参见以太坊安装方法),而后使用Jupyter Notebook进行基于浏览器的访问。一旦环境设置完毕,就能够在不少环境下部署Docker容器,使用很是方便。Jupyter Notebook是基于浏览器的编程“笔记本”,很是适合进行数据探索类的研究。node
我用的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
采用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
打开浏览器,输入:http://localhost:9000。github
在里面打开一个终端窗口,运行升级程序,安装须要的软件:golang
sudo apt-get update sudo apt-get upgrade sudo apt-get install python3-dev
而后,就能够打开终端窗口,在Ubuntu上直接安装以太坊软件,参见:http://www.javashuo.com/article/p-dslcsakq-et.html。docker
因为这个镜像的基础环境是基于Ubuntu 14.04的,所以Nodejs和go的版本比较老,没法安装Ethereum。下面咱们手工安装这两个软件的新版本,就能够了。编程
下载并展开到目录。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运行时就设置成功了。
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
按照正常的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。正常状况下,能够看到运行的结果。
按照上面的安装,Ethereum的区块链数据会放到Docker容器的内部存储中。咱们能够设置将其放到Docker映射的宿主机目录卷,以方便管理和共享。