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


 

好了,上一節我們已經講了關於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
}

5、根據公鑰獲得賬戶列表(./cleos get accounts ${public-key}

 

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

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

注意啊,這里面的關於key的內容,都應該使用你自己生成的密鑰對哇,別瘋瘋癲癲的用我生成的弄哈——即便它也是可以用的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM