EOSIO Dawn3.0 發(fā)布憾儒!
閱讀字?jǐn)?shù): 5923
閱讀所需時(shí)間:10分鐘左右
英文發(fā)布-原文地址:https://medium.com/eosio/eosio-dawn-3-0-now-available-49a3b99242d7(需要梯子剑梳,翻了墻才能看)
Block.one 宣布第一個(gè)功能完善的EOS.IO捺球,Dawn 3.0正式發(fā)布。
(Github 查看地址為:https://github.com/EOSIO/eos/releases/tag/dawn-v3.0.0)
這個(gè)預(yù)先版是今年2018年6月 EOSIO 1.0 正式上線的重要里程碑班巩。我們遍布全球的開發(fā)者正在爭(zhēng)分奪秒地工作渣慕,已確保EOSIO能夠成為Dapp應(yīng)用所依賴的最強(qiáng)區(qū)塊鏈平臺(tái)。距離上一次發(fā)布EOS Dawn 2.0已經(jīng)過去4個(gè)月了抱慌,針對(duì)這4個(gè)月的工作成果逊桦,我們將有許許多多的內(nèi)容要告訴大家。
藝術(shù)般的區(qū)塊鏈架構(gòu)建造過程遥缕,其實(shí)就是一個(gè)我們不斷學(xué)習(xí)不斷改變卫袒,優(yōu)化設(shè)計(jì)的過程宵呛。我們發(fā)布的EOSIO单匣,Dawn 3.0預(yù)先版中,絕大多數(shù)特性事實(shí)上并沒有出現(xiàn)在我們最初的 EOSIO 白皮書中宝穗,但是户秤,這些特性依然是創(chuàng)建高性能,可拓展以及易開發(fā)的區(qū)塊鏈平臺(tái)過程中的一部分逮矛。
可拓展性
可拓展性意味著規(guī)募牛化滿足市場(chǎng)需求的能力。我們團(tuán)隊(duì)每一步都已經(jīng)將未來規(guī)男攵Γ化需求考慮到設(shè)計(jì)里了鲸伴。也就是說府蔗,Dawn 3.0 僅僅實(shí)現(xiàn)了未來EOSIO自身規(guī)模化時(shí)汞窗,潛在優(yōu)化內(nèi)容的一小部分姓赤。我們已經(jīng)將EOSIO設(shè)計(jì)成為可利用并行計(jì)算的方式來加速處理吞吐量,并且沒有硬分叉的變化仲吏。
跨鏈通訊
跨鏈通訊是一個(gè)終極的可拓展特性-類似“圣杯”的感覺-整個(gè)行業(yè)都一直在尋找這樣的協(xié)議解決方案不铆,如側(cè)鏈,Plasma方案和分片方案等等裹唆∈某猓跨鏈通訊支持鏈與鏈之間以一種可證明的安全方式進(jìn)行區(qū)塊事件的真實(shí)性驗(yàn)證。我們最終目標(biāo)就是跨鏈通訊會(huì)和鏈內(nèi)基于智能合約的通訊一樣安全许帐,并且我們已經(jīng)達(dá)成了這個(gè)目標(biāo)劳坑。
以我們的角度來看,跨鏈通訊無非是作為一個(gè)智能合約成畦,并且擁有了執(zhí)行輕客戶端的能力泡垃。輕客戶端是可以不同步整個(gè)區(qū)塊鏈而進(jìn)行區(qū)塊交易驗(yàn)證的。這樣反過來就是使用高效的羡鸥,安全的輕客戶端驗(yàn)證方式來構(gòu)建了一種權(quán)益證明機(jī)制的區(qū)塊鏈蔑穴。因此輕客戶端必須考慮到協(xié)議層的設(shè)計(jì)中,盡管依據(jù)之前的事實(shí)惧浴,很難去落實(shí)存和。
極簡(jiǎn)區(qū)塊頭驗(yàn)證
傳統(tǒng)的輕客戶端是期望通過獲取每個(gè)區(qū)塊頭以及驗(yàn)證和這個(gè)區(qū)塊頭相關(guān)的區(qū)塊頭來驗(yàn)證的。如今衷旅,EOSIO 可以實(shí)現(xiàn)每秒生成2個(gè)區(qū)塊捐腿,并且一個(gè)區(qū)塊鏈獲取每個(gè)區(qū)塊頭需要至少每秒2筆交易的速度。但是柿顶,這個(gè)不適用于相對(duì)較少的跨鏈通訊場(chǎng)景茄袖。為了解決這個(gè)問題,我們創(chuàng)造了創(chuàng)世塊容錯(cuò)機(jī)制的極簡(jiǎn)區(qū)塊頭驗(yàn)證嘁锯。具體來說宪祥,就是系統(tǒng)需要超過三分之二的區(qū)塊生產(chǎn)者都變壞了,然后他們統(tǒng)一意見去嘗試欺騙一個(gè)輕客戶端家乘,才有可能造成系統(tǒng)交易被篡改蝗羊。(舉例,當(dāng)前EOSIO 是 21個(gè)節(jié)點(diǎn)仁锯,然后超過15個(gè)就可能發(fā)生以上描述情況)耀找。更近一步地說,輕客戶端只需要活躍區(qū)塊生產(chǎn)者變化帶來的區(qū)塊頭就可以业崖,并且也包含了相關(guān)的跨鏈信息野芒。這樣就大大地減少了維護(hù)一個(gè)拜占庭容錯(cuò)輕客戶端的開支蓄愁,以及大大增加了跨鏈通訊的效率。
語境自由 Action
語境自由Action是保障跨鏈通訊高效運(yùn)行的關(guān)鍵特性之一狞悲。他們是一種特殊的Action涝登,主要是因?yàn)樗麄兛梢员话揭粋€(gè)交易里,但不依賴區(qū)塊鏈的狀態(tài)效诅,因此胀滚,他們是“自由語境”的。舉個(gè)例子乱投,就是默克爾樹根或簽名的驗(yàn)證咽笼。因?yàn)檫@些計(jì)算是自由語境的,他們可以被平行地驗(yàn)證戚炫,并且這個(gè)計(jì)算是可以通過回滾修改的剑刑。
每個(gè)自由語境Action也都與交易中特殊的可修改數(shù)據(jù)區(qū)域相關(guān)聯(lián)。這就意味著大量默克爾樹根可以被修改双肤,并且他們昂貴的計(jì)算在區(qū)塊回滾中跳過了施掏。
語境自由Action使得我們可以并行與跨鏈通訊相關(guān)的大多數(shù)開支。也使得我們能夠并行和修改一些計(jì)算上比較昂貴隱私技術(shù)的經(jīng)常性費(fèi)用茅糜,如保密交易七芭,“防彈技術(shù)”,零知識(shí)證明等
為了激發(fā)語境自由Action的使用蔑赘,區(qū)塊生產(chǎn)者只會(huì)向用戶收取一小部分CPU使用的費(fèi)用狸驳,收取費(fèi)用的情況: 當(dāng)且僅當(dāng)一次計(jì)算是作為一次語境自由Action執(zhí)行了,而不是一次傳統(tǒng)的交易過程缩赛。
自由語境一致性Action事件(Events)
EOS柚子-黎明2.0(EOSIO Dawn 2.0)開發(fā)團(tuán)隊(duì)一直在尋找的一種方式耙箍,就是借助外部資源來推進(jìn)Events事件的生成。在以太坊中這些Events事件是用來表明一個(gè)合約內(nèi)部操作的結(jié)構(gòu)化信息酥馍。由于自由語境actions的加入辩昆,我們也有潛力完成自由語境一致性actions. 一個(gè)一致性action是由合約代碼產(chǎn)生,并作為當(dāng)前交易的一部分被執(zhí)行旨袒。一個(gè)一致性action 可以被廉價(jià)汁针,以及平行的方式進(jìn)行。因?yàn)樗械腶ctions 都被包含默克爾樹根峦失,所以是有可能來使用這些actions作為驗(yàn)證的通知來傳遞給其他區(qū)塊鏈和外界服務(wù)的扇丛。
交易壓縮
有許多交易是有很多可壓縮的數(shù)據(jù)的术吗。其中一個(gè)不可避免的例子是尉辑,合約的WebAssembly碼。其他的较屿,例如ABI標(biāo)準(zhǔn)規(guī)格以及和一個(gè)賬戶或合約相關(guān)聯(lián)的Ricardian 合約隧魄。有些應(yīng)用卓练,如社交媒體,也同樣期望在區(qū)塊鏈上壓縮用戶產(chǎn)生的內(nèi)容數(shù)據(jù)购啄。
利用交易壓縮襟企,區(qū)塊鏈可以更高效地儲(chǔ)存以及發(fā)送大量交易,最后還可以讓壓縮數(shù)據(jù)的用戶為發(fā)送交易支付更少的費(fèi)用狮含。
Interpreter和JIT編譯
來自Dawn 2.0的最大的變化是WebAssembly運(yùn)行環(huán)境的抽象化顽悼。Dawn 3.0現(xiàn)在默認(rèn)使用Binaryen WebAssembly (https://github.com/WebAssembly/binaryen)而不是更快的JIT編譯器(https://github.co)。這個(gè)決定事實(shí)上減弱了性能但卻增加了穩(wěn)定性和標(biāo)準(zhǔn)一致性几迄,當(dāng)然還是支持在必要的時(shí)候切換到性能更高的JIT編譯器蔚龙。Interpreter也解決了我們?cè)贒awn2.0 時(shí)面對(duì)的一個(gè)重大挑戰(zhàn):由于編譯合約造成的延遲。未來映胁,我們?cè)诰幾g和最優(yōu)化合約的場(chǎng)景下木羹,用起Interpreter會(huì)變慢,但可以縮短等待時(shí)間解孙,和立刻執(zhí)行部署合約坑填。這樣的雙重執(zhí)行下意味著,我們所有的單元測(cè)試都可以運(yùn)用到編譯和解碼過程中弛姜。所以我們發(fā)現(xiàn)了脐瑰,在我們能部署混合方法前,是有潛在的非確定性或者非標(biāo)準(zhǔn)化規(guī)則行為存在的廷臼。
資源測(cè)量率限制
這個(gè)發(fā)布的Dawn 3.0 已經(jīng)擁有一個(gè)完整的新資源率限制系統(tǒng)蚪黑。最大的變化可能是客觀的指令計(jì)數(shù)算法。當(dāng)我們著手去打造EOSIO時(shí)中剩,我們有一個(gè)目標(biāo)就是使用完全主觀的資源速度限制和壓力忌穿。后來,我們發(fā)現(xiàn)结啼,主觀壓力的限制幾乎和一個(gè)更客觀的方式是相同的效果掠剑。當(dāng)用戶要求為客觀的使用而付費(fèi)時(shí),我們現(xiàn)在使用一個(gè)混合的解決方式來處理郊愧。但區(qū)塊生產(chǎn)者也會(huì)在合約中布置主觀的“掛鐘”時(shí)間限制朴译。
我們采納這種方式的原因之一是允許個(gè)人交易,相比以前属铁,可以執(zhí)行更多的計(jì)算∶呤伲現(xiàn)在是,理論上包含單個(gè)交易的一個(gè)區(qū)塊焦蘑,需要100ms去運(yùn)行盯拱,然而在舊模式下,每個(gè)交易必須在1ms以下去運(yùn)行。
速度限制的另一個(gè)改變是狡逢,定義一種代幣的需求從原先的限制中拿走宁舰。這就允許EOSIO可以被應(yīng)用于私有,聯(lián)盟鏈(不需要代幣的場(chǎng)景下)奢浑。公有鏈則可以接受一個(gè)系統(tǒng)合約蛮艰,這個(gè)系統(tǒng)合約可通過股權(quán)的形式來執(zhí)行限制。并且社區(qū)可以動(dòng)態(tài)地升級(jí)雀彼,自己考慮如何根據(jù)強(qiáng)加的分配任務(wù)來單獨(dú)地分配資源壤蚜。
每0.5秒出一次塊 & BFT DPOS 共識(shí)機(jī)制
在Dawn 3.0 中,我們把出塊時(shí)間從3s改到了0.5s徊哑。這個(gè)大大減少了區(qū)塊確認(rèn)前的延遲仍律。通過混合的BFT DPOS 共識(shí)機(jī)制,交易可以不可逆轉(zhuǎn)地在1s被確認(rèn)实柠。不可逆轉(zhuǎn)前的延遲對(duì)于跨鏈通訊有比較嚴(yán)重的負(fù)作用水泉,原因是另一個(gè)區(qū)塊鏈必須在與另一條陌生的鏈結(jié)合前 等待這個(gè)不可逆轉(zhuǎn)的結(jié)果。兩個(gè)基于EOSIO的區(qū)塊鏈可以在3s內(nèi)完成一次往返的通訊窒盐。這樣一個(gè)類似的通過過程在以太坊上要花費(fèi)9分鐘草则,在比特幣上要話費(fèi)3小時(shí)。
BFT DPOS 共識(shí)機(jī)制還沒有被實(shí)踐蟹漓,因?yàn)樗且粋€(gè)非硬分叉的優(yōu)化炕横。我們會(huì)在發(fā)布EOSIO 1.0 之前將 BFT DPOS 共識(shí)嵌入。
BIOS 架構(gòu)
BIOS架構(gòu)是EOSIO Dawn 2.0 到 Dawn 3.0 最大的變化之一葡粒。在 EOSIO Dawn3.0 下份殿,大多數(shù)的區(qū)塊鏈商業(yè)邏輯可以轉(zhuǎn)移到智能合約中,最終社區(qū)可以在沒有硬分叉的前提下嗽交,進(jìn)行動(dòng)態(tài)地升級(jí)卿嘲。一個(gè)“裸露骨頭(最初形態(tài)的)” EOSIO 區(qū)塊鏈?zhǔn)且粋€(gè)單生產(chǎn)者,并且沒有任何代幣夫壁,投票以及DPOS共識(shí)機(jī)制的區(qū)塊鏈拾枣。唯一嵌入到核心區(qū)塊鏈代碼層的是許可系統(tǒng),這個(gè)許可系統(tǒng)具備了創(chuàng)建賬戶盒让,部署合約和強(qiáng)制執(zhí)行資源配置的能力梅肤。關(guān)于區(qū)塊鏈DPOS,以及 代幣邑茄,投票姨蝴,股權(quán)和資源配置的 所有一切都是基于系統(tǒng)合約,由Web Assembly 來定義的肺缕。
借助新的架構(gòu)左医,我們已經(jīng)可以聚焦在靜態(tài)的授帕,非Web Assembly的區(qū)塊鏈開發(fā)了。這些部分對(duì)于區(qū)塊鏈的穩(wěn)定性十分重要炒辉,也是最難去升級(jí)的豪墅。在Dawn 3.0 至 EOSIO 1.0之間泉手,我們會(huì)制定出系統(tǒng)合約黔寇,股權(quán),投票的最終細(xì)節(jié)斩萌。
安全特性
對(duì)于任何計(jì)算機(jī)系統(tǒng)而言缝裤,安全始終是至關(guān)重要的。我們已將EOSIO 設(shè)計(jì)成為市場(chǎng)上最安全的區(qū)塊鏈颊郎。安全是個(gè)多維的憋飞,綜合的考慮,包括黑客攻擊姆吭,硬件損壞榛做,硬件丟失以及忘記密碼。硬件錢包擅長(zhǎng)保護(hù)不被黑客攻擊内狸,但如果他們自己壞了检眯,你的資產(chǎn)將永久被鎖住。還有昆淡,硬件錢包的紙質(zhì)備份可能被偷或丟失锰瘸。
安全延遲交易
EOSIO Dawn 3.0 最重要的功能之一就是添加了 用戶自定義的延遲功能。有了這個(gè)延遲昂灵,一個(gè)交易可以被設(shè)置成數(shù)小時(shí)避凝,或數(shù)天才能執(zhí)行。在這個(gè)延遲階段眨补,用戶可以采取措施管削,利用高級(jí)權(quán)限來重置他們的賬戶,然后取消這個(gè)交易撑螺。這是一個(gè)區(qū)別于其他區(qū)塊鏈的重要提升佩谣,這樣的也就讓你在不知不覺被黑客攻擊的情況下,免得什么挽救措施都做不了实蓬。
丟失密碼的恢復(fù)
任何賬戶都有至少2個(gè)權(quán)限等級(jí):“所有者”和“激活”茸俭。所有者授權(quán)級(jí)別應(yīng)該是一個(gè)N/M 的多方簽名機(jī)制,當(dāng)沒有達(dá)到N的時(shí)候安皱,是沒有所有者鑰匙的调鬓。當(dāng)激活鑰匙被偷或丟失時(shí),所有者權(quán)限級(jí)別可以在任何時(shí)候 重置 激活權(quán)限酌伊。
如果你丟失了所有者鑰匙或者你的多方簽名伙伴不合作了腾窝,這個(gè)賬戶的激活權(quán)限可以在所有者權(quán)限不活躍30天后缀踪,請(qǐng)求一次所有者權(quán)限的重置。然后虹脯,所有者有7天時(shí)間可以通過升級(jí)活躍權(quán)限來挑戰(zhàn)這個(gè)請(qǐng)求驴娃。
在這個(gè)模型下,一個(gè)賬戶所有者的權(quán)限被一個(gè)或多個(gè)硬件錢包控制循集,會(huì)使它對(duì)于黑客攻擊和設(shè)備損壞是安全可靠的唇敞。如果此時(shí)設(shè)備是臺(tái)iphone, 并且有硬件,指紋咒彤,人臉識(shí)別來確保私鑰安全疆柔,那這個(gè)黑客需要說通你的多方簽名伙伴,盜取你的手機(jī)镶柱,偷走你的指紋或人臉旷档。理想狀況下,你的多方簽名伙伴也正在使用生物識(shí)別地方式來確保硬件設(shè)備安全歇拆。
交易提案系統(tǒng)
在用戶可以自由地添加或刪除他們的多方簽名權(quán)限的情況下鞋屈,多方簽名就變得容易多了,而不是像以前傳統(tǒng)交易那樣故觅,要在有限的到期時(shí)間窗口收集到所有簽名厂庇。利用提案系統(tǒng),任何人都可以提出一個(gè)交易逻卖,然后和交易相關(guān)的成員可以簡(jiǎn)單地同意通過宋列。任何時(shí)候,在添加你的同意和獲取閾值之間评也,你的同意是可以被刪除的炼杖。
為了執(zhí)行這個(gè)系統(tǒng), 我們添加了新的api盗迟,這些api是允許合同來評(píng)估一套賬戶的權(quán)限是否足夠充分來授權(quán)一個(gè)交易坤邪。這就可以讓我們通過部署新的WebAssembly這樣的方式來升級(jí)多方簽名進(jìn)程,而不是硬分叉罚缕。
簡(jiǎn)化的合約開發(fā)
EOSIO的目標(biāo)之一就是將合約開發(fā)過程盡量簡(jiǎn)化和輕松艇纺。如果一個(gè)開發(fā)者知道怎么用C++,那他們也能夠參考略微有點(diǎn)復(fù)雜樣板來寫智能合約邮弹。
我們很高興能夠?qū)ⅰ癶ello world”的智能合約實(shí)現(xiàn)代碼演示出來黔衡。我們的工具鏈已經(jīng)可以自動(dòng)化生成合約ABI,并且根據(jù)你的class將用戶的actions發(fā)送到methods腌乡。正在開發(fā)中的合約從未如此簡(jiǎn)單盟劫。
浮點(diǎn)支持
簡(jiǎn)化智能合約開發(fā)部分目的是,使得開發(fā)者需要的數(shù)學(xué)算法更容易實(shí)現(xiàn)与纽。區(qū)塊鏈開發(fā)最難之處在于缺少服點(diǎn)算法和相關(guān)的power,root 以及 三角函數(shù)侣签。很多算法, 如Bancor, 就浮點(diǎn)而言塘装,是更容易去實(shí)踐的幔翰,而不是投入所有的計(jì)算到內(nèi)存密集固定點(diǎn)和容易出錯(cuò)的地方遭铺。
我們通過在WebAssembly 合約中集成一個(gè)軟件浮點(diǎn)权谁,解決了硬件浮點(diǎn)的非確定性茵瀑。利用軟件浮點(diǎn)支持,我們可以獲得確定性的好處欺殿,并且相比于處理復(fù)雜情況下的固定點(diǎn)库正,開發(fā)成本下降了好多绞吁。在很多情況下胀溺,相比于確定性的浮點(diǎn)支持裂七,固定點(diǎn)不是容易出錯(cuò)皆看,就是以更加內(nèi)存固定點(diǎn)形式出現(xiàn)仓坞。
C++ 標(biāo)準(zhǔn)模版庫支持
對(duì)于EOSIO Dawn 3.0, 我們花了很大精力來支持C++標(biāo)準(zhǔn)模版庫。這就意味著腰吟,開發(fā)者可以使用他們熟悉的工具无埃,庫和算法來開發(fā)。同時(shí)毛雇,也避免了由于非標(biāo)準(zhǔn)化執(zhí)行算法所帶來的潛在bug嫉称。
計(jì)劃交易
通過計(jì)劃交易開發(fā)者模式,現(xiàn)在可以提供合約永久運(yùn)行-主要是提供了合同足夠多的寬帶灵疮。其他平臺(tái)要求鏈下的解決方案在一個(gè)恰當(dāng)?shù)臅r(shí)間觸發(fā)合同织阅。通過計(jì)劃交易,我們可以讓開發(fā)者無需自己的服務(wù)器即可充分震捣,自由地使用合同荔棉,并保持合約的運(yùn)行。
自動(dòng)化范圍檢測(cè)
在EOSIO Dawn 2.0這個(gè)版本下蒿赢,每筆交易都必須說明它用到的數(shù)據(jù)范圍润樱。這對(duì)于開發(fā)者而言,是個(gè)容易出錯(cuò)的羡棵,冗長(zhǎng)的地方壹若。而在EOSIO Dawn 3.0 下,區(qū)塊生產(chǎn)者是需要對(duì)使用數(shù)據(jù)范圍負(fù)責(zé)的皂冰,并且需要排解他們店展。這樣就使得交易更小,并且把計(jì)劃性的開支轉(zhuǎn)移到了區(qū)塊生產(chǎn)者秃流,而不是用戶赂蕴,開發(fā)者或所有節(jié)點(diǎn)。
多線程數(shù)據(jù)庫API
EOSIO Dawn 3.0 引入了一個(gè)新的數(shù)據(jù)庫api來監(jiān)控增長(zhǎng)::multi_index_container剔应。使用這個(gè)api就很容易支持?jǐn)?shù)據(jù)庫表了睡腿,一般這個(gè)復(fù)雜的數(shù)據(jù)庫表包含了多重鑰匙语御,查找項(xiàng)目,使用性能的更低席怪,或更高上限应闯,以及在數(shù)據(jù)庫上來回進(jìn)程。這個(gè)新的api使用了迭代器接口挂捻,可以通過掃描表的方式碉纺,大幅提升性能。
性能表現(xiàn)
我們團(tuán)隊(duì)密切關(guān)注著實(shí)際測(cè)試中的性能表現(xiàn)刻撒,事實(shí)上骨田,我們此刻對(duì)實(shí)際性能表現(xiàn)很滿意。我們將EOSIO Dawn 3.0 這個(gè)版本放到不同配置中声怔,來檢測(cè)性能的最低和上限表現(xiàn)态贤。所有的測(cè)試都是基于蘋果設(shè)備和蘋果設(shè)備之間的代幣交易轉(zhuǎn)賬,并可與 比特幣或 以太坊ERC20代幣的復(fù)雜性計(jì)算相對(duì)比醋火。
最差情況-1000 TPS(TPS:每秒交易筆數(shù))
這是我們沒有任何優(yōu)化的最低表現(xiàn)悠汽。我們可以使用多節(jié)點(diǎn)網(wǎng)絡(luò)來解釋單線程簽名驗(yàn)證,并維持超過1000 TPS 的性能芥驳。
平均情況-3000 TPS(TPS:每秒交易筆數(shù))
只要我們打開了JIT編譯器柿冲,我們可以使用多節(jié)點(diǎn)網(wǎng)絡(luò)來解釋單線程簽名驗(yàn)證,并維持超過3000 TPS 的性能兆旬。
最好情況-6000 TPS(TPS:每秒交易筆數(shù))
一旦我們實(shí)踐了并行簽名驗(yàn)證假抄,我們可以假設(shè)隨著并行和簽名數(shù)的增加,每個(gè)簽名的“掛鐘時(shí)間”將為0丽猬。我們可以通過禁用簽名驗(yàn)證的方式宿饱,來模擬這個(gè)環(huán)境。在這樣的模型下宝鼓,我們可以使用JIT編譯器在多節(jié)點(diǎn)網(wǎng)絡(luò)上刑棵,達(dá)到6000 TPS 的情況
理論情況-8000 TPS(TPS:每秒交易筆數(shù))
如果我們從equation中去除網(wǎng)絡(luò)節(jié)點(diǎn),只關(guān)注于關(guān)閉簽名驗(yàn)證的CPU性能愚铡,并且使用JIT編譯器蛉签,我么可以達(dá)到每秒單線程的8000 TPS。如果在單鏈上沥寥,還想達(dá)到更高的TPS碍舍,則需要WebAssembly 的多線程執(zhí)行,即一個(gè)更高級(jí)的Scheduler調(diào)度邑雅。在這樣的場(chǎng)景下片橡,使用Interpreter,而不是JIT淮野,我們可以看到2700 TPS的效捧书。這就暗示著吹泡,僅僅是使用JIT編譯器這樣的簡(jiǎn)單變化,就可以造成交易性能3倍的變化经瓷。這些測(cè)試的執(zhí)行環(huán)境是 MacBook 2.8Ghz i7爆哑。
每秒無限交易量
“每秒交易筆數(shù)”經(jīng)常被定義為 蘋果和橘子的對(duì)比∮咚保基于鏈內(nèi)通訊揭朝,我們可以將工作量拆分許多區(qū)塊鏈,只要我們?cè)敢馍健4鷰趴梢园踩靥陡ぃ尚湃蔚卦诓煌溨g流轉(zhuǎn)。在同一或不同區(qū)塊生產(chǎn)者產(chǎn)生的1000條鏈并行情況下锋恬,我們可以看到屯换,百萬級(jí)別的TPS是可以實(shí)現(xiàn)的。這就代表著之前理論范圍的目標(biāo)已在真實(shí)環(huán)境中實(shí)現(xiàn)伶氢。
我們強(qiáng)烈建議EOSIO的區(qū)塊生產(chǎn)者可以運(yùn)行越來越多的鏈趟径,最終以達(dá)到滿足用戶需求的目的瘪吏。所有的鏈都是可以使用同一個(gè)代幣作為股權(quán)和資源配置的基礎(chǔ)癣防。這就會(huì)基于單個(gè)代幣產(chǎn)生網(wǎng)絡(luò)最大化效應(yīng),并且賦予了高級(jí)市場(chǎng)中的資本化代幣 信任和安全的經(jīng)濟(jì)刺激掌眠。
類似于交易所蕾盯,貨幣以及社交類的應(yīng)用可以在多個(gè)平行的鏈中平衡他們的發(fā)展路徑。
前方的路
EOSIO Dawn 3.0是專注于核心平臺(tái)的穩(wěn)定性蓝丙。下個(gè)月级遭,我們將會(huì)對(duì)最終系統(tǒng)合約的股權(quán),投票以及治理機(jī)制做實(shí)踐準(zhǔn)備渺尘。我們也會(huì)最終確定我們的代幣標(biāo)準(zhǔn)挫鸽。
一旦系統(tǒng)合約達(dá)到我們滿意的程度,我們會(huì)發(fā)布一個(gè)新的公有測(cè)試網(wǎng)絡(luò)鸥跟。到那時(shí)丢郊,我們已經(jīng)大大簡(jiǎn)化了開發(fā)者啟動(dòng)他們自己測(cè)試網(wǎng)絡(luò),以及開發(fā)自己應(yīng)用的流程医咨。接下來幾周枫匾, 我們將會(huì)關(guān)閉當(dāng)前公有測(cè)試網(wǎng)絡(luò),主要原因是我們將開始準(zhǔn)備新的測(cè)試網(wǎng)絡(luò)來盡量減少開發(fā)者疑惑拟淮。
總結(jié)
EOSIO Dawn 3.0 是一個(gè) 擁有穩(wěn)定APIs 服務(wù)干茉,“功能完善”的 開發(fā)者版本。我們相信這個(gè)平臺(tái)目前已經(jīng)足夠穩(wěn)定很泊,已經(jīng)可以滿足一些真正的Dapp應(yīng)用開發(fā)者開始在EOS上構(gòu)建他們自己的應(yīng)用了角虫。相比于一年前沾谓,EOSIO已經(jīng)成為了一個(gè)更加強(qiáng)大和更易上手的開發(fā)平臺(tái)!
我們的團(tuán)隊(duì)在成長(zhǎng)戳鹅,開發(fā)工作也在以創(chuàng)紀(jì)錄地速度進(jìn)行搏屑。在過去的一個(gè)月中,我們EOSIO的repository在所有Github活躍的C++ repository 中是居于前10粉楚。一切的工作都在為今年6月份 EOSIO 1.0 高質(zhì)量地公開發(fā)布而進(jìn)行著辣恋!
小丁翻譯
2018.4.7