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

 

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

上一節講到了每個account都須要與兩對密鑰綁定,那麼咱們就先給它建立兩對密鑰吧。ui

一、建立密鑰(./cleos create keyspa

以下圖,建立了密鑰後,咱們查看一下wallet中的keys,發現錢包又被鎖上了,解鎖,再看,發現裏面仍是隻有一個公鑰在裏面:code

那要怎麼作咱們上邊建立的密鑰纔會出如今wallet中呢?blog

這裏有一個key導入的過程,咱們須要將上邊建立的兩組密鑰導入到wallet中。get

 

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

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

因爲每個account須要兩對密鑰和它相對應,因此這裏須要導入兩次私鑰,以下圖:ast

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

成功將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

以下圖:

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

 

三、建立帳戶(./cleos create account ${authorizing_account} ${new_account} ${owner_key} ${active_key}

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

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

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

 

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

 

四、查看帳戶信息(./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
}

五、根據公鑰得到帳戶列表(./cleos get accounts ${public-key}

 

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

接下來的操做得加載智能合約才能搞了,因此,我們下節見!

注意啊,這裏面的關於key的內容,都應該使用你本身生成的密鑰對哇,別瘋瘋癲癲的用我生成的弄哈——即使它也是能夠用的。

相關文章
相關標籤/搜索