EOSIO開發(四)- nodeos、keosd與cleos
前一篇文章介紹了EOSIO中錢包、賬戶與賬戶許可權的概念,這一篇文章繼續學習EOSIO系統的主要元件,包括nodeos、keosd以及cleos。
本文執行的命令都是基於Docker環境,請先下載Docker映象
docker pull eosio/eos
nodeos、keosd與cleos的關係
圖中有幾個關鍵資訊:
- nodeos就是我們常說的節點,用來管理賬號,上傳資料到區塊鏈。
- keosd是錢包管理客戶端,用來儲存錢包資訊。
- 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
這個命令有下面幾層含義:
- 使用eosio/eos映象,啟動一個名稱是nodeos的容器。
- 啟動後將容器的8888埠對映到本機8888埠,9876埠對映到本機9876埠。
- 啟動容器時執行 /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``````push
9個子命令。