2. 如何設定EOS賬號的自定義許可權呢?
給EOS賬戶設定自定義許可權,主要分為兩步,第一步是給賬號新增自定義許可權,第二步是為該許可權關聯相應的操作功能。
下面以給EOS賬號新增一個僅能用於節點投票的自定義許可權 Vote 為例進行詳細的說明。
一、設定自定義許可權
1、使用 Scatter 工具連上 https://eostoolkit.io/ 網站;
2、在設定自定義許可權前,需要先到 Scatter 裡邊設定一下防火牆;
如上圖,在 Settings -> Firewall -> Blacklisted Actions 裡邊,把 eosio 的 updateauth 許可權 remove 掉,即點選 「remove」 按鈕,這樣我們才能更新EOS賬戶的許可權(如新增自定義許可權)。
3、點選左側「Manage Account」,然後點選左邊選單中的 「**Advanced Permissions」** 按鈕;
4、在右側的表單中新增一個許可權,如下圖(預設)
各個欄位的含義如下:
· Account:要新增自定義許可權的賬戶,連線了 Scatter 錢包後,這裡預設會顯示 Scatter 連線的 EOS 賬戶;
· Parent:要新增自定義許可權的父許可權,預設為 Owner,一般來說,我們設定為 Active 就可以了;
· Threshold:閾值,在多設定多籤的時候用,使用預設的1即可;
· Weight:賬戶的權重,預設設定為1;
· Permission:許可權名稱,例如常見的許可權為 Owner 和 Active,這裡預設顯示的是 active,這裡輸入自定義許可權名 Vote;
· Authority:許可權對應的公鑰(也可以是賬戶名,這裡只介紹設定公鑰),這裡輸入公鑰,可以使用 Scatter 的新建金鑰對功能建立金鑰,然後把私鑰儲存好,這裡填入公鑰。
表單中要求的欄位都填寫完畢後,點選下邊的「UPDATE」按鈕,在彈出的scatter框中,點選「接受」,授權 Scatter 傳送交易後,Vote 許可權就新增成功了。
此時,我們在 EOS 區塊瀏覽器查詢賬號許可權資訊時,就可以看到新新增的 Vote 許可權了。
在自定義許可權增加好以後,Vote 許可權還不能進行任何操作,還要給這個許可權關聯一些操作功能(本例為給EOS節點投票的功能)。
二、給自定義許可權關聯相應的操作功能
1、點選左側「Manage Account」下邊的「Link Auth 」按鈕,然後可以看到右側的表單資訊。
各個欄位的含義如下:
Account Name:預設顯示的是 scatter 連線的eos賬戶;
Account Permission:填入自定義許可權的名稱;
Contract Name 和 Contract Action:合約名稱與合約功能。
一些常用功能的 Contract Name 和 Contract Action,都有哪些呢?
可以透過訪問連結:https://blog.eospark.com/system_contract_API_introduction_v1.2.1.html 進行檢視,比較常用的如下:
例如在上面表格的最後一行,合約賬號 eosio 的 Active(操作)voteproducer,具有投票功能。
2、在上面的表單中,填寫相應的資訊:
Account Permission:voteContract
Name:eosioContract
Action:voteproducer
3、填寫完後,點選「LINK AUTH」 按鈕。在彈出的scatter框中,點選「接受」。
至此,自定義許可權 Vote 就具備了投票的功能。成功後,現在可以測試下 Vote 的許可權。
三、測試 EOS 賬號自定義許可權
使用 Vote 許可權關聯的公鑰匯入該 EOS 賬號到 TokenPocket 錢包。
從上圖中可以看到自定義許可權 vote 已經顯示出來了,我們試試轉賬功能。
出現了錯誤提醒,說明自定義許可權 Vote 並不能進行 transfer 轉賬操作。經測試,使用 Vote 許可權確實可以進行投票(如下圖),說明自定義許可權 Vote 設定成功。
有了自定義許可權功能,我們可以根據需要設定特定的許可權,例如可以設定 Vote 許可權只能用於投票、RAM 許可權只能用於購買 RAM 等,可以靈活的實現 EOS 賬戶許可權的分級管理,在一定程度上可以確保 EOS 賬號的安全。