UOS系列教程:賬戶、錢包、權限更改
首先,假設您有一個UOS賬號,以及安裝了UOS節點程序的電腦。如果沒有
官方申請:請下載“優壹號” app
節點安裝(ubuntu 16.04):
1, wget ftp://tools.ulord.one/UOS_Mainnet.tar.gz
2,tar -zxvf~/UOS_Mainnet.tar.gz
3,chmod +x ~/uos/noduos ~/uos/cluos ~/uos/kuosd ~/uos/install.sh ~/uos/uninstall.sh ~/uos/mongodb/bin/mongod
4,sudo ~/uos/install.sh
uos的賬戶是由數字1-5,小寫字母a-z組成,普通用戶的長度為12位,小於12位的賬戶叫做“短號”,需要競拍獲得。
一:賬戶組成
我們使用命令行查看一個UOS鏈上的任一賬戶,比如“aaaaaaaaaaaa”
cluos -u https://rpc3.uosio.org:8080 get account aaaaaaaaaaaa created: 2019-01-29T08:13:31.000 permissions: owner 1: 1 UOS5RCcMUXDKNk9YQDq2CNxG68LF9zRYVn21o7s2TWb7BNFnJDzUk active 1: 1 UOS7wHa9AjtNuys1PquLbEBGgnvLHig4YyspDwdW1wtJfWWMGBdVo memory: quota: 7.37 KiB used: 3.756 KiB net bandwidth: staked: 0.1000 UOS (total stake delegated from account to self)delegated: 0.0000 UOS (total staked delegated to account from others) used: 129 bytesavailable: 67.11 MiB limit: 67.11 MiB cpu bandwidth:staked: 0.1000 UOS (total stake delegated from account to self)delegated: 0.0000 UOS (total staked delegated to account from others) used: 2.271 ms available: 14.26 sec limit: 14.26 sec UOS balances: liquid: 7.1000 UOS staked: 0.2000 UOS unstaking: 0.0000 UOStotal: 7.3000 UOS producers:staked: 0.2000 UOS<not voted> total: 0.0000 UOS
可以看到賬戶的許多信息,包含:
1,賬戶"aaaaaaaaaaaa"創建與2019年1月29日
2,賬戶owner權限的公鑰是“UOS5RCcMUXDKNk9YQDq2CNxG68LF9zRYVn21o7s2TWb7BNFnJDzUk”
3,賬戶active權限的公鑰是“UOS7wHa9AjtNuys1PquLbEBGgnvLHig4YyspDwdW1wtJfWWMGBdVo” 4,賬戶的可用余額為7.1UOS
5,賬戶的cpu以及net的抵押數量接下來,將用此賬號創建一個新的賬號,並且更改它的權限。
二,錢包
命令行運行:
kuosd
大約5s,關閉此進程"ctrl+c",這時會在用戶目錄生成uosio-wallet文件夾,這個文件夾就是錢包文件夾。一個錢包文件夾里頭可以包含多個錢包,現在我們在文件夾里面創建兩個錢包,錢包的名稱分別為testera,testerb。
cluos wallet create -n testera --to-console Creating wallet: testera Save password to use in the future to unlock this wallet. Without password imported keys will not be retrievable. "PW5KMVW7A9LUnfxe1YPf2krHcRMbrVGBQZUzVHoBbke7rLkLZDbZB" cluos wallet create -n testerb --to-console Creating wallet: testerb Save password to use in the future to unlock this wallet. Without password imported keys will not be retrievable. "PW5JCBNM89tUkfbimh5foFAf3XFnhRdffohK6wcDVYMCfh9jJ1gQH"
"-n"是名稱的意思,這樣,我們就在錢包文件夾創建了兩個錢包:”testera“和”testerb“。可以使用如下命令查看:
cluos wallet listWallets: [ "testera *" , "testerb *" ]
可以看到,錢包文件夾里面已經包含名為”testera“和名為”testerb“的錢包了。這個時候,錢包文件夾里面是沒有任何私鑰的,僅僅定義了兩個名稱而已。想要使用賬戶“aaaaaaaaaaaa”創建一個新的賬戶,必須把賬戶的私鑰導入到錢包里面,這樣程序才能使用錢包里面私鑰授權“aaaaaaaaaaaa”創建賬戶的行為。“*”代表錢包未被鎖定。
將賬戶“aaaaaaaaaaaa”的owner權限的私鑰導入錢包testerb中,其中“xxxxxxx”代表私鑰
cluos wallet import -n testerb --private-key xxxxxxxx
查看testerb錢包中收藏的公私鑰對:
cluos wallet private_keys -n testerb
然后輸入上文中testerb錢包的密碼:
PW5JCBNM89tUkfbimh5foFAf3XFnhRdffohK6wcDVYMCfh9jJ1gQH(可以粘貼一次性輸入)
結果如下:
password: [[ "UOS5RCcMUXDKNk9YQDq2CNxG68LF9zRYVn21o7s2TWb7BNFnJDzUk", "xxxxxxxx" ]]
這樣我們就可以對賬號"aaaaaaaaaaaa"進行操作了。假如在某些過程中,錢包提示鎖定。可以用如下命令解鎖:
cluos wallet unlock -n testerb --password PW5JCBNM89tUkfbimh5foFAf3XFnhRdffohK6wcDVYMCfh9jJ1gQH
三,創建賬戶
先生成一個公私鑰對,然后用記事本保存下來:
cluos create key --to-consolePrivate key: xxxxxxxxxxxxPublic key: UOS5AmeHzY6jreyPLKFaAj4hPSETSNvx2afC4K8w5pydPXDLkSVUE
然后搜遍腦袋想了一個名字“baodaotulong”,心想這個不錯,武林至尊,寶刀屠龍。然后在鏈上查看是否賬號已經存在:
cluos -u https://rpc3.uosio.org:8080 get account baodaotulong
返回一個錯誤,確實不存在。。。。然后調用命令,因為上文中導入的是owner公鑰,故簽名時使用的owner權限,即@owner。owner權限是向下包含active權限的。
cluos -u https://rpc3.uosio.org:8080 system newaccount aaaaaaaaaaaa --transfer baodaotulong UOS5AmeHzY6jreyPLKFaAj4hPSETSNvx2afC4K8w5pydPXDLkSVUE UOS5AmeHzY6jreyPLKFaAj4hPSETSNvx2afC4K8w5pydPXDLkSVUE --stake-net "0.1000 UOS" --stake-cpu "0.1000 UOS" --buy-ram-kbytes 4 -p aaaaaaaaaaaa@owner
這條命令解釋為:aaaaaaaaaaaa創建一個baodaotulong的賬號,該賬號的owner公鑰為UOS5AmeHzY6jreyPLKFaAj4hPSETSNvx2afC4K8w5pydPXDLkSVUE,active公鑰為:UOS5AmeHzY6jreyPLKFaAj4hPSETSNvx2afC4K8w5pydPXDLkSVUE,aaaaaaaaaaaa出錢給其購買4K內存,抵押0.1UOS的cpu和net。
這樣,baodaotulong就創建成功了。要使用baodaotulong這個賬號,同樣也需要他的私鑰導入錢包。
cluos wallet import -n testerb --private-key xxxxxxxx
同樣可以查看testerb錢包,這樣testerb錢包中就擁有了兩個公私鑰對:
cluos wallet private_keys -n testerbpassword: [[ "UOS5AmeHzY6jreyPLKFaAj4hPSETSNvx2afC4K8w5pydPXDLkSVUE", "xxxxxxxx" ],[ "UOS5RCcMUXDKNk9YQDq2CNxG68LF9zRYVn21o7s2TWb7BNFnJDzUk", "xxxxxxxxx" ]]
接下來可以賣出一部分內存試試能否操作baodaotulong賬戶了:
cluos -u https://rpc3.uosio.org:8080 system sellram baodaotulong 500 -p baodaotulong@active
executed transaction: 4c55852428b3910411d51cccdf8dc3fbaae3c1c2d091b9583f30b740674fe475 112 bytes 1544 us # uosio <= uosio::sellram {"account":"baodaotulong","bytes":500}# uosio.token <= uosio.token::transfer {"from":"uosio.ram","to":"baodaotulong","quantity":"1.3717 UOS","memo":"sell ram"} # uosio.ram <= uosio.token::transfer {"from":"uosio.ram","to":"baodaotulong","quantity":"1.3717 UOS","memo":"sell ram"} # baodaotulong <= uosio.token::transfer {"from":"uosio.ram","to":"baodaotulong","quantity":"1.3717 UOS","memo":"sell ram"} # uosio.token <= uosio.token::transfer {"from":"baodaotulong","to":"uosio.ramfee","quantity":"0.0069 UOS","memo":"sell ram fee"} # baodaotulong <= uosio.token::transfer {"from":"baodaotulong","to":"uosio.ramfee","quantity":"0.0069 UOS","memo":"sell ram fee"} # uosio.ramfee <= uosio.token::transfer {"from":"baodaotulong","to":"uosio.ramfee","quantity":"0.0069 UOS","memo":"sell ram fee"} # uosio <= uosio::payfee {"payer":"baodaotulong","net_usage":112,"virtule_net_limit":2097152000,"act_account":"uosio","act_na...warn 2019-03-29T08:57:45.730 thread-0 main.cpp:487 print_resuwarning: transaction executed locally, but may not be confirmed by the network yet
四,更改權限
武俠迷小明出了1000個UOS想跟我購買這個baodaotulong的這個賬戶。小明向我提供了一個公鑰UOS5A4sYXU6SA5kyKjbu76r9xapgrzotjhLEgPSZzDzMBJpw1559Y。於是,我運行如下命令,更改了baodaotulong的權限,這樣我就不再擁有baodaotulong的控制權了。
cluos -u https://rpc3.uosio.org:8080 set account permission baodaotulong active '{"threshold":1,"keys":[{"key":"UOS5A4sYXU6SA5kyKjbu76r9xapgrzotjhLEgPSZzDzMBJpw1559Y","weight":1}],"accounts":[]}' owner -p baodaotulong@owner
cluos -u https://rpc3.uosio.org:8080 set account permission baodaotulong owner '{"threshold":1,"keys":[{"key":"UOS5A4sYXU6SA5kyKjbu76r9xapgrzotjhLEgPSZzDzMBJpw1559Y","weight":1}],"accounts":[]}' -p baodaotulong@owner
小明查看了baodaotulong的賬戶:
cluos -u https://rpc3.uosio.org:8080 get account baodaotulong created: 2019-03-29T08:46:56.000 permissions: owner 1: 1 UOS5A4sYXU6SA5kyKjbu76r9xapgrzotjhLEgPSZzDzMBJpw1559Y active 1: 1 UOS5A4sYXU6SA5kyKjbu76r9xapgrzotjhLEgPSZzDzMBJpw1559Y .....
小明發現賬戶的owner和active權限都由自己提供的公鑰組成,愉快的通過優壹號轉給了我1000UOS
|