基于EOS.IO軟件的區(qū)塊鏈中愉粤,一旦啟用并行操作杀迹,塊生產(chǎn)者的工作就是將Action傳遞到獨(dú)立的碎片中,以便可以并行評(píng)估它們校镐。由于生產(chǎn)者生成時(shí)間表的過程不需要是確定性的亿扁。因此,塊生產(chǎn)者可以利用并行算法來(lái)安排交易鸟廓。
區(qū)塊鏈共識(shí)依賴于確定性的行為从祝。所有并行執(zhí)行必須使用互斥鎖或其他鎖定機(jī)制。
2018年6月發(fā)布的EOS軟件版本將是單線程的引谜,但它已預(yù)留實(shí)現(xiàn)了多線程并行執(zhí)行所需的數(shù)據(jù)結(jié)構(gòu)牍陌。
平行執(zhí)行時(shí),當(dāng)一個(gè)腳本生成一個(gè)新的Action時(shí)煌张,不會(huì)立即被傳遞呐赡,而是在下一個(gè)周期中傳遞。原因是因?yàn)榻邮辗娇赡苷谥鲃?dòng)修改其他分片中的狀態(tài)骏融。
?最大限度地減少通信延遲
延遲時(shí)間是指一個(gè)帳戶向另一個(gè)帳戶發(fā)送操作并接收響應(yīng)所需的時(shí)間链嘀。為了讓兩個(gè)賬戶能夠在一個(gè)塊內(nèi)而非塊與塊之間來(lái)回交換Actions,EOS.IO軟件將每個(gè)塊分成多個(gè)周期档玻。每個(gè)周期分為碎片怀泊,每個(gè)碎片包含一個(gè)事務(wù)列表。每筆交易都包含一組要交付的行動(dòng)误趴。
一個(gè)周期內(nèi)生成的交易可以在后續(xù)任何周期或塊中交付霹琼。塊生產(chǎn)者將持續(xù)增加周期到塊,直到最大掛鐘時(shí)間已過或者沒有新生成的事務(wù)要交付凉当。
可以使用塊的靜態(tài)分析來(lái)驗(yàn)證在給定周期內(nèi)沒有兩個(gè)分片包含修改相同帳戶的事務(wù)枣申。只要保持該不變量,可以通過并行運(yùn)行所有碎片來(lái)處理塊看杭。
處理程序只讀操作
如果某些帳戶只通過以只讀操作方式處理Action忠藤,那么這些處理程序可以并行執(zhí)行,只要特定帳戶的只讀操作處理程序包含在特定周期內(nèi)的一個(gè)或多個(gè)分片中楼雹。
多帳戶原子交易
有時(shí)候我們需要保證多賬號(hào)操作的原子性收發(fā)模孩,將兩個(gè)操作都放置在一個(gè)交易中尖阔,并且這兩個(gè)帳戶將分配相同的分片并按順序操作。
評(píng)估區(qū)塊鏈狀態(tài)
區(qū)塊鏈技術(shù)需要組件是模塊化的榨咐。每個(gè)人都不應(yīng)該運(yùn)行一切介却,特別是如果他們只需要使用一小部分應(yīng)用程序。
交易所應(yīng)用程序開發(fā)人員運(yùn)行完整節(jié)點(diǎn)以向其用戶顯示交換狀態(tài)块茁。此交易所應(yīng)用程序不需要與社交媒體應(yīng)用程序相關(guān)的狀態(tài)齿坷。EOS.IO軟件允許任何完整節(jié)點(diǎn)選擇要運(yùn)行的應(yīng)用程序的任何子集。如果應(yīng)用程序不依賴于其他合同的狀態(tài)龟劲,則交付給其他應(yīng)用程序的操作將被安全忽略胃夏。
最佳調(diào)度
EOS.IO軟件不允許區(qū)塊生產(chǎn)商將任何操作交付給任何其他帳戶轴或。每個(gè)塊生產(chǎn)者對(duì)處理交易所需的計(jì)算復(fù)雜性和時(shí)間做出自己的主觀預(yù)測(cè)昌跌。這決定于交易是由用戶生成還是由智能合約自動(dòng)生成。
?EOS.IO軟件的區(qū)塊鏈中照雁,在網(wǎng)絡(luò)層面上蚕愤,所有交易都根據(jù)執(zhí)行的WASM指令數(shù)量來(lái)計(jì)算帶寬成本。但是饺蚊,EOS系統(tǒng)上的每個(gè)塊生產(chǎn)者可以使用他們自己的算法和度量來(lái)計(jì)算資源使用情況萍诱。當(dāng)一個(gè)區(qū)塊生產(chǎn)者得出結(jié)論:一個(gè)交易或賬戶消耗了不成比例的計(jì)算能力時(shí),可以在生產(chǎn)自己的區(qū)塊時(shí)污呼,拒絕該交易; 但是裕坊,如果其他區(qū)塊生產(chǎn)商認(rèn)為其有效,他們?nèi)詫⑻幚斫灰住?/p>
一般來(lái)說燕酷,在資源使用限制下籍凝,1個(gè)區(qū)塊生產(chǎn)者認(rèn)為交易有效,則所有其他區(qū)塊生產(chǎn)者也將接受它苗缩,但交易可能需要1分鐘才能找到該生產(chǎn)者饵蒂。
在某些情況下,生產(chǎn)者可能會(huì)創(chuàng)建一個(gè)塊酱讶,其中包括處于可接受范圍之外的數(shù)量級(jí)的交易退盯。在這種情況下,下一個(gè)區(qū)塊生產(chǎn)者可以選擇拒絕該區(qū)塊泻肯,并且該聯(lián)盟將被第三個(gè)生產(chǎn)者打破渊迁。這與如果大塊導(dǎo)致網(wǎng)絡(luò)傳播延遲會(huì)發(fā)生什么不同。社區(qū)會(huì)注意到一種濫用模式灶挟,并最終取消惡意者的投票琉朽。
這種計(jì)算成本的主觀評(píng)估方式,使得區(qū)塊鏈不必精確地和確定地測(cè)量運(yùn)行需要多長(zhǎng)時(shí)間膏萧。根據(jù)這個(gè)設(shè)計(jì)漓骚,就沒有必要精確計(jì)算能夠在不違反共識(shí)的情況下大幅增加優(yōu)化機(jī)會(huì)的指令蝌衔。??
延時(shí)交易
EOS.IO軟件支持在未來(lái)某個(gè)時(shí)間才執(zhí)行的延時(shí)交易操作。這使計(jì)算能夠移動(dòng)到不同的分片或創(chuàng)建長(zhǎng)時(shí)間持續(xù)交易的運(yùn)行的流程蝌蹂。
上下文免費(fèi)操作
上下文無(wú)關(guān)操作取決于交易數(shù)據(jù)的計(jì)算噩斟,而不取決于區(qū)塊鏈狀態(tài)。例如孤个,簽名驗(yàn)證是一種只需要交易數(shù)據(jù)和簽名以確定簽署交易的公鑰的計(jì)算剃允。這是區(qū)塊鏈必須執(zhí)行的最昂貴的單個(gè)計(jì)算之一,但由于此計(jì)算是上下文無(wú)關(guān)的齐鲤,因此可以并行執(zhí)行斥废。
上下文無(wú)關(guān)操作與其他用戶的Actions類似,只是它們無(wú)法訪問區(qū)塊鏈狀態(tài)來(lái)執(zhí)行驗(yàn)證给郊。這不僅使EOS.IO能夠并行處理諸如簽名驗(yàn)證等所有上下文無(wú)關(guān)操作牡肉,更重要的是,這可以實(shí)現(xiàn)通用的簽名驗(yàn)證淆九。?
通過支持上下文自由操作统锤,諸如分片,雷電炭庙,閃電饲窿,狀態(tài)通道等的可伸縮性技術(shù)變得更加實(shí)用。這種方式實(shí)現(xiàn)了區(qū)塊鏈間的高效通信和潛在的無(wú)限可擴(kuò)展性焕蹄。
幣乎注冊(cè)領(lǐng)KEY啦逾雄,獎(jiǎng)勵(lì)豐厚,趕緊看看腻脏!
https://zt.bihu.com/?id=297768