EOS基礎(chǔ)全家桶(六)賬號管理

簡介

本篇我們會學(xué)習(xí)最基本的賬號相關(guān)的操作,包括了創(chuàng)建賬號和查詢,關(guān)于賬號資源的操作因?yàn)楸仨毾炔渴鹣到y(tǒng)合約墨榄,所以我們會留到后面單獨(dú)寫一篇來講解。

6-EOS基礎(chǔ)全家桶(六)賬號管理

簡介

賬號介紹

賬號名介紹

資源介紹

補(bǔ)充說明genesis.json

創(chuàng)建賬號

創(chuàng)建系統(tǒng)級賬號

創(chuàng)建普通賬號

查詢賬號

查詢賬號基本信息

查詢余額

賬號介紹

EOS的設(shè)計(jì)與以往的其他區(qū)塊鏈有很大的不同勿她,傳統(tǒng)區(qū)塊鏈上使用的賬號都是直接使用公鑰袄秩,而EOS使用了最多13位長的簡短賬號名,并以此擴(kuò)展出了賬號權(quán)限的功能逢并。

賬號名介紹

傳統(tǒng)的公鑰賬號之剧,可以不用在鏈上創(chuàng)建賬號而直接使用,匿名性也更強(qiáng)砍聊,使用起來更有科技感背稼,可惜,缺點(diǎn)也很明顯玻蝌,完全無法靠大腦來記憶蟹肘,賬號只是單密鑰對词疼,所以無法擴(kuò)展權(quán)限,只能借助智能合約帘腹。為了解決難記憶的問題寒跳,人們又設(shè)計(jì)出了助記詞,可惜12個(gè)單詞的組合竹椒,也不夠人性童太。

EOS的賬號設(shè)計(jì)很人性化,最長13位胸完,可以使用24個(gè)小寫字母和1-5的數(shù)字书释,特殊賬號還可使用.字符,你完全可以創(chuàng)建一個(gè)有特定意義的賬號名赊窥。系統(tǒng)設(shè)計(jì)還增加了一個(gè)短號的競拍市場爆惧,而短號又能創(chuàng)建出短號后綴的特殊靚號。這一系列設(shè)計(jì)都讓賬號的可玩性和收藏性增加了锨能,同時(shí)更便于記憶扯再。

賬號的安全性同樣是用了ECC的非對稱加密產(chǎn)生的密鑰對,默認(rèn)有owner和active兩個(gè)內(nèi)置權(quán)限址遇,owner是最高權(quán)限熄阻,active默認(rèn)操作權(quán)限,在創(chuàng)建時(shí)可以配置不同的公鑰倔约,也就提升了賬號的安全性秃殉,我們只讓active的私鑰觸網(wǎng),即使被盜浸剩,我們還可以使用owner權(quán)限將active的公鑰替換了钾军。傳統(tǒng)的區(qū)塊鏈賬號,一旦私鑰被盜绢要,就意味著這個(gè)賬號已經(jīng)無法再正常使用了吏恭。

但是EOS的賬號設(shè)計(jì)也有比較明顯的問題,賬號必須通過EOS鏈來創(chuàng)建重罪,而你要上鏈樱哼,又必須有EOS賬號,所以蛆封,新用戶無法獨(dú)自完成賬號的創(chuàng)建唇礁。

資源介紹

EOS賬號增加了CPU、NET和RAM的設(shè)定惨篱,這本身更符合EOS(Enterprise Operation System盏筐,企業(yè)級操作系統(tǒng))的設(shè)定,這些資源的設(shè)定本身都是為了使系統(tǒng)可以維持健康砸讳,就像以太坊上有Gas費(fèi)用琢融,來防止鏈上的惡意交易并增加交易確認(rèn)的及時(shí)性界牡。EOS中的資源同樣增加了惡意交易的代價(jià),保證了全網(wǎng)良性的生態(tài)漾抬,同時(shí)賦予了EOS通證的概念宿亡,讓持有EOS的人可以獲得更大的權(quán)益和便利。

內(nèi)存必須通過市場進(jìn)行買賣纳令,采用班科(Bancor)算法來保證內(nèi)存價(jià)格符合市場需求挽荠。而CPU和Net則是通過EOS抵押,讓全網(wǎng)資源的使用代價(jià)降低了平绩,而抵押獲得的CPU量隨全網(wǎng)抵押而波動(dòng)圈匆,符合全網(wǎng)運(yùn)算能力的要求捏雌,3天的贖回期給予全網(wǎng)一定的緩沖期跃赚。CPU和Net是可再生資源,在一個(gè)窗口期內(nèi)用完了沒事性湿,隨著時(shí)間推移會慢慢恢復(fù)的纬傲。

這些設(shè)定都是很前衛(wèi)的,但是仍然存在著無法預(yù)期的情況肤频,EOS主網(wǎng)這兩年出現(xiàn)過2次重大的CPU資源短缺問題叹括,特別是2019年10月的這次,持續(xù)長達(dá)5個(gè)月的CPU短缺着裹,只因一個(gè)交易挖礦的合約领猾,面對這樣突然的情況,EOS的主創(chuàng)b1采用了讓市場自動(dòng)調(diào)控骇扇。加之EOS價(jià)值的升高,都使得EOS主網(wǎng)的使用代價(jià)越來越高面粮。

補(bǔ)充說明genesis.json

這里要補(bǔ)充一下前面啟動(dòng)節(jié)點(diǎn)沒提到的一個(gè)文件genesis.json文件少孝,這個(gè)是創(chuàng)世配置文件,里面的配置都是關(guān)于鏈的基本配置熬苍,chainid也是根據(jù)此文件生成的稍走,所以這個(gè)文件不同,產(chǎn)生出來的就是不同的運(yùn)行鏈柴底。EOS程序默認(rèn)有一套配置婿脸,所以你在啟動(dòng)節(jié)點(diǎn)時(shí)沒有指定--genesis-json同樣可以啟動(dòng)成功。下面這個(gè)配置就是EOS主鏈的配置柄驻。

{

? "initial_timestamp": "2018-06-08T08:08:08.888",

? "initial_key": "EOS7EarnUhcyYqmdnPon8rm7mBCTnBoot6o7fE2WzjvEX2TdggbL3",

? "initial_configuration": {

? ? "max_block_net_usage": 1048576,

? ? "target_block_net_usage_pct": 1000,

? ? "max_transaction_net_usage": 524288,

? ? "base_per_transaction_net_usage": 12,

? ? "net_usage_leeway": 500,

? ? "context_free_discount_net_usage_num": 20,

? ? "context_free_discount_net_usage_den": 100,

? ? "max_block_cpu_usage": 200000,

? ? "target_block_cpu_usage_pct": 1000,

? ? "max_transaction_cpu_usage": 150000,

? ? "min_transaction_cpu_usage": 100,

? ? "max_transaction_lifetime": 3600,

? ? "deferred_trx_expiration_window": 600,

? ? "max_transaction_delay": 3888000,

? ? "max_inline_action_size": 4096,

? ? "max_inline_action_depth": 4,

? ? "max_authority_depth": 6

? }

}

注意到里面有個(gè)initial_key了吧狐树,這個(gè)就是初始賬號eosio的公鑰,我們在啟動(dòng)節(jié)點(diǎn)時(shí)使用的配置文件中有個(gè)配置signature-provider = EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV=KEY:5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3這個(gè)就是默認(rèn)的eosio的owner密鑰對鸿脓,開發(fā)環(huán)境我們都是使用這個(gè)密鑰抑钟。

我們將啟動(dòng)節(jié)點(diǎn)中配置的這個(gè)eosio的私鑰導(dǎo)入錢包涯曲,準(zhǔn)備后續(xù)我們創(chuàng)建賬號使用。

創(chuàng)建賬號

EOS創(chuàng)建賬號一定需要使用一個(gè)已存在的賬號來創(chuàng)建在塔,所以幻件,你無論在哪個(gè)網(wǎng)絡(luò)上創(chuàng)建賬號,只能讓有賬號的人幫你創(chuàng)建或者支付一定的費(fèi)用來幫你創(chuàng)建蛔溃。EOS主網(wǎng)上目前提供了很多創(chuàng)建賬號的渠道绰沥,也有很多三方提供了支付創(chuàng)建賬號甚至免費(fèi)創(chuàng)建賬號的功能。

如果大家還沒有EOS主網(wǎng)的賬號贺待,我建議你通過幾個(gè)主流錢包來獲得一個(gè)廉價(jià)且獨(dú)特的個(gè)人賬號揪利,比如TokenPocket。當(dāng)然狠持,你也可以購買一個(gè)特別后綴的短號疟位,當(dāng)你有賬號后,還可以進(jìn)入EOS的賬號市場中進(jìn)行競拍來獲得靚號喘垂。

注意:因?yàn)镋OS創(chuàng)建賬號需要使用已有賬號來創(chuàng)建甜刻,所以該操作是需要交易簽名的,在調(diào)用命令前正勒,需要解鎖導(dǎo)入了用于創(chuàng)建賬號的賬號私鑰的錢包得院。

創(chuàng)建系統(tǒng)級賬號

在初始啟動(dòng)節(jié)點(diǎn)后,我們就可以使用內(nèi)置的默認(rèn)賬號eosio來創(chuàng)建其他新的賬號了章贞,前面在補(bǔ)充說明genesis.json已經(jīng)導(dǎo)入了eosio的私鑰到錢包中祥绞。

我們現(xiàn)在可以使用cleos create account命令來創(chuàng)建系統(tǒng)賬號了,系統(tǒng)賬號有一個(gè)很特別的特點(diǎn)鸭限,就是賬號資源都是無限的蜕径,沒有內(nèi)存限制,CPU和Net都是-1(表示無限)败京。在開發(fā)階段兜喻,這種賬號其實(shí)非常好用,開發(fā)合約的過程中赡麦,會大量使用到內(nèi)存等資源朴皆,所以創(chuàng)建系統(tǒng)賬號可以很好的用于合約測試。

我們現(xiàn)在創(chuàng)建一個(gè)賬號astaldo泛粹。

cleos create account eosio astaldo EOS6nbWS7ZReiPMdMABoEmVBYanyTMb3GYRQGsTRMCYx9vijWoaS3 EOS6nbWS7ZReiPMdMABoEmVBYanyTMb3GYRQGsTRMCYx9vijWoaS3

其中eosio是用于創(chuàng)建新賬號時(shí)使用的賬號遂铡,目前創(chuàng)建的是系統(tǒng)級賬號,所以只能使用eosio賬號來創(chuàng)建晶姊,后面的兩個(gè)公鑰分別是新賬號的owner和active的公鑰扒接。

創(chuàng)建普通賬號

創(chuàng)建普通賬號需要先部署系統(tǒng)合約,也就是eosio.system合約,但是這需要很多的配置珠增,并創(chuàng)建好所有系統(tǒng)賬號……這塊功能可以單獨(dú)寫一篇文章了超歌,所以我會在后面單獨(dú)寫一篇《EOS部署系統(tǒng)合約的完全啟動(dòng)》。

這里我簡單提一下如何通過cleos來創(chuàng)建普通賬號蒂教。需要用到cleos system newaccount命令巍举,因?yàn)椴渴鹆讼到y(tǒng)合約,創(chuàng)建賬號的功能會覆蓋了程序默認(rèn)賬號創(chuàng)建入口凝垛,所以創(chuàng)建系統(tǒng)級賬號的方法也就不能直接用了懊悯,要更換成這個(gè)新命令了。命令有很多參數(shù)梦皮,我先說明下核心參數(shù)炭分,其他的大家可以使用--help查看幫助。

#基礎(chǔ)結(jié)構(gòu)

cleos system newaccount [OPTIONS] creator name OwnerKey [ActiveKey]

creator 指定用于創(chuàng)建賬號的EOS賬號剑肯,也就是用于支付資源開銷的賬號

name 新賬號的賬號名

OwnerKey 指定新賬號的Owner權(quán)限的公鑰

ActiveKey 可選捧毛,默認(rèn)和Owner的公鑰一致,為了提升安全性让网,建議設(shè)置不同的公鑰

OPTIONS 參數(shù)有很多呀忧,這里重點(diǎn)關(guān)注以下幾個(gè):

—stake-net 創(chuàng)建時(shí)為新賬號質(zhì)押的NET

—stake-cpu 創(chuàng)建時(shí)為新賬號質(zhì)押的CPU

—buy-ram-kbytes 創(chuàng)建時(shí)為新賬號購買的內(nèi)存

—transfer 創(chuàng)建時(shí)抵押的資源是否轉(zhuǎn)移給新賬號,默認(rèn)是為他人抵押溃睹,可被原賬號收回

如果我要使用eosastaldo11創(chuàng)建一個(gè)eosastaldo12而账,可以使用以下命令,這里我使用了jungle網(wǎng)絡(luò)的節(jié)點(diǎn)地址因篇。

cleos -u "http://jungle2.cryptolions.io" system newaccount --stake-net '1 EOS' --stake-cpu '10 EOS' --buy-ram-kbytes 1000 eosastaldo11 eosastaldo22 EOS8h8YD7956jYf99BV6kBit5d9461xaxyTf9HPxmARcnTEnFivY8 EOS7DhW1StAhprCBwpAfgMpmHuN2H3V8t4B45tzQtEYckHRr5CASN

我們?yōu)閑osastaldo12初始抵押了10EOS的CPU和1EOS的NET泞辐,購買了1MB的內(nèi)存,使用了兩個(gè)不同的公鑰為別作為owner和active竞滓「篮穑可以看到,創(chuàng)建賬號時(shí)發(fā)生了很多的內(nèi)聯(lián)交易虽界,包括了內(nèi)存的購買汽烦、CPU和Net的抵押。

查詢賬號

賬號的基本信息是存在于鏈上系統(tǒng)表里的莉御,而其他的賬號信息,比如EOS余額都是在相應(yīng)的合約表里的俗冻,所以查詢的方式都是不同的礁叔。

查詢賬號基本信息

賬號的基本信息包含了賬號的創(chuàng)建時(shí)間、權(quán)限分配迄薄、資源使用和抵押情況琅关。可以直接通過cleos get account命令來查看。

我們現(xiàn)在來查詢下eosio這個(gè)系統(tǒng)賬號涣易,cleos get account eosio画机。

可以看到在系統(tǒng)級賬號的memory是無限的(unlimited),Net和CPU也都是無限的新症。privileged為true說明了這個(gè)是個(gè)特權(quán)賬號步氏。

我們再來查詢下EOS主網(wǎng)上的一個(gè)賬號b1,這個(gè)就是大名鼎鼎的EOS創(chuàng)始人的賬號徒爹。

cleos -u http://eospush.tokenpocket.pro get account b1

可以看到b1的內(nèi)存太大了有將近32G呢荚醒,還有那Net和CPU的抵押,staked表示抵押的EOS隆嗅,delegated他人為其抵押的EOS界阁,used表示已使用的資源數(shù),available是目前還可用的資源數(shù)胖喳,limit是當(dāng)前資源的上限泡躯。可以說b1的資源都近似于無限了丽焊。另外b1的權(quán)限下有多個(gè)key较剃,這個(gè)我們會在權(quán)限管理的文章里面詳細(xì)說明。

查詢余額

查詢賬號余額是需要通過查詢合約粹懒。EOS上為了更方便的發(fā)行Token重付,所以從EOS的發(fā)行就采用了合約的形式,這為所有的Token發(fā)行提供了一個(gè)官方模板凫乖,符合標(biāo)準(zhǔn)Token合約結(jié)構(gòu)的都可以使用cleos的查詢余額的命令确垫。

標(biāo)準(zhǔn)查詢命令

我們首先學(xué)習(xí)使用標(biāo)準(zhǔn)Token的余額查詢命令cleos get currenty balance,需要指定Token的合約名帽芽,賬號名和Token的符號删掀。

我們來查詢下EOS的主網(wǎng)中b1的EOS余額吧。

cleos -u http://eospush.tokenpocket.pro get currency balance eosio.token b1 EOS

EOS的合約使用的是eosio.token导街,使用的Token符號就是EOS披泪。我們從圖上可以看到,b1的余額有650萬還多的EOS搬瑰,真的是有錢啊款票。

合約查詢

合約查詢是要以我們了解合約的表結(jié)構(gòu)為前提,我們需要知道合約賬號泽论,需要知道表名和scope艾少,還要知道Token的符號,如果不是標(biāo)準(zhǔn)的Token合約的話翼悴,我們就需要了解合約代碼了缚够,這個(gè)我們在后面合約學(xué)習(xí)的時(shí)候再細(xì)講。我們使用合約表查詢命令cleos get table。

我們已知EOS的合約賬號是eosio.token谍椅,余額存在于accounts表误堡,scope就是賬號名。

我們還是來查詢EOS主網(wǎng)的b1的EOS余額雏吭。

cleos -u http://eospush.tokenpocket.pro get table eosio.token b1 accounts

可以看到返回的默認(rèn)是json格式的表數(shù)據(jù)锁施,rows就是數(shù)據(jù)行,一般只會有一條數(shù)據(jù)思恐,而且只有一個(gè)字段沾谜,就是balance。

原文鏈接

更多內(nèi)容請關(guān)注微信公眾號


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末胀莹,一起剝皮案震驚了整個(gè)濱河市基跑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌描焰,老刑警劉巖媳否,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異荆秦,居然都是意外死亡篱竭,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進(jìn)店門步绸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來掺逼,“玉大人,你說我怎么就攤上這事瓤介÷来” “怎么了?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵刑桑,是天一觀的道長氯质。 經(jīng)常有香客問我,道長祠斧,這世上最難降的妖魔是什么闻察? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮琢锋,結(jié)果婚禮上辕漂,老公的妹妹穿的比我還像新娘。我一直安慰自己吴超,他們只是感情好钮热,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著烛芬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上赘娄,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天仆潮,我揣著相機(jī)與錄音,去河邊找鬼遣臼。 笑死性置,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的揍堰。 我是一名探鬼主播鹏浅,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼屏歹!你這毒婦竟也來了隐砸?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤蝙眶,失蹤者是張志新(化名)和其女友劉穎季希,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體幽纷,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡式塌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了友浸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片峰尝。...
    茶點(diǎn)故事閱讀 39,703評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖收恢,靈堂內(nèi)的尸體忽然破棺而出武学,到底是詐尸還是另有隱情,我是刑警寧澤派诬,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布劳淆,位于F島的核電站,受9級特大地震影響默赂,放射性物質(zhì)發(fā)生泄漏沛鸵。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一缆八、第九天 我趴在偏房一處隱蔽的房頂上張望曲掰。 院中可真熱鬧,春花似錦奈辰、人聲如沸栏妖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吊趾。三九已至宛裕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間论泛,已是汗流浹背揩尸。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留屁奏,地道東北人岩榆。 一個(gè)月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像坟瓢,于是被迫代替她去往敵國和親勇边。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內(nèi)容