EOS入門教程 | 第三章:CPU、NET、RAM到底是什么

CPU&NET | 資源量顯示不準(zhǔn)是怎么回事?

這一節(jié)主要是講解CPU、NET資源的一些細(xì)節(jié)。負(fù)責(zé)的和你講,看完之后最大的作用只是滿足你的好奇心,,,如果不感興趣,可以跳過~ 不會影響之后的閱讀

CPU和NET是都是抵押形資源,使用后24小時會完全恢復(fù)。但我們在使用過程中,經(jīng)常會發(fā)現(xiàn)明明已經(jīng)過去24小時了,可資源使用的數(shù)據(jù)量還是顯示沒有恢復(fù)。這又是怎么一回事呢?

剩余資源為何顯示不準(zhǔn)確?

在EOS賬戶中,CPU和NET的使用量數(shù)據(jù),并不會自動更新。如果你的EOS賬戶最近一直沒有新的操作,比如轉(zhuǎn)賬、抵押等等。那么它的資源使用量數(shù)據(jù),一直都顯示為一個固定的值,并不會更新。是不是感覺很坑爹呀。為什么就不能實(shí)時更新呢?其實(shí)關(guān)于實(shí)時更新這個事,還確實(shí)很難做到。還記得之前計算可用資源量的公式嗎?(見下圖)


由于全網(wǎng)抵押量,一直是一個變量。特別是當(dāng)有大戶進(jìn)行操作的時候,反映到我們的可用資源量波動是非常大的。就算事實(shí)同步,這個數(shù)據(jù)一直在變也是沒什么意義的,而且還要同步還要浪費(fèi)網(wǎng)絡(luò)資源。與其這樣,CPU和NET資源的顯示干脆就放棄了同步。

我相信,在未來全網(wǎng)資源基數(shù)足夠大了之后。我們普通用戶在進(jìn)行一些簡單操作,根本就不用再考慮資源夠不夠的問題。

資源如何恢復(fù)

CPU和NET資源的恢復(fù)周期是24小時。但并不是24小時后一次性復(fù)原,而是逐漸的線性恢復(fù)。由于每個用戶獲得資源的數(shù)量也是動態(tài)變化的。 所以在資源消耗后,實(shí)際系統(tǒng)的判定并不是將資源恢復(fù),而是逐漸減少上一次操作消耗。每過一小時,之前操作的消耗減便減少1/24。直到24小時候后,計算消耗為0。在進(jìn)行操作的時候,只有:

新交易的消耗資源量 + 之前交易之后所記錄下來的資源使用量 <= 系統(tǒng)分配的資源總量

這筆交易才能進(jìn)行。

將資源恢復(fù)的規(guī)則這么設(shè)計,其實(shí)也是為了能更合理的分配資源。畢竟我們每個用戶的資源分配量,本身就一直在變。這里有些繞,我舉個例子大家就清楚了。假設(shè)現(xiàn)在抵押資源的人比較少,我用了1個EOS,獲得了500ms的CPU資源(1EOS = 500ms)。就在此時,我進(jìn)行了各種操作花掉了480ms的資源。而在下一秒,突然有大戶進(jìn)行了資源抵押。系統(tǒng)能分配給我的資源一下子從500ms降到了50ms(1EOS = 50ms)。但我已經(jīng)消耗了480ms,那我此時應(yīng)該有-430ms的cpu(沒錯就是負(fù)數(shù))。

到了一個小時以后,如果我恢復(fù)1/24的資源,就是20ms。這就相當(dāng)于我之前價格,獲得了當(dāng)下的資源。這么做的話,一定會導(dǎo)致整個網(wǎng)絡(luò)資源數(shù)變大。而這顯然是做不到的。所以EOS用減少之前的消耗,代替了恢復(fù)。這么做,可以保證系統(tǒng)的總資源量,一直是恒定的。

?RAM | 這到底是個什么東西

這一節(jié)主要是講解RAM資源的一些細(xì)節(jié)。同樣如果不感興趣,可以跳過~不會影響之后的閱讀

RAM為何物?

在我們的電腦中,RAM是運(yùn)行內(nèi)存。相比較硬盤,他的速度更快,但儲存是暫時的,斷電后內(nèi)容就會消失。在EOS中RAM扮演的角色有些不同,它被作為主儲存層,用來儲存所有的數(shù)據(jù)。這種做法,相當(dāng)于是讓儲存速度更快的內(nèi)存(RAM)充當(dāng)了硬盤的功能。在犧牲一些能源消耗的同時,能大幅的提高性能。在RAM中存儲數(shù)據(jù)庫,可以讓讀取數(shù)據(jù)的速度更快。

知道了RAM的作用,那我們在使用過過程中。都有哪些操作需要消耗RAM呢?與其說一些具體操作。不如通過他作為儲存的性質(zhì)去理解。

啥時候消耗?

硬盤大家平時都接觸過,EOS的RAM的本質(zhì)和硬盤實(shí)際差不多。我們現(xiàn)在把硬盤的儲存空間比喻成一間倉庫的儲存空間,把數(shù)據(jù)比作一件件的貨物。那么什么時候需要消耗存儲空間呢?自然是倉庫要放貨物的時候。比如注冊賬戶的時候,系統(tǒng)要記錄這個賬戶的信息。第一次投票的時候,需要記錄你投票的選擇。第一次收到其他代幣的時候,需要記錄這個合約的一些信息等等。這里要注意的是,如果是別人主動給我的轉(zhuǎn)賬(前提是這幣你手里沒有),那么RAM是他出的。在我們清空這個合約的幣之后,RAM還會返還給他(聯(lián)想到倉庫,不存東西了自然退租呀)。但如果是我們自己領(lǐng)空投,那么RAM需要自己出。

啥時候不用?

這時候你可能問,啥時候消耗這也挺好理解的呀,你干嘛非要舉個例子呀。哈哈,舉例子真正的原因是想讓你清楚,什么時候不消耗RAM。假設(shè)你在倉庫里放了一些白菜,但是最近你白菜吃膩了。于是你把白菜換成了同樣體積的辣白菜。請問:這時候你還要給倉庫付租金嗎?答案是不需要,因?yàn)檎嫉牡胤竭€那么大。吧白菜變成辣白菜的操作,換做內(nèi)存中就是更新了一下數(shù)據(jù)。所以更新數(shù)據(jù)也是不需要占用RAM的。這里面更新數(shù)據(jù)的操作有:更新幣余額,更換私鑰,更新投票狀態(tài),更新...記住,只要是更新。都不需要消耗RAM。

?感謝金馬哥的指導(dǎo)。EOS入門教程持續(xù)更新...??

參考文章:

阿華 | EOS上CPU/帶寬資源使用量是如何計算的?https://bihu.com/article/1794010054

阿華 | EOS賬戶中的 RAM消耗在哪里了?https://bihu.com/article/1880755371

荊凱 |?EOS的CPU/帶寬恢復(fù)周期是多久?https://bihu.com/article/731634


「力場 lichang.io」公鏈挖礦第一社區(qū)!



教程其他內(nèi)容:

EOS入門教程 | 前言:如何閱讀次教程

EOS入門教程 | 第一章:EOS是什么??

EOS入門教程 | 第二章:EOS的賬戶是什么?

EOS入門教程 | 第二章:賬戶系統(tǒng),小老弟與老大哥的區(qū)別

EOS入門教程 | 第三章:資源,驅(qū)動“云電腦”的燃料

EOS入門教程 | 第三章:CPU、NET、RAM到底是什么

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

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

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