EOS42 聯(lián)合多名投票代理聯(lián)合發(fā)起的 EOS 投票人賞金計(jì)劃(EVB),旨在以投票激勵(lì)的方式易桃,促進(jìn) EOS重要基礎(chǔ)設(shè)施的開發(fā)。
如今有 18 位投票代理(總計(jì)約 2,800 萬票)參與進(jìn)來拒课,表示有意使用自己的投票權(quán),投票支持構(gòu)建開源的全歷史解決方案或創(chuàng)建備用節(jié)點(diǎn)性能測(cè)試方案的團(tuán)隊(duì),并且有6個(gè)團(tuán)隊(duì)正式提交了提案纠炮。詳情請(qǐng)見正文一罩。
我們也邀請(qǐng)更多的代理和團(tuán)隊(duì)參與進(jìn)來杨幼,一起促進(jìn) EOS 的發(fā)展。
EOS 投票人賞金計(jì)劃(EOS Voter Bounties, 下文簡(jiǎn)稱為 EVB)的最初愿景是聚攏投票力量以投票激勵(lì)的方式聂渊,為開發(fā)后缺乏收入回報(bào)的 EOS 重要基礎(chǔ)設(shè)施提供”資金“支持其開發(fā)工作差购。
EOS 社區(qū)很快就團(tuán)結(jié)起來為這一設(shè)想提供了支持。有 18 位投票代理(總計(jì) 2,800 萬票)參與進(jìn)來汉嗽,表示有意使用自己的投票權(quán)欲逃,投票支持構(gòu)建開源的全歷史解決方案或創(chuàng)建備用節(jié)點(diǎn)性能測(cè)試方案的團(tuán)隊(duì)。
EVB 的公告發(fā)出后饼暑,很快就有多個(gè) BP 與我們聯(lián)系稳析,如今正式提交了六項(xiàng)提案,兩個(gè)懸賞項(xiàng)目各自有三個(gè)提案弓叛。
點(diǎn)擊此處Google 文檔彰居,查看當(dāng)前參與的代理。
有問題或者想法撰筷,或者想?yún)⑴c其中討論陈惰?點(diǎn)擊加入 EVB 電報(bào)交流群
下文列表中的提案,按照提交順序排列毕籽。
針對(duì)全歷史節(jié)點(diǎn)開源方案的賞金計(jì)劃
Rio Hyperion
EOS RIO 團(tuán)隊(duì)提出的全歷史解決方案已接近開發(fā)完成抬闯,即將部署。Hyperion 方案會(huì)從操作(action)數(shù)據(jù)中移除冗余與無關(guān)的字段信息影钉,顯著壓縮數(shù)據(jù)集的同時(shí)画髓,也保留了所有的重要信息。
EOS Rio 及其他 BP 也提出了新的 API 標(biāo)準(zhǔn)以提升不同的區(qū)塊歷史解決方案及 dApp 之間的互操作性平委。
EOS Blocksmith/EOS Detroit 的提案
Blocksmith 和 EOS Detroit 提出了一個(gè)歷史插件解決方案奈虾,可以將數(shù)據(jù)從 chain 插件流向 Riak 分布式數(shù)據(jù)存儲(chǔ)中,實(shí)現(xiàn)高容錯(cuò)性廉赔。此外肉微,這一分布式方案也更容易對(duì)讀取數(shù)據(jù)請(qǐng)求進(jìn)行橫向擴(kuò)展。
EOS Nariobi & EOS South Africa(EOS ZA)
EOS Nairobi 與 EOS South Africa (EOS ZA) 表示將合作開發(fā)一個(gè) 基于 Cassandra 的開源歷史解決方案蜡塌。該方案將受益于 Cassandra 的優(yōu)勢(shì)碉纳,獲得橫向擴(kuò)展性,穩(wěn)定一致的查詢性能馏艾,使用普通硬件以節(jié)省成本和壓縮數(shù)據(jù)劳曹。如果他們能得到足夠的支持奴愉,他們計(jì)劃于 4 月 20 日開始開發(fā),預(yù)計(jì) 2019 年 7 月 1 日前實(shí)現(xiàn)一個(gè)具備可用功能的解決方案铁孵。
討論
上述所有方案均具備技術(shù)可行性锭硼,不過,我們更推薦 EOS Rio 的 Hyperion 這一解決方案蜕劝。Hyperion 已經(jīng)開發(fā)了數(shù)月檀头,并且已經(jīng)可供測(cè)試。EOS Rio 也運(yùn)行著一個(gè)流式 websocket API岖沛,并且還計(jì)劃發(fā)布一個(gè)運(yùn)行在 Hyperion 之上的分析層暑始。結(jié)合這些特性,我們相信 Hyperion 解決了當(dāng)前以及未來在運(yùn)行全歷史節(jié)點(diǎn)時(shí)所遇到的問題婴削。
我們也推薦采納這一方案的歷史節(jié)點(diǎn)提供者使用 History API v2 這一標(biāo)準(zhǔn)廊镜,這將使dApp開發(fā)人員更容易提供一致的用戶體驗(yàn)。
雖然 EOS Rio 最初計(jì)劃將 Hyperion 閉源馆蠕,但現(xiàn)在他們決定發(fā)布 Hyperion 的源代碼期升,參與 EVB 計(jì)劃。參與EVB計(jì)劃的代理允諾 EOS Rio 可以繼續(xù)運(yùn)行免費(fèi) API 集群互躬,為多條鏈提供高可用性的服務(wù)播赁。
針對(duì)備選節(jié)點(diǎn)隨機(jī)測(cè)試方案的賞金計(jì)劃
ChainRift EOS
ChainRift EOS 的解決方案包含兩階段。
第一階段無需修改系統(tǒng)代碼吼渡,采用自主選擇加入(opt-in)的方式容为。代理或者用戶可以自主選擇加入,為 ChainRift 所開發(fā)的合約添加特定的權(quán)限寺酪。
該機(jī)制下會(huì)分配一個(gè)投票名額坎背,將隨機(jī)選擇一個(gè)備選節(jié)點(diǎn)選入前21名之列。所有參與的代理會(huì)自動(dòng)協(xié)商寄雀,隨機(jī)選擇相同的備選 BP得滤。
如果最終能夠達(dá)成共識(shí)可以進(jìn)行軟分叉更改,ChainRift 將做好進(jìn)一步的變更準(zhǔn)備盒犹,會(huì)用到在第一階段中已經(jīng)部署和經(jīng)過實(shí)地測(cè)試的合約懂更。
第二階段會(huì)涉及到將一個(gè)出塊順序選擇智能合約合并到 EOS 系統(tǒng)合約中,并且可以將丟塊的備選節(jié)點(diǎn)自動(dòng)踢除(強(qiáng)制備選節(jié)點(diǎn)出塊或者不再接受獎(jiǎng)勵(lì))急膀。如果丟塊的備選節(jié)點(diǎn)馬上重新注冊(cè)成為 BP沮协,但是經(jīng)測(cè)試仍然丟塊的話,接下來的15天內(nèi)將無法再次注冊(cè)為 BP (細(xì)節(jié)有待討論)卓嫂。
在自主選擇加入(opt-in)的情況下慷暂,如果BP無法出塊,EOS42 所提出的 regproducer 合約第八款將適用于這一機(jī)制晨雳。軟分叉解決方案不需要 BP 介入行瑞。regproducer 合約中的第八款會(huì)列出被取消的 BP 若不具備出塊能力卻重新注冊(cè)為 BP的話奸腺,會(huì)在多長(zhǎng)時(shí)間內(nèi)無法注冊(cè)。
開發(fā)時(shí)間: 3 個(gè)月時(shí)間用于開發(fā)合約蘑辑,開發(fā)隨機(jī)信標(biāo)需要 6 個(gè)月.
NodeOne
NodeOne 提議使用特定的測(cè)試網(wǎng)絡(luò)作為預(yù)言機(jī)(oracle)洋机,測(cè)試出塊節(jié)點(diǎn)是否準(zhǔn)備就緒。所有的 BP 都必須在測(cè)試網(wǎng)絡(luò)上運(yùn)行節(jié)點(diǎn)洋魂。在測(cè)試網(wǎng)絡(luò)上的出塊結(jié)果會(huì)廣播到一個(gè)網(wǎng)站上。
開發(fā)時(shí)間: 不到 1 個(gè)月
持幣人投票和 BP 會(huì)使用強(qiáng)制的模式喜鼓。如果 BP 無法出塊副砍,則適用 EOS42 所提議的 regproducer 合約的第八條,用于這一機(jī)制庄岖。
Liberty Block
Liberty Block 所提出的這一解決方案需要硬分叉豁翎。有收入的 BP 會(huì)進(jìn)入到出塊區(qū)域。會(huì)對(duì)排名 22–25位的節(jié)點(diǎn)進(jìn)行測(cè)試隅忿。第 21 名的出塊節(jié)點(diǎn)會(huì)具備簽署 BP 多簽的標(biāo)準(zhǔn)授權(quán)心剥。Liberty Block會(huì)嘗試盡可能降低對(duì)出塊順序的變更,僅在需要時(shí)才變動(dòng)背桐。
額外目標(biāo)(3月31日補(bǔ)充):
第 21 名出塊節(jié)點(diǎn)會(huì)保留對(duì) eosio.prods 多簽的全部投票權(quán)限优烧。實(shí)現(xiàn)輪換而無需觸發(fā)schedule的變更(保持 IBC 的緊湊性)。
開發(fā)時(shí)長(zhǎng): 需要獲得4個(gè)月支持链峭。需要提交全員提案畦娄。
如果 BP 無法出塊,EOS42 所提議的 regproducer 合約的第八款將會(huì)特別用于此機(jī)制弊仪。
概括討論
NodeOne 的解決方案深思熟慮熙卡,但在單獨(dú)網(wǎng)絡(luò)上運(yùn)行節(jié)點(diǎn)會(huì)增加額外開銷。另外励饵,對(duì)備選節(jié)點(diǎn)在測(cè)試網(wǎng)絡(luò)上進(jìn)行測(cè)試驳癌,并不能證明在主網(wǎng)上這些節(jié)點(diǎn)也做好了毫秒級(jí)出塊的準(zhǔn)備(注: EOS 出塊速度為 500 ms)。
此外役听,這一方案也需要就使用測(cè)試網(wǎng)絡(luò)用于這些測(cè)試目的進(jìn)行協(xié)調(diào)一致颓鲜。這一方案下,強(qiáng)制執(zhí)行仍然需要通過 BP 進(jìn)行強(qiáng)制禾嫉,或者經(jīng)過代幣持有者投票灾杰。
從理論上講 Liberty Block 的解決方案是最好的,而且可以說本應(yīng)當(dāng)成為 EOS 網(wǎng)絡(luò)上線后的功能之一熙参。他們所提出了一個(gè)永久性解決方案艳吠。其核心功能包括對(duì)四個(gè)備用 BPs 進(jìn)行測(cè)試。
直接對(duì)排名 22–25 的BP測(cè)試會(huì)有所幫助孽椰,但理想情況下昭娩,應(yīng)該使得對(duì)出塊能力的測(cè)試具備擴(kuò)展性凛篙,可以對(duì)每個(gè)有收入的 BP進(jìn)行測(cè)試。畢竟栏渺,設(shè)計(jì)這一機(jī)制的目的就是為了確保 EOS 網(wǎng)絡(luò)具備適應(yīng)性呛梆、有良好性能且具備總體的安全性,即使在大多數(shù) BP 無法服務(wù)的極端情況下也能如此磕诊。
除此之外填物,Liberty Block 的提議缺乏一個(gè)界定清晰的計(jì)劃■眨考慮到這一變更方案影響甚大滞磺,目前很難做出任何進(jìn)一步的判斷或建議肠缔。鑒于 Liberty Block 具備技術(shù)專長(zhǎng)变隔,很有可能可以執(zhí)行精心設(shè)計(jì)的計(jì)劃。不過轿偎,我們?nèi)孕枰@得更多的細(xì)節(jié)广凸,以便了解該提案的準(zhǔn)備情況阅茶。
從投票代理們那里得到的一致反饋表示,他們不會(huì)在沒有提案詳情的情況下提交投票谅海。我們已將收到的反饋告知了 Liberty Block脸哀,并建議其提供一份更為詳細(xì)的提案。
ChainRift EOS 所提出的解決方案是一個(gè)包含了兩個(gè)不同階段的綜合性計(jì)劃胁赢。首先是自主選擇加入(opt-in)的版本(由代理進(jìn)行委托)企蹭,之后,會(huì)發(fā)展為對(duì) EOSIO 系統(tǒng)合約的升級(jí)智末。
選擇加入(opt-in)這一方式, 可以確保 BP 不能停止測(cè)試谅摄,也不需要15/21 多簽。然而系馆,這一方案可能會(huì)使得臨時(shí)解決方案變成永久性的方案送漠。EOS 的相關(guān)利益方可能會(huì)過于自信滿滿而不再繼續(xù)支持該方案,或者也不會(huì)采納第二階段中的更改并升級(jí)系統(tǒng)合約由蘑。
ChainRift 提案中的隨機(jī)信標(biāo)(random beacon)部分是附加功能闽寡,它解決了針對(duì)備選 BP 測(cè)試的順序的作弊風(fēng)險(xiǎn),也有可能會(huì)對(duì) EOS 生態(tài)系統(tǒng)中的其他部分有用尼酿,如博彩 dApp 等依賴于去中心化方式產(chǎn)生隨機(jī)數(shù)的場(chǎng)景爷狈。
EOS42 認(rèn)為 ChainRift EOS 應(yīng)當(dāng)直接進(jìn)行第二階段,直接測(cè)試所有的備選出塊節(jié)點(diǎn)裳擎,并對(duì)無法出塊的 BP 自動(dòng)執(zhí)行強(qiáng)制性操作涎永。ChainRift 表示,若有足夠的支持,他們同意直接進(jìn)入第二階段羡微。
對(duì) ChainRift 和 Liberty Block 方案的附加說明
為了減少對(duì)出塊順序的更改谷饿,ChainRift EOS 提議在 4 小時(shí)內(nèi)進(jìn)行 2 次變更(進(jìn)入和退出21個(gè)出塊節(jié)點(diǎn)之列)。這是個(gè)保守的決定妈倔,使得未來在輕客戶端和 IBC 解決方案中所用到證明的數(shù)據(jù)量(the nunber of proofs)保持一個(gè)較低的水平博投。Liberty Block 也提到了要盡量減少對(duì)出塊順序的變更,但是其提案中并未提供任何關(guān)于實(shí)現(xiàn)方式的細(xì)節(jié)信息盯蝴。
Liberty Block 的方案涉及硬分叉毅哗,而 ChainRift 的第二階段的方案需要軟分叉。
軟分叉意味著需要 15/21 的出塊BP(eosio@active 的權(quán)限)以升級(jí)系統(tǒng)合約捧挺,并且所有的節(jié)點(diǎn)會(huì)自動(dòng)更新黎做。
硬分叉則意味著需要所有的節(jié)點(diǎn)都升級(jí)其節(jié)點(diǎn)的代碼。如果節(jié)點(diǎn)拒絕升級(jí)或者忘記升級(jí)松忍,會(huì)導(dǎo)致節(jié)點(diǎn)掛起,無法與 EOS 主網(wǎng)同步筷厘。如果無法得到 EOS 代碼庫(kù)核心貢獻(xiàn)者的廣泛支持鸣峭,硬分支的部署方案會(huì)難以進(jìn)行。任何用到硬分叉的變更都需要將其合并為一項(xiàng)更改酥艳,并且摊溶,需要提前數(shù)月與所有的 EOS 利益相關(guān)方(開發(fā)人員、BP充石、dApp莫换、交易所等)進(jìn)行協(xié)調(diào)。
因此骤铃,軟分叉的方法更具吸引力和可行性拉岁。
總結(jié)
感謝所有 EVB 計(jì)劃的參與者。EVB 計(jì)劃產(chǎn)生了一個(gè)開源的全歷史解決方案惰爬,可以預(yù)期在未來會(huì)解決當(dāng)前 EOS 在全歷史節(jié)點(diǎn)方面所面臨的問題喊暖。此外,EVB 計(jì)劃也展示了在 EOS 投票者和 BP 之間 設(shè)定明確激勵(lì)這一做法所帶來的益處撕瞧。
最后陵叽,我們對(duì)參與這個(gè)項(xiàng)目的優(yōu)秀團(tuán)隊(duì)們致以誠(chéng)摯的謝意。
EOS42 開創(chuàng)去中心化的未來
EOS42的賬號(hào)為: eos42freedom丛版。
請(qǐng)為EOS42投票巩掺,支持我們繼續(xù)不停開拓去中心化解決方案的未來。