之前在1.4.1
的系統合約版本,使用部署腳本沒什麼問題。不過前幾天再嘗試一次後出了差錯。
如果,你是看到我更新前的版本,這篇說明應該多少能解點惑。
如過你是以後看到我的文章,部屬時出現了狀況,或許這篇會有幫助。
說到底一切都是版本差異。不過官網目前列出的是git clone v1.7.0
版本。但是之前帶大家的是安裝v1.6.1
的版本。(官網兩個頁面使用的版本不同...)
即使如此,還是在初始話系統時(init eosio.system),出現了錯誤:
Error 3050003: eosio_assert_message assertion failure
Error Details:
assertion failure with message: unable to find key
pending console output:
這意思是「找不到代幣代碼」。是的,需要先建立發行數字貨幣。
但...還是出錯了......
Error 3050003: eosio_assert_message assertion failure
Error Details:
assertion failure with message: owner account does not exist
pending console output:
eosio
有阿!怎麼找不到了?不死心,看看官方文件。eosio.token
、eosio.msig
也都有阿...在幾番查找下,是缺eosio.rex。
cleos create account eosio eosio.rex EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
建立之後也就沒事了
在未來,EOSIO生態可能有更多系統帳號,提供不同服務。如果有缺少什麼...就找下吧!
REX協議沒記錯的話,是在2018年底接受提案、2019進入主網的。全稱是:「資源交易所(Resource Exchange)」。在早期,CPU、NET資源的交易指允許與系統互動,不像RAM有租賃市場,可以借用別人未使用的RAM。於是乎有了REX的提案,讓EOSIO上的資源更為彈性。關於EOS-REX,可以參考:
我自己不熟eosio.rex
,就不班門弄斧了。
我有些忘記RAM的實際狀況了。RAM是購買可販賣資源,怎麼做到租賃的我有點忘了...(搞錯別怪我
初始話系統時,這麼做:
cleos push action eosio init '["0", "4,SYS"]' -p eosio@active
所給的參數,第一個固定要是"0"
,其後表示系統使用代幣與其精度。者也是為什麼在轉帳時,總是要寫0.0000 SYS
,.
後的0不能多也不能少....
精度可以設置的範圍在[0 - 18]
。此外,官方文件還有寫到:
cleos push action eosio setpriv '["eosio.msig", 1]' -p eosio@active
我猜測是跟eosio最高權限有關的....就自行參考文件吧!
(主網上eosio由超級節點共同管理,不像現在搭建起來的,直接被祕鑰對控制。)