您好,登錄后才能下訂單哦!
Error 309003中提供的密鑰、權限和延遲不滿足聲明的授權該怎么解決,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
當EOS應用開發者在自己新搭建的開發環境中嘗試提交第一個交易時,經常會 碰到3090003錯誤,提示交易授權所需密鑰、權限或延遲不滿足要求:
Error 3090003: provided keys, permissions, and delays do not satisfy declared authorizations Ensure that you have the related private keys inside your wallet and your wallet is unlocked.
這是因為每一個新的EOSIO區塊鏈都有一個默認的系統賬號eosio,該賬戶將被 用來初始化區塊鏈的設置,例如載入管理EOSIO區塊鏈以及共識計算的系統合約。 每一個新的EOSIO鏈都內置一個相同的開發密鑰,需要載入這個密鑰才能以系統 賬號eosio的名義對交易進行簽名。
如果要快速高效地學習EOS應用開發,推薦匯智網的EOS智能合約與DApp開發入門
執行下面的命令載入賬號eosio對應的密鑰:
~$ cleos wallet import 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3
注意:不要在生產環境中使用開發密鑰,因為這個私鑰是公開的!
那么,應該如何修改eosio的默認私鑰?
在nodeos的配置文件(ubuntu默認路徑:~/.local/share/eosio/nodeos/config/config.ini) 中,有一個參數signature-provider
用來定義eosio賬號對應的密鑰對。如果你 沒有修改過的話,看起來就是這樣:
signature-provider = EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV=KEY:5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3
signature-provider
參數的值是一個密鑰對,形式為:
<public-key>=<provider-spec>
<public-key>
是一個有效的EOSIO公鑰字符串,例如:
OS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
<provider-spec>
由兩部分組成:<provider-type>:<data>
。其中<provider-type>
的值可以是KEY或KEOSD,根據這部分的不同,<data>也有所不同。
當<provider-type>
的值設置為KEY時,<data>
的內容應當是與公鑰對應的私鑰字符串; 當<provider-type>
的值設置為KEOSD時,<data>
的內容則應當是keosd錢包的URL,注意這時 對應的錢包還需要解鎖。
因此,你可以使用cleos生成一對密鑰,然后修改signature-provider
就可以 改變eosio的默認私鑰了。
看完上述內容,你們掌握Error 309003中提供的密鑰、權限和延遲不滿足聲明的授權該怎么解決的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。