提示:如果你對EOSIO已經有了一定的了解,那么此文章能幫助你快速安裝部署一個智能合約
文章目錄
- EOSIO簡單介紹
- 一、部署EOSIO
- 1.安裝
- 下載EOSIO原始碼
- 構建EOSIO二進制檔案
- 安裝EOSIO二進制檔案
- 測驗 EOSIO 二進制檔案
- 二、部署智能合約
- 1.安裝EOSIO.CDT
- 2.創建開發錢包
- 創建錢包
- 打開錢包
- 查看錢包串列
- 解鎖錢包
- 匯入密鑰到錢包
- 3.啟動kiosd和nodeos
- 4.創建開發賬號
- 5.部署、發行、轉移代幣
EOSIO簡單介紹
EOSIO 區塊鏈平臺是下一代開源平臺,具有行業領先的交易速度和靈活的實用程式,作為區塊鏈平臺,EOSIO 專為企業級用例而設計,并為公共和私有區塊鏈部署而構建,EOSIO 是可定制的,具有基于角色的權限系統和安全的應用程式交易處理,以滿足跨行業的廣泛業務需求
提示:以下是本篇文章正文內容,下面案例可供參考
一、部署EOSIO
提示:我使用的是ubantu 18.04,cpu 2核,記憶體8G;官網:https://developers.eos.io/manuals/eos/v2.0/install/index
1.安裝
提示:官網提供了兩種安裝方式:1.直接構建二進制檔案;2.原始碼構建;我使用的是原始碼構建,如果需要其他方法,可以查看官網
下載EOSIO原始碼
1.在根目錄下創建一個eosio檔案夾 , 然后在該目錄下下載EOSIO 原始碼
mkdir eosio && cd ~/eosio
git clone --recursive https://github.com/EOSIO/eos
2.更新子模塊
cd ~/eosio/eos
git submodule update --init --recursive
構建EOSIO二進制檔案
要切換到~/eosio/eos檔案下,然后啟動腳本
cd ~/eosio/eos
./scripts/eosio_build.sh
安裝EOSIO二進制檔案
cd ~/eosio/eos/build
make install
提示:安裝程序比較漫長,耐心等待,我此處花費了1個多小時
測驗 EOSIO 二進制檔案
安裝后可以運行測驗腳本,驗證EOSIO,看到有東西出現就可以
cd ~/eosio/eos/build
make test
二、部署智能合約
智能合約在區塊鏈上存盤和更新狀態;智能合約是一段代碼,可以在區塊鏈上執行,并將合約執行狀態作為該區塊鏈實體不可變歷史的一部分,因此,開發人員可以將該區塊鏈作為可信賴的計算環境,其中智能合約的輸入、執行和結果是獨立的,不受外部影響,
1.安裝EOSIO.CDT
EOSIO 合約開發工具包,簡稱 CDT,是一組與合約編譯相關的工具,后續教程主要使用 CDT 來編譯合約和生成 ABI
wget https://github.com/eosio/eosio.cdt/releases/download/v1.8.0/eosio.cdt_1.8.0-1-ubuntu-18.04_amd64.deb
sudo apt install ./eosio.cdt_1.8.0-1-ubuntu-18.04_amd64.deb
2.創建開發錢包
創建錢包
cleos wallet create --to-console
這里,會回傳一個密碼,將該密碼保存在某個地方,后面會用到
打開錢包
cleos wallet open
查看錢包串列
cleos wallet list
該命令會回傳:
Wallets:
[
“default”
]
解鎖錢包
該keosd錢包(S)已經被打開,但仍處于鎖定狀態,不久前,您獲得了一個密碼,現在您將需要該密碼
cleos wallet unlock
將會提示你輸入密碼,將其粘貼到終端后回車
再查看一下錢包串列
cleos wallet unlock
此時回傳:
Wallets:
[
“default *”
]
看見星號 (*),這意味著錢包當前已解鎖
匯入密鑰到錢包
1.創建密鑰
cleos wallet create_key
他會回傳一串字符:EOS....................樣的,這個是你的公鑰,后面也會用到
2.匯入開發密鑰
每個新的 EOSIO 鏈都有一個默認的“系統”用戶,稱為“eosio”,該帳戶用于通過加載規定 EOSIO 鏈的治理和共識的系統合約來設定鏈,每個新的 EOSIO 鏈都帶有一個開發密鑰,這個密鑰是一樣的,加載此密鑰以代表系統用戶(eosio)簽署交易
cleos wallet import
系統將提示您輸入私鑰,輸入eosio下面提供的開發密鑰
5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3
可以查看是否匯入成功
cleos wallet keys
3.啟動kiosd和nodeos
啟動keosd
keosd &
會有類似的輸出
info 2021-07-18T012:54:24.789 thread-0 wallet_plugin.cpp:42 plugin_initialize ] initializing wallet plugin
info 22021-07-18T12:54:24.795 thread-0 http_plugin.cpp:554
啟動后keosd &,你可能會遇到這樣的資訊:
“3120000 wallet_exception: Wallet exception Failed to lock access to wallet directory; is another keosd running?”
這是因為另一個keosd行程實體可能正在后臺運行,殺死所有實體pkill keosd并重新運行keosd &
啟動節點
nodeos -e -p eosio \
--plugin eosio::producer_plugin \
--plugin eosio::producer_api_plugin \
--plugin eosio::chain_api_plugin \
--plugin eosio::http_plugin \
--plugin eosio::history_plugin \
--plugin eosio::history_api_plugin \
--filter-on="*" \
--access-control-allow-origin='*' \
--contracts-console \
--http-validate-host=false \
--verbose-http-errors >> nodeos.log 2>&1 &
這些設定完成以下操作:
運行節點,此命令加載所有基本插件,設定服務器地址,啟用 CORS 并添加一些合約除錯和日志記錄,
啟用沒有限制 (*) 和開發日志的 CORS
查看節點是否正常作業,是否正在產生塊
tail -f nodeos.log
如果你遇到這樣的錯誤,很可能是沒有正常關閉節點導致的臟資料
“Database dirty flag set (likely due to unclean shutdown): replay required”
必須干凈的關閉nodeo后重新啟動nodeos
kill -SIGTERM <pid>
nodeos --replay-blockchain
檢查錢包,你會看到一個空錢包串列回應
cleos wallet list
Wallets:
[]
檢查 Nodeos 端點,檢查 RPC API 是否正常作業
curl http://localhost:8888/v1/chain/get_info
4.創建開發賬號
我們創建兩個賬號,YOUR_PUBLIC_KEY輸入公鑰值
cleos create account eosio bob YOUR_PUBLIC_KEY
cleos create account eosio alice YOUR_PUBLIC_KEY
結果:
executed transaction: 40c605006de… 200 bytes 153 us
/# eosio <= eosio::newaccount {“creator”:“eosio”,“name”:“alice”,“owner”:{“threshold”:1,“keys”:[{“key”:"EOS5rti4LTL53xptjgQBXv9HxyU…
warning: transaction executed locally, but may not be confirmed by the network yet ]
查看用戶的與哪一個公鑰相關聯
cleos get account alice
結果:
permissions:
owner 1: 1 EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
active 1: 1 EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
memory:
quota: unlimited used: 3.758 KiB
net bandwidth:
used: unlimited
available: unlimited
limit: unlimited
cpu bandwidth:
used: unlimited
available: unlimited
limit: unlimited
提示:創建賬戶時,請確保你的錢包已經解鎖
5.部署、發行、轉移代幣
第一步:獲取合約來源
mkdir CONTRACTS_DIR
cd CONTRACTS_DIR
拉取原始碼
git clone https://github.com/EOSIO/eosio.contracts --branch v1.7.0 --single-branch
進入到eosio.contracts/contracts/eosio.token
cd eosio.contracts/contracts/eosio.token
第 2 步:創建合約賬戶
cleos create account eosio eosio.token EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
第 3 步:編譯合約
eosio-cpp -I include -o eosio.token.wasm src/eosio.token.cpp --abigen
第 4 步:部署代幣合約
cleos set contract eosio.token CONTRACTS_DIR/eosio.contracts/contracts/eosio.token --abi eosio.token.abi -p eosio.token@active
出現如下的內容就為成功
Reading WASM from …eosio.contracts/contracts/eosio.token/eosio.token.wasm…
Publishing contract…
executed transaction: a68299112725b9f2233d56e58b5392f3b37d2a4564bdf99172152c21c7dc323f 6984 bytes 6978 us
/# eosio <= eosio::setcode {“account”:“eosio.token”,“vmtype”:0,“vmversion”:0,“code”:"0061736d0100000001a0011b60000060017e006002…
/# eosio <= eosio::setabi {“account”:“eosio.token”,“abi”:"0e656f73696f3a3a6162692f312e310008076163636f756e7400010762616c616e63…
warning: transaction executed locally, but may not be confirmed by the network yet ]
第 5 步:創建令牌
cleos push action eosio.token create '[ "alice", "1000000000.0000 SYS"]' -p eosio.token@active
上面的命令創建了SYS一個精度為 4 位小數且最大供應量為 1000000000.0000 SYS的新代幣,它還指定alice為發行人,要創建此令牌,合約需要eosio.token帳戶的權限,為此,-p eosio.token@active被通過授權此操作
第 6 步:發行代幣
cleos push action eosio.token issue '[ "alice", "100.0000 SYS", "memo" ]' -p alice@active
第 7 步:轉移代幣
cleos push action eosio.token transfer '[ "alice", "bob", "25.0000 SYS", "m" ]' -p alice@active
現在該帳戶alice已發行代幣,將其中一些轉移到 account bob
第 8步:檢查余額
檢查是否bob使用cleos get 貨幣余額
cleos get currency balance eosio.token bob SYS
檢查alice余額
cleos get currency balance eosio.token alice SYS
第六、七、八步驟運行的結果如圖

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/289370.html
標籤:區塊鏈
上一篇:近幾年你錯過的發財機會
