1. 程式人生 > >EOS開發基礎之三:使用cleos命令行客戶端操作EOS——關於錢包wallet和賬戶account

EOS開發基礎之三:使用cleos命令行客戶端操作EOS——關於錢包wallet和賬戶account

技術 account perm ons vnc HR and limit may

好了,上一節我們已經講了關於wallet的一些基礎操作,基本了解了怎麽去創建一個錢包,怎麽去查看錢包、上鎖和解鎖錢包等,這一節咱們就來開始操作賬戶account吧。

上一節講到了每一個account都需要與兩對密鑰綁定,那麽我們就先給它創建兩對密鑰吧。

1、創建密鑰(./cleos create key

如下圖,創建了密鑰後,我們查看一下wallet中的keys,發現錢包又被鎖上了,解鎖,再看,發現裏面還是只有一個公鑰在裏面:

技術分享圖片

那要怎麽做我們上邊創建的密鑰才會出現在wallet中呢?

這裏有一個key導入的過程,我們需要將上邊創建的兩組密鑰導入到wallet中。

2、向wallet導入key(./cleos wallet import private-key)

這裏導入的key是私鑰,公鑰是可以公開給別人的,錢包是用來存放私鑰的不是用來存錢的,有了私鑰可以生成公鑰。

由於每一個account需要兩對密鑰和它相對應,所以這裏需要導入兩次私鑰,如下圖:

技術分享圖片

完了,忘了上邊解鎖的是simaguang,default這個錢包沒有解鎖。使用上邊的import命令,默認會將私鑰導入到default默認錢包。下邊我們先解鎖default錢包後再來試試。

技術分享圖片

成功將key導入到了錢包裏面,那接下來又幹嘛呢?這還是沒有建立wallet和account之間的聯系啊。下面就看看我們怎麽來創建賬戶吧。

在這之前,我們得把先前創建的兩組密鑰記錄下來:

key1:

Private key: 5J6YHicUZZiEViWe3MCQD2vdCC99WW8VHhCQST5NaHScYQibwLy
Public key: EOS8kLLKdikhpY99EWSj8L8HHLSyE8xiRQW9mZAXxcf5thYK2LCzM

key2:

Private key: 5KKJZzK3fqoHbFFevRrzX7r1Gb8DtvnC82BAZEhrS7aqRtxpkth
Public key: EOS6FwkA7gn9a46LbmJWuRCXdZYW9jznckVKXcZTHYbcFBAB9VcNC

再用./cleos wallet keys查看錢包中的keys:

技術分享圖片

我們發現裏面有三個公鑰——我們明明導入的是私鑰,怎麽看到的是公鑰啊?見鬼啦?呵呵,其實不是的,你的錢包裏的default中同樣存的是私鑰,只是我們使用./cleos wallet keys查看的時候,錢包自動給咱們算出公鑰來了。目的就是避免私鑰泄露。所以,你的私鑰,你一定要記好了,即使導入到錢包了,你還是要記在你自己的小本本上,不然要是你錢包也丟了,那就麻煩事大了……

還有啊,我們剛剛是將私鑰導入到默認錢包default中了,那現在我們想把密鑰也導入到simaguang這個錢包中又怎麽辦呢?

其實,在import後加一個參數就行了:

./cleos wallet import -n simaguang 5J6YHicUZZiEViWe3MCQD2vdCC99WW8VHhCQST5NaHScYQibwLy

./cleos wallet import -n simaguang 5KKJZzK3fqoHbFFevRrzX7r1Gb8DtvnC82BAZEhrS7aqRtxpkth

如下圖:

技術分享圖片

這樣我們就有兩個錢包在存放我們的私鑰了。

3、創建賬戶(./cleos create account ${authorizing_account} ${new_account} ${owner_key} ${active_key}

如上命令中,${authorizing_account}是指創建者賬戶,也就是需要一個老賬戶來創建新賬戶,也就是說在EOS裏面,賬戶不是你想有,想有就能有的,你得找人幫你創建。

我們在配置文件裏面設置了一個賬戶eosio,那我們就用這個已有的賬戶來創建新賬戶吧。

${owner_key}和${active_key}就是上邊我們創建的那兩對密鑰中的公鑰。如下圖:

技術分享圖片

看到了嘛?這賬戶名的命名規則是有要求的——13個字符以內,且只能在.12345abcdefghijklmnopqrstuvwxyz這32個字符中選取,為什麽呢?這和base32這玩意兒有關,回頭我們看程序吧。

4、查看賬戶信息(./cleos get account -j ${accountName}

既然賬戶已經創建好了,那我們現在就來看看這賬戶裏面都存了些啥東西吧。使用./cleos get account -j ${accountName}命令可以查看賬戶信息,其中的-j的意思是使用json格式顯示數據。如下圖:

技術分享圖片

內容如下:

{
"account_name": "simayi",
"privileged": false,
"last_code_update": "1970-01-01T00:00:00.000",
"created": "2018-06-06T08:45:03.000",
"ram_quota": -1,
"net_weight": -1,
"cpu_weight": -1,
"net_limit": {
"used": -1,
"available": -1,
"max": -1
},
"cpu_limit": {
"used": -1,
"available": -1,
"max": -1
},
"ram_usage": 2724,
"permissions": [{
"perm_name": "active",
"parent": "owner",
"required_auth": {
"threshold": 1,
"keys": [{
"key": "EOS6FwkA7gn9a46LbmJWuRCXdZYW9jznckVKXcZTHYbcFBAB9VcNC",
"weight": 1
}
],
"accounts": [],
"waits": []
}
},{
"perm_name": "owner",
"parent": "",
"required_auth": {
"threshold": 1,
"keys": [{
"key": "EOS8kLLKdikhpY99EWSj8L8HHLSyE8xiRQW9mZAXxcf5thYK2LCzM",
"weight": 1
}
],
"accounts": [],
"waits": []
}
}
],
"total_resources": null,
"delegated_bandwidth": null,
"voter_info": null
}

好了,就搞到這裏吧,累了。

接下來的操作得加載智能合約才能搞了,所以,咱們下節見!

EOS開發基礎之三:使用cleos命令行客戶端操作EOS——關於錢包wallet和賬戶account