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

相關文章
相關標籤/搜索