obc安裝步驟
朋友們可能會好奇,廚師不研究菜譜怎么改研究兵法了,哈哈,我原本是app出身,最近被安排去預研區塊鏈和比特幣技術,2個月下來,頗有斬獲。期間得到IBM的CC同學指導我一步一步安裝obc的環境。學習期間,把安裝步驟整理下來,以饗后人。
這門技術我的感受是,噱頭更多一些,它里面有很深刻的思想在里面,但還很難應用到現實中,尤其是金融行業之外的其他垂直領域。所以接下來有機會,我要寫本《區塊鏈:從入門到放棄》的書。
咸鹽少敘,趕快介紹OBC的安裝步驟:
1.下載并安裝Vagrant和VitualBox。
http://www.vagrantup.com/downloads
https://www.virtualbox.org/wiki/Downloads
注:接下來的步驟如果安裝官方文檔,必死無疑,我曾經卡了耽誤很久,因為很多網站國內不能訪問。為此,我們采取折中的辦法,把被屏蔽的網址上的下載文件,通過其他渠道提前下載好,然后手動安裝。
2.下載ubunta鏡像。
https://atlas.hashicorp.com/obc/boxes/dev-env/versions/0.2.1/providers/virtualbox.box
改個名字吧,比如重命名為openchain.iso,叫什么不重要,只是為了好認。
3.把鏡像添加到vagrant中。
vagrant box add --name obc/dev-env /Users/baojianqiang/Downloads/blockchain.iso
其中,最后一個參數是ubunta鏡像在本機的路徑,上面這個路徑是我本機的存放路徑。
關于vagrant本地添加box鏡像的更多介紹,請參見:
http://www.imooc.com/qadetail/62953
4.啟動鏡像
首先,進入到obc-dev-env所在的目錄,執行vagrant up命令,Vagrant會執行目錄下的Vagrantfile文件
注:我們事先要修改一下這個Vagrantfile文件:
1) 刪除config.vm.box_version這行,否則手動安裝就不能進行。
2) 刪除./setup.sh這行。我們要手動執行setup.sh腳本。
接下來,運行vagrant ssh命令啟動鏡像。
這時看光標所在的那行,你會發現,我們進入到vagrant的ubunta系統了,接下來執行的命令都將在ubunta上運行。
同時你可以啟動VisualBox,有3個共享目錄,這是在Vagrantfile文件中設置過的結果,主機和虛機的目錄映射關系如下:
此外,輸入node –v,會檢查到虛機上安裝的是v0.12.7版本。輸入git version,會檢查到虛機上安裝的是1.9.1版本。
5.手動逐步執行setup.sh腳本
Vagrantfile文件會執行腳本文件setup.sh。這個腳本主要干了幾件事情:
1) Ubunta系統更新
2) 下載并安裝Docker
3) 安裝python相關(包括pip、behave和nose)
4) 更新flask、python-dateutil、pytz、pyyaml、conchdb、flask-cors和requests
5) 下載并安裝GO
6) 下載并安裝RocksDB,并設置CGO_CFLAGS和CGO_LDFLAGS
7) 下載并安裝ProtoBuf
8) 配置RocksDB(為此需要創建目錄、開權限然后更新limits.conf)
我們要修改這個腳本文件,因為里面有些東西下載不了。
刪除docker run --rm busybox echo All good這行,這是為了測試Docker安裝是否成功的,只是一個測試,但是這次測試要下載busybox,而這個在國內是不能訪問的,所以干脆刪除不執行了。
先做一些準備工作
1)獲取ubunta虛機的root權限,輸入su命令,要去我們輸入密碼。ubunta虛機的默認賬戶和密碼都是vagrant。
接下來進入到虛機的vagrant目錄,對應本機的obc-dev-env目錄:
cd /vagrant
2)在Ubunta系統,想要執行一個sh腳本,需要輸入以下命令:
chmod +x setup.sh
./setup.sh
接下來我把setup.sh腳本文件拆分為若干小的文件,每個文件只干一件事情:
1)setup1.sh
下載并安裝Docker
2)setup2.sh
下載并安裝python、pip、behave和nose
更新一些插件,如flask。
3)setup3.sh
安裝go語音環境。
這會間接執行installGolang.sh腳本。腳本中有兩句話可能會不能執行,因為golang.org在國內不能正常訪問:
# Install Golint and goimports
go get github.com/golang/lint/golint
go get golang.org/x/tools/cmd/goimports
go get語句的作用是先下載,然后在下載的目錄中執行go install,后面這個命令會生成結果文件(可執行文件或.a包,然后將其轉移到$GOPATH/bin目錄下)。
解決方案是,我們手動將其下載,然后復制到共享目錄,接下來手動執行go install即可
這時候在命令行輸入go還提示我們找不到該命令。進入到etc/profile.d目錄,對gopath.sh文件執行source命令:
cd /etc/profile.d
source gopath.sh
4)setup4.sh
下載并安裝RocksDB和Protobuf
進入到etc/profile.d目錄,對gopath.sh文件執行source命令:
cd /etc/profile.d
source rocksLDLibrary.sh
注:每打開一個ssh窗體,都要執行第3步和第4步這兩個source命令。
文章列表