EOS 入門指南

weixin_34087301發表於2018-10-30
6171922-0d14366d38885513.jpg
eosio

前置說明

  • 我使用以下配置完成了 eos 的入門,你也可以使用其他系統或版本,具體參照官方的 說明文件
  • 系統版本 macOS 10.13.6
  • xcode-select 版本 2349
  • Xcode 版本 10.0
  • eos 版本 v1.4.1
  • 請保證你的電腦或虛擬機器至少有 7GB 可用記憶體

第一步從 Docker 入門 eos

為了快速學習 eos 我建議使用 Docker 入門,而不是一上來就從 eos 原始碼編譯安裝開始。目前(2018.10.30)來看,從 eos 原始碼編譯安裝開始入門簡直是對人性的考驗。如果不會用 Docker,推薦看看《Docker — 從入門到實踐》非常不錯開源 Docker 入門書。
當你對以下常用的 Docker 命令瞭解之後,你就可以放心去用 Docker 快速入門 eos 了。

# ----拉取 eos 最新的映象----
docker pull eosio/eos:latest

# ----Docker 常用映象操作----

# 列出所有映象
docker image ls

# 刪除本地映象
docker image rm [IMAGE ID]

# ----Docker 常用容器操作----

# 檢視所有容器
docker container ls -a

# 檢視啟動的容器
docker container ls

# 啟動容器
docker container start [CONTAINER ID]

# 終止容器
docker container stop [CONTAINER ID]

# 重啟容器
docker container restart [CONTAINER ID]

# 刪除容器
docker container rm [CONTAINER ID]

# ----使用 eosio bash----
docker exec -it eosio bash

第二步從 eos 官方文件開始踩坑

如今市面上的很多 eos 入門教程其實說白了就是把 eos 的英文文件翻譯成了中文,拿出來說一通,含金量不高,而且容易忽視官方文件的重要性,一遇問題就 Google ,不會自己去查官方文件。

如果你已經對 Docker 有一些瞭解了,那麼你就可以去 eos 官方的開發者網站 逛逛了。

可能你逛完回來還是不知道從哪裡開始,囉 從這裡開始->

但大多數情況下你可能沒辦法按照官方的入門教程完成整個教程的例項,遇到問題首先要看報錯資訊,看看具體是什麼錯誤,思考一下錯誤的原因,如果實在不行再去 Google 或找人幫忙。至少我入門的時候,為了理解和完成整個教程的例項,我不只練習入門教程三次。如果你能堅持無誤的完成官方的入門教程,瞭解了 eos 基本的一些概念,那麼你已經入門了 eos

第三步從原始碼開始編譯安裝 eos

如果你能順利走到第三步,可能前面兩步你就已經花了一週的時間,千萬要把前兩步走好,把基本概念瞭解透。大部分人都是這麼過來的,不要放棄。

有了基本概念後就可以更深入的學習 eos,從這裡開始就需要我們從原始碼開始編譯安裝 eos
可能大部分人都會從 這裡開始 按順序往下學,但我建議你 先看看這裡 ,先看看編譯原始碼需要哪些依賴,然後參照官方的文件把這些依賴安裝好,如果不好好裝好這些依賴,你也走不遠。安裝好依賴後,再從 這裡開始 一步一步往下動手實踐。

編譯中遇到的坑

1.沒有設定 LLVM_DIR

詳細錯誤如下:

CMake Error at libraries/wasm-jit/Source/Runtime/CMakeLists.txt:26 (find_package):
  Could not find a package configuration file provided by "LLVM" (requested
  version 4.0) with any of the following names:

    LLVMConfig.cmake
    llvm-config.cmake

  Add the installation prefix of "LLVM" to CMAKE_PREFIX_PATH or set
  "LLVM_DIR" to a directory containing one of the above files.  If "LLVM"
  provides a separate development package or SDK, be sure it has been
  installed.


-- Configuring incomplete, errors occurred!
See also "/Users/hammer/blockchain/eos/build/CMakeFiles/CMakeOutput.log".

    >>>>>>>>>>>>>>>>>>>> CMAKE building EOSIO has exited with the above error

解決辦法:

設定 LLVM_DIR 的值。我自己用的是 zsh,所以修改的是 ~/.zshrc 檔案,使用 bash 的修改 ~/.bash_profile

在設定之前先檢視一下在 /usr/local/Cellar/ 下有沒有 llvm,並確定 llvm 的版本。然後在 ~/.zshrc 檔案最後中追加一行:

export LLVM_DIR=/usr/local/Cellar/llvm@4/4.0.1/lib/cmake

最後別忘記 source 生效:

source ~/.zshrc

2.Git clone 程式碼慢

由於眾所周知的問題國內訪問 Github 的速度一直不理想,而 git clone eos 原始碼和其依賴總共有幾百 MB 的大小,所以最好使用 VPN 並設定 git 代理:

# 設定代理,具體代理地址和你使用的 VPN 軟體有關
git config --global http.proxy 'socks5://127.0.0.1:1080'
git config --global https.proxy 'socks5://127.0.0.1:1080'

# 取消代理設定
git config --global --unset http.proxy
git config --global --unset https.proxy

3.Mac 編譯原始碼依賴 Xcode 和 xcode-select 的問題

Mac 上編譯 eos 原始碼和安裝後續的一些工具都依賴到 Xcodexcode-select 的一些東西,雖然你看著 Xcode 這個幾個 GB 的巨嬰,而且以後都不會去開啟,很不想去安裝,但是為了不讓費後面的時間,我建議還是咬咬牙裝了吧。

4.Mac 安裝 CDT 可能會遇到 brew link eosio.cdt 無效的問題

Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink /usr/local/lib/cmake
/usr/local/bin is not writable.

You can try again using:
  brew link eosio.cdt

可以仔細看看報錯資訊看看到底是什麼錯,像上面正在安裝軟體,但 homebrew 遇到資料夾許可權的問題。使用如下命令解決:

sudo chown -R $(whoami) /usr/local/lib/cmake

如果大家遇到其他的問題可以找我溝通,我把你們遇到的問題,也記錄在這裡,當然我會標明是你提供的這個問題,方便遇到相同問題的朋友進一步溝通。