EOS開發(fā)入門2 -- 錢包與賬戶

在開始所有之前,先確定已經(jīng)完成了上一篇文章的內(nèi)容。

EOS開發(fā)入門1 -- EOS環(huán)境搭建

并且保證nodeos在運(yùn)行中。

創(chuàng)建一個(gè)默認(rèn)錢包

$ cleos wallet create
Creating wallet: default
Save password to use in the future to unlock this wallet.
Without password imported keys will not be retrievable.
"PW5JuBXoXJ8JHiCTXfXcYuJabjF9f9UNNqHJjqDVY7igVffe3pXub"

通過cleos命令創(chuàng)建了一個(gè)默認(rèn)的錢包。并返回給我們這個(gè)錢包的秘鑰。每臺(tái)機(jī)器生成的秘鑰跟這個(gè)并不一樣。記錄下這個(gè)秘鑰,之后會(huì)經(jīng)常用到。錢包創(chuàng)建完成后默認(rèn)是鎖定狀態(tài)的,現(xiàn)在我們需要解鎖錢包。

解鎖錢包

$ cleos wallet unlock --password PW5JuBXoXJ8JHiCTXfXcYuJabjF9f9UNNqHJjqDVY7igVffe3pXub
Unlocked: default

使用剛剛給出的秘鑰我們已經(jīng)解鎖了默認(rèn)的錢包。

更安全的解鎖錢包方式

上面解鎖錢包的方式,會(huì)將秘鑰記錄到bash的歷史中,存在安全隱患。更安全的解鎖方式是使用交互方式,按照提示輸入密碼,其實(shí)這里也可以粘貼密碼。

$ cleos wallet unlock
password:

鎖定錢包

出于安全考慮,在不使用錢包時(shí),鎖定錢包。

$ cleos wallet lock
Locked: default

加載Bios合約

eosio.bios是eos自帶的一個(gè)合約,存在于源文件下的/build/contracts/eosio.bios,下面的命令假定當(dāng)前目錄位于源文件的根目錄,當(dāng)然也可以使用絕對(duì)路徑加載這個(gè)合約 ${EOSIO_SOURCE}/build/contracts/eosio.bios

$ cleos set contract eosio build/contracts/eosio.bios -p eosio
Reading WAST...
Assembling WASM...
Publishing contract...
executed transaction: 414cf0dc7740d22474992779b2416b0eabdbc91522c16521307dd682051af083  4068 bytes  10000 cycles
#         eosio <= eosio::setcode               {"account":"eosio","vmtype":0,"vmversion":0,"code":"0061736d0100000001ab011960037f7e7f0060057f7e7e7e...
#         eosio <= eosio::setabi                {"account":"eosio","abi":{"types":[],"structs":[{"name":"set_account_limits","base":"","fields":[{"n...

這個(gè)命令的執(zhí)行結(jié)果是使用兩個(gè)動(dòng)作(action)生成了一個(gè)交易(transaction),這兩個(gè)動(dòng)作是:eosio::setcode和eosio::setabi

稍后我們會(huì)看到動(dòng)作可以被多個(gè)合約處理。

這個(gè)命令的最后一個(gè)參數(shù) -p eosio 的含義是使用eosio賬戶的私鑰對(duì)操作進(jìn)行簽名。

創(chuàng)建賬戶

現(xiàn)在我們已經(jīng)創(chuàng)建了基本的系統(tǒng)合約,接下來我們來創(chuàng)建自己的賬戶。我們將創(chuàng)建兩個(gè)賬戶:user和tester,每個(gè)賬戶都需要一個(gè)秘鑰與其關(guān)聯(lián),這個(gè)例子中,我們將同一個(gè)秘鑰關(guān)聯(lián)到兩個(gè)賬戶。首先生成一個(gè)秘鑰

$ cleos create key
Private key: 5Jmsawgsp1tQ3GD6JyGCwy1dcvqKZgX6ugMVMdjirx85iv5VyPR
Public key: EOS7ijWCBmoXBi3CgtK7DJxentZZeTkeUnaSDvyro9dq7Sd1C3dC4

我們看到生成了一個(gè)秘鑰對(duì),包括一個(gè)私鑰和一個(gè)公鑰。然后將這個(gè)秘鑰對(duì)導(dǎo)入到我們的錢包:

$ cleos wallet import 5Jmsawgsp1tQ3GD6JyGCwy1dcvqKZgX6ugMVMdjirx85iv5VyPR
imported private key for: EOS7ijWCBmoXBi3CgtK7DJxentZZeTkeUnaSDvyro9dq7Sd1C3dC4

確保導(dǎo)入的秘鑰是你自己實(shí)際生成的秘鑰,而不是這里的。

創(chuàng)建兩個(gè)用戶帳號(hào)

接下來,我們將創(chuàng)建兩個(gè)帳戶user和tester,并使用我們上面創(chuàng)建的密鑰。

$ cleos create account eosio user EOS7ijWCBmoXBi3CgtK7DJxentZZeTkeUnaSDvyro9dq7Sd1C3dC4 EOS7ijWCBmoXBi3CgtK7DJxentZZeTkeUnaSDvyro9dq7Sd1C3dC4
...

$ cleos create account eosio tester EOS7ijWCBmoXBi3CgtK7DJxentZZeTkeUnaSDvyro9dq7Sd1C3dC4 EOS7ijWCBmoXBi3CgtK7DJxentZZeTkeUnaSDvyro9dq7Sd1C3dC4
...

cleos create 命令需要兩個(gè)秘鑰,一個(gè)用于OwnerKey,另一個(gè)用于ActiveKey,在本例中,我們給它兩個(gè)相同的秘鑰。

查看帳號(hào)

因?yàn)橐呀?jīng)加載了 eosio::history_api_plugin 插件,我們可以使用命令查看秘鑰控制的帳號(hào)。
插件可以通過兩種方式加載,命令參數(shù)方式和配置文件方式,我們這里是使用的配置文件加載的,所以在命令參數(shù)中并沒有看到。

$ cleos get accounts EOS7ijWCBmoXBi3CgtK7DJxentZZeTkeUnaSDvyro9dq7Sd1C3dC4
{
  "account_names": [
    "tester",
    "user"
  ]
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 賬戶與錢包1.1 創(chuàng)造并管理錢包1.2 生成EOS Keys并導(dǎo)入1.3 備份您的錢包1.4 創(chuàng)建賬戶 2....
    cenkai88閱讀 4,141評(píng)論 1 7
  • 原文鏈接 https://medium.com/eosio/eosio-dawn-3-0-now-availabl...
    ansenyu閱讀 1,540評(píng)論 2 0
  • 先啰嗦幾句:本人區(qū)塊鏈小白一枚,正在自學(xué)EOS應(yīng)用開發(fā)(當(dāng)然目前也沒有培訓(xùn)班培訓(xùn)),我的這個(gè)系列文章是我的學(xué)習(xí)筆記...
    面壁者Z閱讀 2,476評(píng)論 7 5
  • 偷偷潛入的欲望 七月六號(hào)午后的四點(diǎn) 天空黑成了冥界的顏色 太陽無窮的欲望此時(shí) 被這惡貫滿盈的云遮蔽 失去了理智的暴...
    EgoIsRomance閱讀 752評(píng)論 1 2
  • 愿你走出半生,歸來仍是少年 嗨,親愛的,我是未知的你,是你心里的那個(gè)你。也許你還不知道我是誰,那是因?yàn)殛P(guān)于我們...
    太晴明閱讀 403評(píng)論 0 0

友情鏈接更多精彩內(nèi)容