1. 程式人生 > >EOSIO開發(四)- nodeos、keosd與cleos

EOSIO開發(四)- nodeos、keosd與cleos

前一篇文章介紹了EOSIO中錢包、賬戶與賬戶許可權的概念,這一篇文章繼續學習EOSIO系統的主要元件,包括nodeos、keosd以及cleos。

本文執行的命令都是基於Docker環境,請先下載Docker映象

docker pull eosio/eos 

nodeos、keosd與cleos的關係

圖中有幾個關鍵資訊:

  1. nodeos就是我們常說的節點,用來管理賬號,上傳資料到區塊鏈。
  2. keosd是錢包管理客戶端,用來儲存錢包資訊。
  3. cleos是使用者(主要是開發人員)與keosd/nodeos互動的命令列工具。

nodeos

nodeos的官方定義如下

nodeos - server-side blockchain node component

nodeos是執行在服務端的區塊鏈節點元件,是EOSIO系統的核心程序,可以通過它執行一個節點。

在Docker環境通過下面的命令執行一個nodeos節點。

docker run --name nodeos -p 8888:8888 -p 9876:9876 -t eosio/eos /opt/eosio/bin/nodeosd.sh arg1 arg2

這個命令有下面幾層含義:

  1. 使用eosio/eos映象,啟動一個名稱是nodeos的容器。
  2. 啟動後將容器的8888埠對映到本機8888埠,9876埠對映到本機9876埠。
  3. 啟動容器時執行 /opt/eosio/bin/nodeosd.sh 指令碼,通過此指令碼執行nodeos節點。

使用下面的命令進入nodeos容器,並找到nodeosd.sh檔案所在的檔案目錄。

docker exec -it nodeos /bin/bash
cd /opt/eosio/bin/
ls

可以看到在這個目錄下,除了nodeos.sh,還有nodeos、keosd、cleos,這說明在eosio/eos映象中已經包含了這三個元件的完整資訊,有興趣的同學可以繼續深入瞭解,我在這裡就不展開介紹了。

keosd

keosd的官方定義如下

keosd - EOSIO wallet

keosd就是EOSIO的錢包管理客戶端,可以被認為是一個儲存公鑰-私鑰的倉庫,同時管理錢包資訊。

nodeos與keosd之間並不存在必然關聯,只有在需要簽名時它們才會產生聯絡,例如為交易簽名。

有一點要注意的是,nodeos已經包含了keosd的完整功能,也就是說在nodeos上也可以管理錢包。

在Docker環境通過下面的命令執行一個keosd客戶端。

docker run --name keosd -t eosio/eos /opt/eosio/bin/keosd arg1 arg2

與執行nodeos相比,有兩點不同:
1.啟動keosd不需要指定埠
2.使用/opt/eosio/bin/keosd 啟動keosd客戶端

使用下面的命令進入keosd容器

docker exec -it keosd /bin/bash

cleos

cleos的官方定義如下

cleos - command line interface to interact with the blockchain

cleos是使用者與keosd/nodeos互動的命令列工具。

在nodeos或者keosd中,使用 cleos -h命令,可以檢視cleos的幫助資訊。

cleos 目前支援 version``````create``````get``````set``````trnsfer``````net``````wallet``````sign``````push9個子命令。

系列文章

參考資料

博文地址