溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

EOS開發(fā)環(huán)境的搭建

發(fā)布時間:2021-08-27 16:42:36 來源:億速云 閱讀:142 作者:chen 欄目:互聯(lián)網(wǎng)科技

這篇文章主要介紹“EOS開發(fā)環(huán)境的搭建”,在日常操作中,相信很多人在EOS開發(fā)環(huán)境的搭建問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”EOS開發(fā)環(huán)境的搭建”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

獲取代碼

下載所有的EOSIO代碼,clone eos庫和所有的子模塊。

shell 命令如下:

git clone https://github.com/EOSIO/eos --recursive

如果忘記加 --recursive 參數(shù)也沒關系,隨后也可以用命令 clone 所有子模塊。

git submodule update --init --recursive

安裝構(gòu)建設置

EOSIO可以在多個平臺上安裝構(gòu)建,并有各種路徑進行安裝構(gòu)建。大多數(shù)用戶更喜歡使用自動化腳本或docker,而更高級的用戶或希望部署公共節(jié)點的用戶可能需要手動方法。構(gòu)建內(nèi)容生成在eos/build文件夾中??蓤?zhí)行文件可以在eos/build/programs文件夾的子文件夾中找到。

  • 自動化腳本 :適合于大多數(shù)開發(fā)人員,這個腳本是基于Mac OS和許多Linux版本的。

  • docker-compose方式 :到目前為止最快的安裝方法,可以在兩分鐘內(nèi)啟動并運行一個節(jié)點。也就是說,它需要一些額外的本地配置來進行開發(fā),以便順利運行并遵循我們提供的教程。

  • 手動安裝構(gòu)建:適用于那些可能對自動化腳本有沖突的環(huán)境,或者希望對其構(gòu)建進行更多控制的開發(fā)者。

  • 可執(zhí)行文件安裝構(gòu)建:一個可選的make install步驟,可以使本地開發(fā)更加友好。

如果你是新手,建議直接看通過docker快速構(gòu)建安裝EOSIO。

自動化腳本安裝

有一個自動化的構(gòu)建腳本,可以安裝所有依賴項并構(gòu)建EOSIO。腳本支持以下操作系統(tǒng)。

我們正在支持和將來發(fā)布會支持的Linux/UNIX發(fā)行版。

  • Amazon 2017.09 和更高版本。

  • Centos 7。

  • Fedora 25和更高版本(推薦 Fedora 27)。

  • Mint 18。

  • Ubuntu 16.04(推薦 Ubuntu 16.10)。

  • MacOS Darwin 10.12和更高版本(推薦 MacOS 10.13.x)。

eos目錄運行安裝構(gòu)建腳本:

cd eos
./eosio_build.sh
docker-compose方式構(gòu)建

如果你只是想跑起來,可能通過docker快速構(gòu)建安裝EOSIO更適合。否則你想了解更高級的構(gòu)建,那么繼續(xù)。

安裝依賴項
  • Docker:Docker 17.05或更高版本

  • docker-compose :版本>= 1.10.0

Docker的要求
  • 至少7GB RAM(DOCK->首選項->高級->內(nèi)存->7GB或以上)

  • 如果安裝構(gòu)建失敗,請確保你已經(jīng)調(diào)整了Docker內(nèi)存設置,然后再試一次。

構(gòu)建eos鏡像
git clone https://github.com/EOSIO/eos.git --recursive  --depth 1
cd eos/Docker
docker build . -t eosio/eos

以上將在默認情況下構(gòu)建對主分支的最新提交。如果想針對特定的分支/tag,可以使用生成參數(shù)。例如,如果希望根據(jù)v1.0.0 tag生成Docker鏡像,可以執(zhí)行以下操作:

docker build -t eosio/eos:v1.0.0 --build-arg branch=v1.0.0 .

默認情況下,eosio.system的 symbol 設置為SYS。在構(gòu)建Docker鏡像時,可以使用 symbol 參數(shù)來做到這一點。

docker build -t eosio/eos --build-arg symbol=ABC.
在 docker 中啟動 nodeos
docker run --name nodeos -p 8888:8888 -p 9876:9876 -t eosio/eos nodeosd.sh -e arg1 arg2

默認情況下,所有數(shù)據(jù)都保存在docker卷中。如果數(shù)據(jù)過時或損壞,則可以刪除它:

$ docker inspect --format '{{ range .Mounts }}{{ .Name }} {{ end }}' nodeos
fdc265730a4f697346fa8b078c176e315b959e79365fc9cbd11f090ea0cb5cbc
$ docker volume rm fdc265730a4f697346fa8b078c176e315b959e79365fc9cbd11f090ea0cb5cbc

或者,可以直接將宿主目錄安裝到docker中。

docker run --name nodeos -v /path-to-data-dir:/opt/eosio/bin/data-dir -p 8888:8888 -p 9876:9876 -t eosio/eos nodeosd.sh -e arg1 arg2
獲取區(qū)塊鏈信息
curl http://127.0.0.1:8888/v1/chain/get_info
在docker中啟動nodeos和keosd
docker volume create --name=nodeos-data-volume
docker volume create --name=keosd-data-volume
docker-compose up -d

docker-compose -d之后,將啟動nodeoskeosd兩個服務。nodeos服務會將端口8888和9876提供給主機。kesod服務不向主機公開任何端口,只有當在cleos容器中運行cleos時,cleos才可以訪問它。

執(zhí)行cleos命令

你可以運行cloes通過bash別名

alias cleos='docker-compose exec keosd /opt/eosio/bin/cleos -u http://nodeosd:8888 --wallet-url http://localhost:8900'
cleos get info
cleos get account inita

如果你想在任何地方使用cleos命令,你可以在docker-compose.yml指定路徑:

alias cleos='docker-compose -f path-to-eos-dir/Docker/docker-compose.yml exec keosd /opt/eosio/bin/cleos -u http://nodeosd:8888 --wallet-url http://localhost:8900'

提交exchange示例合約:

cleos set contract exchange contracts/exchange/

如果你不需要keosd,可以停止使用keosd服務:

docker-compose stop keosd
開發(fā)構(gòu)建客戶合約

由于eosio/eos鏡像不包含合約開發(fā)所需的依賴關系(這樣設計是為了保持較小鏡像尺寸),所以需要使用 eosio/eos-dev鏡像。此鏡像包含使用eosiocpp構(gòu)建合約的所需二進制文件和依賴項。

可以使用Docker Hub上可用的鏡像或進入到dev文件夾并手動構(gòu)建鏡像。

cd dev
docker build -t eosio/eos-dev .
修改默認配置

可以使用docker compose更改默認配置。例如,創(chuàng)建一個備用配置文件config2.inidocker-compose.override.yml,內(nèi)容如下:

version: "2"

services:
  nodeos:
    volumes:
      - nodeos-data-volume:/opt/eosio/bin/data-dir
      - ./config2.ini:/opt/eosio/bin/data-dir/config.ini

然后重啟docker:

docker-compose down
docker-compose up
刪除data-dir

docker-compose創(chuàng)建的data卷可以被刪除:

docker volume rm nodeos-data-volume
docker volume rm keosd-data-volume
Docker Hub

Docker Hub 鏡像來自docker hub

建立一個新的docker-compose.yaml文件內(nèi)容如下:

version: "3"

services:
  nodeosd:
    image: eosio/eos:latest
    command: /opt/eosio/bin/nodeosd.sh --data-dir /opt/eosio/bin/data-dir -e
    hostname: nodeosd
    ports:
      - 8888:8888
      - 9876:9876
    expose:
      - "8888"
    volumes:
      - nodeos-data-volume:/opt/eosio/bin/data-dir

  keosd:
    image: eosio/eos:latest
    command: /opt/eosio/bin/keosd --wallet-dir /opt/eosio/bin/data-dir --http-server-address=127.0.0.1:8900
    hostname: keosd
    links:
      - nodeosd
    volumes:
      - keosd-data-volume:/opt/eosio/bin/data-dir

volumes:
  nodeos-data-volume:
  keosd-data-volume:

注意:默認版本是最新版本,可以將其更改為你想要的版本。

  • 運行: docker pull eosio/eos:latest

  • 運行: docker-compose up

EOSIO 1.0 Testnet

我們可以很容易地建立一個EOSIO 1.0本地Testnet測試鏈,使用docker鏡像。只需運行以下命令:

注意:如果你想使用mongo db插件,你必須首先在data-dir/config.ini啟用它。

# pull images
docker pull eosio/eos:v1.0.0

# create volume
docker volume create --name=nodeos-data-volume
docker volume create --name=keosd-data-volume
# start containers
docker-compose -f docker-compose-eosio1.0.yaml up -d
# get chain info
curl http://127.0.0.1:8888/v1/chain/get_info
# get logs
docker-compose logs -f nodeosd
# stop containers
docker-compose -f docker-compose-eosio1.0.yaml down

默認情況下,blocks數(shù)據(jù)存儲在--data-dir下,默認情況下錢包文件存儲在--wallet-dir下,當然,你可以根據(jù)需要更改這些文件路徑。

關于MongoDB插件

目前,MongoDB插件在config.ini中被禁用,默認情況下,必須在config.ini中手動更改它,或者可以在docker-compose文件中將config.ini文件mount到/opt/eosio/bin/data-dir/config.ini

手動安裝構(gòu)建

若要手動生成,請使用以下步驟在eos文件夾中創(chuàng)建build文件夾,然后執(zhí)行build。下面的步驟假設eos存儲庫被clone到home(即,~)文件夾中。還假定已經(jīng)安裝了必要的依賴項。請參見手動安裝依賴項。

cd ~
mkdir -p ~/eos/build && cd ~/eos/build

在Linux平臺上,使用這個cmake命令:

cmake -DBINARYEN_BIN=~/binaryen/bin -DWASM_ROOT=~/wasm-compiler/llvm -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DOPENSSL_LIBRARIES=/usr/local/opt/openssl/lib -DBUILD_MONGO_DB_PLUGIN=true ..

在MacOS上,使用這個cmake命令:

cmake -DBINARYEN_BIN=~/binaryen/bin -DWASM_ROOT=/usr/local/wasm -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DOPENSSL_LIBRARIES=/usr/local/opt/openssl/lib -DBUILD_MONGO_DB_PLUGIN=true ..

然后在所在平臺上執(zhí)行:

make -j$( nproc )

也支持Out-of-source安裝構(gòu)建。若要在編譯器中重寫默認選擇,請將這些標志添加到CMake命令:

-DCMAKE_CXX_COMPILER=/path/to/c++ -DCMAKE_C_COMPILER=/path/to/cc

對于調(diào)試模式的安裝構(gòu)建,添加-DCMAKE_BUILD_TYPE=Debug。其他常見的構(gòu)建類型包括ReleaseRelWithDebInfo

可執(zhí)行文件安裝構(gòu)建

為了便于智能合約開發(fā),可以使用make install將目標內(nèi)容安裝到/usr/local中。此步驟要從build目錄下運行的。需要適當?shù)陌惭b權(quán)限。

cd build
sudo make install
系統(tǒng)需求(包括所有平臺)
  • 內(nèi)存 7GB

  • 硬盤 20GB

安裝構(gòu)建的驗證

可選地,可以對我們的構(gòu)建運行一組測試,以執(zhí)行一些基本驗證。要在構(gòu)建后運行測試套件,啟動mongod然后運行make test

在 Linux 平臺上:

~/opt/mongodb/bin/mongod -f ~/opt/mongodb/mongod.conf &

在 MacOS 平臺上:

/usr/local/bin/mongod -f /usr/local/etc/mongod.conf &

然后執(zhí)行下面的操作:

cd build
make test

到此,關于“EOS開發(fā)環(huán)境的搭建”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

eos
AI