日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

愿码(ChainDesk.CN):EOS钱包开发 五使用cleos工具管理账号权限

發布時間:2023/12/29 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 愿码(ChainDesk.CN):EOS钱包开发 五使用cleos工具管理账号权限 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


在上一篇文章中,我們創建了一個新錢包并導入了一對公私鑰,但是該錢包中并沒有賬號,在EOS區塊鏈中創建賬號是很扯蛋的事,必須使用已有的EOS賬號才能創建新的EOS賬號,使創建賬號的時候便于扣費,因為創建的賬號數據會占用區塊鏈生產節點的內存資源,所以每創建一個EOS新賬號都需要其他EOS賬號消耗一定量的EOS來幫忙創建。那么我們找誰來創建呢?誰又有EOS賬號呢?

  • EOS主網中,最初始的EOS賬號由EOS主網在映射階段創建完成。
  • 在本地網絡中,最初始的EOS賬號在系統啟動的時候就自動被創建了一個超級用戶——eosio。

我們是在本地網絡中進行開發,所以我們將使用eosio超級賬號去創建新賬號。

一、創建賬號

下面我們將要創建賬號lixu

我們錢包中是沒有eosio賬號的,但是可以通過命令行工具cleos去創建賬號。在環境搭建的一篇文章的我們在default錢包中已經能夠使用eosio賬號了,創建的新賬號由錢包應用程序中新建的mywallet1錢包中的私鑰對控制,公鑰為EOS8RPRLzktF2fHH14R3HDcsvVnq9m2XGQUiZ2EjvneqqkuFZdqDy,私鑰是5HrqHYGMPn36zk3mqNU1tmuQrD2SQHxCGdCMjBFBkJ815tjxmS2

?

第一步:我們須解鎖eosio賬號所在的錢包。

?

?

第二步:查看創建賬號命令的說明cleos create account

根據輸出可知:

  • 創建賬號需要購買ram、帶寬,在本地網絡中可以不用購買,無限制的使用資源,在稍后我們驗證這個說法。
  • 創建賬號的完整命令是cleos create account [OPTIONS] creator name OwnerKey [ActiveKey]
  • Positionals結構中包含四個字斷:
  • creator TEXT(必填):創建者賬號的名稱。
  • name TEXT(必填) :新賬號的名稱。
  • OwnerKey TEXT(必填):新賬號的owner權限的公鑰。
  • ActiveKey TEXT(可選):新賬號的active權限的公鑰,默認與owner權限的公鑰一致。
  • Options結構中有很多可選參數,介紹一下比較常用的幾個:
  • -d:是不廣播到網絡。
  • -j:是返回為json格式的數據。
  • -s:是交易數據不經過簽名。
  • -p:是指定簽名的賬號以及權限,默認是active權限。
  • -h:是幫助命令。

第三步:我們創建的第一個賬號的owner權限和active權限都使用前面的這一對公私鑰控制即可,新賬號名稱為lixu,所以創建賬號的完整命令如下:

?

?

二、新增權限

下面我們將要新增賬號lixuvoting權限。

現在賬號liux的有自帶的兩個原生權限:owner權限與active權限,owner擁有很多功能給的操作權限,如:轉賬、投票、購買ram等等,我們可以將其中一個或多個功能,比如將投票權任命給一個自定義權限voting。那么無須owner、active權限所對應的私鑰對投票操作進行簽名,單單通過voting權限所對應的私鑰對投票操作進行簽名便可完成投票操作。

?

第一步:查看賬號lixu的權限分配,使用命令cleos get account lixu

?

可知在本地網絡中可以無限制的使用資源,我們現在只關心“permissions”的內容,在后面我們會切換到真實的測試網絡中開發,然后重點介紹后面各項的含義與作用。

第二步:查看新增權限命令的說明cleos set account permission

?

根據輸出可知:

  • 創建賬號的完整命令是cleos set account permission [OPTIONS] account permission authority [parent]
  • Positionals結構中包含四個字斷:
  • account TEXT(必填):設置/刪除權限的帳戶。
  • permission TEXT(必填) :設置/刪除權限的權限名稱。
  • authority TEXT(必填):若刪除則是NULL、創建/更新則是公鑰、JSON字符串或者文件名。
  • parent TEXT(可選):該權限的父權限的權限名,默認為active。
  • Options結構中的可選參數與之前介紹的一樣,

第三步:新建一對公私鑰控制voting權限

?

第五步:新增權限后再次查看賬號lixu的權限分配。

到此我們已經完成了給一個賬號新建權限并指定控制的公鑰的功能。

?

三、新增權限控制的主體

1. 如何新增權限控制的主體

新增權限控制的主體有三種方式:公私鑰對、賬號、延遲,這里我們只介紹常見的前面兩種。

下面我們新增賬號lixuactive權限控制的主體。

初始時每個權限只有一個主體(一對公私鑰),我們可以修改權限由多個主體控制,這樣做的目的在于讓多個主體共同控制一個權限的功能,即多簽,只有當主體(一對公私鑰)的權重大于等于閥值才能擁有該權限進行相應操作。

修改權限控制的主體需要傳遞的是json字符串或者json文件,那么json字符串的數據結構是怎么樣的呢?如下:

?

每個字斷的解釋如下:

?

我們可以選擇性的設置權限的控制權,但是必須要按照如下規則進行修改:

  • 嚴格按照上面的json數據結構設置
  • 修改的公鑰、賬號必須按照從小到大進行排序,如:EOS67Z…需在EOS7dm簽名。
  • 所有控制體的權重的和必須大于等于閥值。

2. 新增權限控制的主體:公私鑰對

第一步:新建一對公私鑰作為active權限的另一個主體。

?

第三步:新增權限控制的主體后再次查看賬號lixu的權限分配。

?

現在兩個主體都可以操作active權限的功能,因為它們的權重等于閥值。

3. 新增權限控制的主體:賬號

使用tester的owner權限作為賬號lixu的active權限的一個主體,分配的權重仍為1,完整的命令如下

四、修改閥值

接下來我們通過修改賬號lixuactive權限的閥值為2,實現多簽的功能。

第一步:測試賬號lixuactive權限的

EOS8RPRLzktF2fHH14R3HDcsvVnq9m2XGQUiZ2EjvneqqkuFZdqDy主體是否擁有它的(active)功能。

?

因此,現在必須同時擁有active的兩個主體才能使用active權限的功能,因為兩個主體的權重分別為1,加起來才等于acrive權限的閥值2。現在有哪些辦法可以使用active權限呢?

  • 使用-p lixu@owner簽名。
  • 修改改主體的權重大于等于active權限的閥值。
  • 將另外個私鑰導入到該錢包。

?

五、修改權重

下面我們修改

EOS8RPRLzktF2fHH14R3HDcsvVnq9m2XGQUiZ2EjvneqqkuFZdqDy

主體的權重為2。

現在該主體的權重為1不能使用active的功能,所以將它的權重改為與active的閥值一樣,以使它能使用該權限。但是想要修改active的權限,需要active簽名,或者它的父權限owner簽名,那么只好使用owner簽名了,否則修改失敗。

完整的命令如下:

?

此時active的閥值為2,另外一個主體EOS7dmF...權重還是1,不能單獨使用active,必須與主體

EOS8RPR...共同簽名方可使用。

?

六、多重簽名

前面的步驟都是單簽名完成的操作,如何實現多簽名呢?就是使用多個私鑰一起對交易進行簽名。那么下面我們重新配置一下該賬號的active權限。

現在active的三個主體的權重都小于閥值,不能單獨使用active權限。上面介紹了有三種辦法可以使用active權限,第一、二種已經使用過了,并且不是沒有使用到多重簽名,接下來我們使用最后種方式——將另外個私鑰導入到該錢包來實現多重簽名。

需要導入tester的owner權限的私鑰到mywallet1錢包。現在mywallet1錢包就擁有權重為2的主體

EOS8RPR...,與權重為1的主體test的owner權限,主體權重就一共為3等于了active閥值,然后就可以使用多重簽名操作active權限了。

?

七、總結

每個權限都會有一個閥值,初始時為1。權限下的每對公私鑰都會有一個權重,初始時每個權限只有一對公私鑰且權重為1。后續賬戶可以修改權限的閥值,可以對每個主體(即每對EOS公私鑰或賬號)分配不同的權重,還可以修改權限由多個主體管理。只有當公私鑰的權重大于等于閥值才能擁有該權限進行相應操作。

版權聲明:博客中的文章版權歸博主所有,未經授權禁止轉載,轉載請聯系作者(微信:lixu1770105)取得同意并注明出處。

本文地址:?https://chaindesk.cn/witbook/2/22

?


愿碼(ChainDesk.CN)——連接每個程序員的故事

“愿碼”以線上社區線下實戰型人才加速器相結合,立志打造全球最大的IT實戰型多元化復合型人才生態圈。

免費技術交流群:263270946

技術提升、快速轉型請關注微信公眾號:愿碼


?

總結

以上是生活随笔為你收集整理的愿码(ChainDesk.CN):EOS钱包开发 五使用cleos工具管理账号权限的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。