EOS入門指南 - PART1 環境搭建

本文做爲系列第一篇文章,主要介紹瞭如何搭建EOS本地環境、運行節點並並進行簡單的交互:如建立錢包。

note:筆者用的是macOS系統。node

EOS主網正式上線,想必你們都很激動吧。個人第一感受是,雖然EOS離本身的目標仍然還有一段路要走,可是它依然是被寄予厚望的公鏈項目。如今彷佛是更加深刻了解EOS的好時候,一開始,咱們會學習一些和EOS平臺交互的簡單操做。git

在正式開始以前,有一點須要提醒你們,你須要掌握下面這些基本知識:程序員

  • 命令行的簡單操做(會切換目錄就行啦)
  • git的簡單使用(會git clone就行啦)

即便你尚未接觸過這些,百度一下,十分鐘搞定。github

1. git clone

進入一個你想要放置eos項目的目錄,把下面這行命令複製到終端裏,而後按下enter:mongodb

(對我來講,我想把eos放在目錄/Users/hammer/blockchain中)shell

cd /Users/hammer/blockchain 
git clone https://github.com/EOSIO/eos --recursive

這會幫你安裝一大堆「東西」,--recursive能夠確保你安裝了屬於這個項目的全部「東西」。它會層級式地複製這個目錄,一直複製到目錄樹的最底層(你們能夠想象一下俄羅斯套娃🌝)。關於git的使用解釋到這兒就能夠啦。數據庫

如今,讓咱們進入這個目錄裏看看:api

cd eos
ls

輸入上面的命令就會顯示以下界面:xcode

eos項目內容

真的有好多東西!你確定想,若是有其餘更輕量級的方法來和EOS主網交互,該是一件多棒的事情。不過,既然你都讀到這兒了,我猜你可能也是蠻拼(認真)的。安全

作到這兒,咱們的主要目的就是在本地搭建EOS。就在你剛剛下載的目錄裏,有一個腳本能夠實現這個功能。比較遜的就是,整個安裝工程太浩大了,大概1G多,裏面有超級多的依賴包。

而且它須要你提早安裝有xcode,mongodb,homebrew還有一堆其餘的東西。由於我事先已經裝好這些了,因此可能會更省心一些。若是你還沒裝,估計就要耗時更久了。儘管其實,其中的某些依賴,EOS也並非非要不可(可是你就要裝啊。。🌚)。

對於一個 getting_start 文章來講,上面這些對於小白的殺傷力依然太強了。我們就拿MongoDB來舉個例子,mongodb簡而言之就是一個數據庫。那麼爲何一個數據庫會跟區塊鏈項目扯上關係?是否是區塊鏈就是個數據庫?看上去EOS彷佛使用mongodb做爲主要數據的輔助支撐。這樣的話就能理解,爲何你們都說從區塊鏈上查數據是件很痛苦的事情了。咱們進一步猜mongodb複製了區塊鏈的部分數據而且支持標準化的查詢語法進行訪問。(不得不說想象力對理解一個陌生又複雜的系統,確實是個好東西。)

2. build

爲了搭建EOS,咱們要使用剛剛下載的文件夾裏的一個文件:eosio_build.sh。以.sh結尾說明這是一個shell腳本。一句話歸納就是,這是一個能夠直接經過命令行執行的文件。

./eosio_build.sh

執行這個腳本須要花一段時間,而且它頗有可能失敗一兩次,告訴你你還須要安裝其餘的軟件。對我來講,安裝軟件最折磨人的地方,永遠是那些【爲了安裝要再安裝】的環節。若是你也遇到了這些問題,深呼吸試試?😅

不過能讀到這兒的基本就剩下程序員了吧,那對這種問題估計也見怪不怪了。

若是你是一個爲了區塊鏈,連英語和計算機都敢自學的小白,那這些問題對你還算問題麼。(爲你打call👏)

【我本身遇到的問題和解決辦法都貼在了下面的附錄1裏,但願能對你們有所幫助】

這個命令成功完成的畫面是:

eos_build_success

3. make install

一旦eosio_build完成以後,你須要在以前下載的eos文件夾中繼續找一個叫build的文件夾:

cd build
sudo make install

而後繼續等它完成。完成以後,你就能夠繼續往下走了:

cd programs/nodeos
./nodeos -e -p eosio --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin

運氣好的話,EOS本地安裝就完成啦。它會產生block而且記錄下來,打印在命令行中。COOL !(雖然有點複雜)

並且我還要很負責地告訴你,如今還沒到抱怨複雜的時候,咱們離深刻了解EOS還差得早呢。

順便貼一下成功運行的樣子:

runnodesuccess

4. 建立錢包

到這裏,咱們的安裝工做就告一段落了,下面就到了真正開始操做EOS的時候了。

咱們先來補充一點背景知識。下面這張圖展現了,EOS開發系統裏主要部分是如何交互的:

eos_main_pieces

你如今就是圖中那個小人。如今有三個可用的EOS服務。你正在使用的是cleos服務。cleos = cli + eos,簡單來講,這是一個用命令行和EOS進行交互而且管理錢包的工具。這個服務同時也會使用nodeos(後臺運行的eos主程序)和keosd(保證錢包中密鑰安全的組件)。

下面就到了激動人心的建立錢包環節🤩:

cleos wallet create

wallet_create

若是看到了這個畫面,JUST CELEBRATE!

(在建立錢包你們一般也會遇到一個問題,在附錄2中我貼出瞭解決辦法)

除了像剛纔那樣建立默認錢包外,還能夠建立本身命名的錢包。好比就叫mywallet記住打印出來的密碼哦

cloes wallet create -n mywallet

建立的錢包文件在~/eosio-wallet/文件夾中,安全起見的話,也能夠備份該文件到硬盤再刪除,須要用了再拷貝回來。

總結

該篇咱們學習了:

  • EOS環境搭建
  • 簡單EOS錢包建立

結束語

今天簡單介紹瞭如何入門EOS,下一章將手把手教會你如何鏈接EOS主網。


附錄1 - 在build過程當中遇到的問題

我本身在./eosio_build.sh的過程當中,遇到了2個error,這裏貼出來供你們參考:

1. LLVM_DIR UNSET

詳細錯誤以下:

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便可。

~/.zshrc文件中追加一行:

(記得先檢查下你的/usr/local/Cellar/裏到底有沒有llvm@4以及相應版本的文件夾)

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

最後別忘記source生效:

source ~/.zshrc

2. WRONG WITH GETTEXT

詳細錯誤以下:

Undefined symbols for architecture x86_64:
  "_libintl_bindtextdomain", referenced from:
      _main in main.cpp.o
  "_libintl_gettext", referenced from:
      eosio::client::localize::localized_with_variant(char const*, fc::variant_object const&) in main.cpp.o
      eosio::client::localize::localized_with_variant(char const*, fc::variant_object const&) in help_text.cpp.o
  "_libintl_textdomain", referenced from:
      _main in main.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation

【解決辦法】

在命令行中輸入:

brew unlink gettext && brew link --force gettext

而後從新進入eos文件夾中執行./eosio_build.sh便可。

附錄2 - 在建立錢包時遇到的問題

在執行cleos wallet create的時候,會遇到一個很常見的問題,提示你要kill keosd。詳細錯誤以下:

"/usr/local/bin/keosd" launched
Unable to connect to keosd, if keosd is running please kill the process and try again.

多半是由於端口配置的問題。(雖然官網中說cleos運行時會自動啓動keosd,我也沒遇到這個問題,可是有小夥伴反映了有這個問題,如今貼一下解決辦法)。

在以前說的eos錢包的目錄~/eosio-wallet中有一個config.ini文件,在裏面找到http-server-address那一行,替換成以下端口號:

http-server-address = 127.0.0.1:8900

將keosd監聽端口改成8900,而後再執行以下命令啓動keosd:

keosd&

以後咱們再來建立錢包:

cleos wallet create -n test

TADA!成功!

相關文章
相關標籤/搜索