EOS白皮書(shū)解讀(三)

圖片發(fā)自簡(jiǎn)書(shū)App

一、應(yīng)用程序的確定性并行執(zhí)行

1、簡(jiǎn)介:我們知道區(qū)塊鏈最簡(jiǎn)單的理解是一個(gè)公共的賬本,而維護(hù)賬本共識(shí)的核心基礎(chǔ)就是行為的確定性,這意味著如果需要并行計(jì)算,那么所有的并行計(jì)算都不能互斥或加鎖,因?yàn)殒i的狀態(tài)是不確定的。不加鎖,就需要一些方法來(lái)保證所有賬戶只能讀寫(xiě)自己的私有數(shù)據(jù)庫(kù)。這樣每個(gè)賬戶只能讀寫(xiě)自己的私有數(shù)據(jù)庫(kù)。這樣每個(gè)賬戶都必須順序的處理消息,因此EOS的并行級(jí)別是賬戶級(jí)別的。

EOS將消息傳遞組織成獨(dú)立的線程,這樣可以比例容易的評(píng)估線程并行的可能性,因?yàn)槊總€(gè)賬戶的狀態(tài)只取決于傳遞給他們的消息。進(jìn)度表,我這里理解成消息的執(zhí)行順序,這個(gè)順序在區(qū)塊產(chǎn)生后是確定的,而在產(chǎn)生過(guò)程中是不確定的,是由區(qū)塊生產(chǎn)者按照并行算法決定。比如說(shuō)區(qū)塊生產(chǎn)者A生產(chǎn)區(qū)塊,那么消息執(zhí)行順序就由A來(lái)決定,A產(chǎn)生區(qū)塊后,生產(chǎn)者B驗(yàn)證區(qū)塊時(shí)要完全按照A的執(zhí)行順序來(lái)驗(yàn)證。當(dāng)腳本產(chǎn)生一個(gè)消息后不會(huì)被立即傳送,而是會(huì)被安排到下一個(gè)循環(huán),因?yàn)榻邮辗疆?dāng)前可能在另一個(gè)線程內(nèi)主動(dòng)修改自己的狀態(tài)。

2、最小化的通訊延遲:這里的延遲,是指一個(gè)賬戶向另一個(gè)賬戶發(fā)送消息并接收響應(yīng)所需要的時(shí)間,EOS的設(shè)計(jì)目標(biāo)是能夠在一個(gè)區(qū)塊內(nèi)來(lái)回交換消息,那么EOS是如何做到的呢?EOS將區(qū)塊分成了幾個(gè)循環(huán),循環(huán)又分成了多個(gè)線程,每個(gè)線程包含一個(gè)交易列表,每個(gè)交易包含一組要傳遞的消息。這個(gè)結(jié)構(gòu)可以看成為一棵樹(shù),在這個(gè)樹(shù)中交替的層被順序的并行的處理(如圖)

圖片發(fā)自簡(jiǎn)書(shū)App

圖中可以看到,循環(huán)是順序執(zhí)行的,線程是可以并行的,交易和消息是要順序執(zhí)行的,而接受者和被通知的賬戶是可以并行的。為什么接受者和被通知賬戶可以并行呢?

圖片發(fā)自簡(jiǎn)書(shū)App


3、只讀消息處理:EOS對(duì)于無(wú)需更新?tīng)顟B(tài)的消息處理是可以并行的,只要特定的只讀消息處理程序被包含在特定的循環(huán)內(nèi)的一個(gè)或多個(gè)線程就可以。

4、多賬戶的原子交易:有些時(shí)候需要確保消息以原子的方式傳遞給多個(gè)賬戶并需要被其接受。在這種情況下雙邊的消息會(huì)被放在同一個(gè)交易中,兩邊的賬戶也會(huì)被分配在相同的線程,并且消息會(huì)被順序的處理。這樣做的目的是為了確保交易成功,而這其實(shí)會(huì)帶來(lái)性能上的損耗,而且在成本上也會(huì)很高,因此出于性能和成本的考慮,應(yīng)用程序最好能盡力減少涉及兩個(gè)或更多使用率高的賬戶的原子操作。

5、區(qū)塊鏈狀態(tài)的部分評(píng)估:不同于以以太坊所有的全節(jié)點(diǎn)都必須運(yùn)行所有的合約,EOS具備這種允許完整節(jié)點(diǎn)選擇要運(yùn)行的任何程序子集的能力,這樣帶來(lái)一個(gè)好處就是如果我僅僅運(yùn)行一個(gè)小應(yīng)用,那么我可以使用有限資源啟動(dòng)完整節(jié)點(diǎn),比如一個(gè)交易所的開(kāi)發(fā)人員運(yùn)行完整節(jié)點(diǎn),以便向用戶展示交易狀態(tài),這個(gè)程序是不需要與設(shè)計(jì)媒體的程序有狀態(tài)關(guān)聯(lián)的。

6、自主最優(yōu)調(diào)度:EOS不強(qiáng)制區(qū)塊生產(chǎn)者將任何消息發(fā)送給任何其他賬戶,每個(gè)區(qū)塊生產(chǎn)者都可以根據(jù)處理交易所需的計(jì)算復(fù)雜性和時(shí)間作出自己的主觀預(yù)測(cè)。

二、Token模型與資源使用

1、簡(jiǎn)介:所有的區(qū)塊鏈資源都是有限的,需要系統(tǒng)放止濫用。比特幣和以太坊是通過(guò)手續(xù)費(fèi)和gas來(lái)防止濫用的。而EOS提供的資源:a.存儲(chǔ)和帶寬資源.b.計(jì)算和計(jì)算Backlog.c.狀態(tài)存儲(chǔ)

2、客觀與主觀的衡量:a.所有的資源使用約束最終都是主觀的,由塊生產(chǎn)者根據(jù)各自的算法和估計(jì)來(lái)執(zhí)行。b.可以使用客觀的根據(jù)消息或存儲(chǔ)容量來(lái)衡量,也可以自己定義主觀衡量的算法。

3、付費(fèi)策略:a.應(yīng)用不能強(qiáng)制用戶為使用區(qū)塊鏈資源而付費(fèi)。b.同樣的EOS也不會(huì)強(qiáng)制應(yīng)用的收費(fèi)策略。

4、委托能力:a.持有EOS的用戶可能不會(huì)立即使用鏈上資源。b.可以向其他用戶提供或租用這些帶寬。c.區(qū)塊生產(chǎn)者能夠識(shí)別這部分授權(quán),并相應(yīng)的分配帶寬。

5、分離交易成本與Token價(jià)值:a.優(yōu)點(diǎn):應(yīng)用程序的可用帶寬僅取決于Token持有量,跟價(jià)格無(wú)關(guān)。b.只要持有一定數(shù)量的Token,就可以在固定的狀態(tài)和帶寬使用情況下永久的用下去。c.開(kāi)發(fā)者和用戶不會(huì)受到Token市值波動(dòng)的任何影響。(這點(diǎn)是比特幣和以太坊做不到的)d.EOS區(qū)塊鏈?zhǔn)箙^(qū)塊生產(chǎn)者能夠自然地增加每個(gè)Token可用的帶寬,計(jì)算和存儲(chǔ),而不管令牌的價(jià)值如何。e.EOS區(qū)塊鏈每次產(chǎn)生區(qū)塊時(shí)都會(huì)授予區(qū)塊生產(chǎn)者Token。Token的價(jià)值將影響生產(chǎn)者能夠購(gòu)買的帶寬,存儲(chǔ)和計(jì)算量。這個(gè)模型自然會(huì)利用上升的Token價(jià)值來(lái)提高網(wǎng)絡(luò)性能。

6、狀態(tài)存儲(chǔ)成本:a.雖然可以委托帶寬和計(jì)算,但應(yīng)用程序狀態(tài)的存儲(chǔ)將要求應(yīng)用程序人員持有Token.直到該狀態(tài)被刪除。如果狀態(tài)從未被刪除,則Token被有效地從流通中移除。b.每個(gè)用戶賬戶都需要一定的存儲(chǔ)空間。因此,每個(gè)賬戶都必須保持最低的余額。隨著網(wǎng)絡(luò)存儲(chǔ)容量的增加,這個(gè)最低要求的平衡將會(huì)下降。

7、塊獎(jiǎng)勵(lì)和社區(qū)利益應(yīng)用:采用EOS.IO軟件的區(qū)塊鏈將在每次創(chuàng)建時(shí)向塊生產(chǎn)者授予新的Token。在這種情況下,創(chuàng)建的Token數(shù)量由所有塊生產(chǎn)商公布的期望收益的中位數(shù)決定。EOS.IO軟件可能被配置為生產(chǎn)者獎(jiǎng)勵(lì)執(zhí)行上限,使得Token供應(yīng)的年度總增長(zhǎng)不超過(guò)5%

?著作權(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),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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