因為星雲開發人員獎勵計劃的原因,我開始嘗試智能合約與Dapp的開發。基於星雲鏈的智能合約使用JavaScript或者TypeScript,相較於以太坊語言學習成本相對較低。接下來一系列文章我將把Dapp開發過程中學習到的內容記錄下來,給有興趣或感興趣的讀者提供一些參考。前面幾章的內容基本借鑒官方Wiki。
Golang環境搭建
開發環境我使用的Mac OSX。
Components |
Version |
Description |
Golang |
>=1.9.2 |
The Go Programming Language |
在Mac OSX裡,推薦使用Homebrew來安裝Golang
#安裝Golangbrew install go#配置環境變數export GOPATH=/path/to/workspace (根據你自己的情況來配置環境變數)
提示:在golang的開發中,GOPATH是必須的,它指定了golang開發的工作空間,所有的源碼都應該放在GOPATH之下。關於golang環境配置,不明白的朋友可以去搜尋更詳細的教程。最後,完成golang的安裝一定要記得重啟終端
編譯星雲鏈
下載源碼
可以使用如下指令直接下載最新版本的星雲鏈源碼
#建立並進入工作目錄mkdir -p $GOPATH/src/github.com/nebulasiocd $GOPATH/src/github.com/nebulasio#下載源碼git clone https://github.com/nebulasio/go-nebulas.git# 進入項目目錄cd go-nebulas# 切換到最穩定的master分支git checkout master
提示:除了使用git命令來擷取源碼之外,還可以通過git工具來複製源碼,根據個人喜好來選擇複製方式
安裝rocksdb依賴庫
在Mac上可以直接通過Homebrew來安裝
#在終端運行brew install rocksdb
安裝Go依賴庫
在Go-Nebulas中,Go的三方庫都通過Dep來管理。
Components |
Version |
Description |
Dep |
>=0.3.1 |
Dep is a dependency management tool for Go. |
安裝Dep工具
通過Homebrew直接安裝並升級Dep
#安裝depbrew install dep#更新depbrew upgrade dep
下載Go三方庫
切換到Go-Nebulas項目根目錄,然後使用Dep來下載三方庫。
cd $GOPATH/src/github.com/nebulasio/go-nebulasmake dep
make dep將會下載很多依賴庫。在部分地區,這個過程可能比較耗時或直接失敗。可以直接下載vendor.tar.gz,使用下列指令通過解壓縮包來安裝go依賴庫。
cd $GOPATH/src/github.com/nebulasio/go-nebulaswget http://ory7cn4fx.bkt.clouddn.com/vendor.tar.gztar zxf vendor.tar.gz
安裝Chrome V8依賴庫
星雲虛擬機器目前依賴於Chrome的V8引擎,為了大家使用方便,星雲官方已經編譯好了V8的動態庫。運行如下指令就可以完成安裝。
cd $GOPATH/src/github.com/nebulasio/go-nebulasmake deploy-v8
提示:linux環境下如果報錯類似"/usr/local/lib/libv8.so: undefined reference to ** ",是因為/user/local/lib/不在你動態庫索引內, 只需要到/etc/ld.so.conf.d/下添加檔案,xxxx.conf即可,檔案內容為/user/local/lib. 然後執行sudo ldconfig使改動生效
編譯可執行檔
完成所有上述依賴庫的安裝後,現在我們可以進入Go-Nebulas根目錄編譯星雲鏈的可執行檔了。
cd $GOPATH/src/github.com/nebulasio/go-nebulasmake build
編譯成功後,將會看到如下資訊編譯成功
下一章 運行星雲鏈