使用區塊鏈構建應用程序
區塊鏈的承諾很簡單,但功能強大:提供完全有序的日志的抽象,該日志分布在一組參與者中,并且對篡改保持穩健。
這種完全有序的日志抽象保證了參與的每一方將看到i)相同的一組操作,并且ii)將以相同的順序看到這些操作。考慮下面的簡單資產轉移示例:Alice和Bob分別有兩次存款,然后是從Bob轉移到Alice,最后是Alice提款。每個操作都記錄在一個完全有序的日志中,由一個銀行聯盟維護。
實現共享日志的簡單銀行聯盟。
然后可以輕松地使用生成的共享日志來實現共享狀態,其有效性得到所有聯盟參與者的證明。Bob可以在BoA查詢狀態,而Alice是Chase的客戶,但他們仍然保證同意。到目前為止,一切都很好!
走向交易系統
雖然完全有序日志抽象的推理很簡單,但遺憾的是它不能滿足大多數傳統Web服務應用程序的實際需求。一個簡單的日志可能足以滿足上述基本資產轉移,但無法滿足更復雜的在線交易處理(OLTP)風格的應用程序,例如在線供應商、在線銀行或多航空公司/酒店預訂。從廣義上講,造成這種情況的原因有兩個:
原始日志可擴展性。
應用程序希望他們的數據庫快速。當請求不在同一數據上競爭時,它們應該水平擴展,否則優雅地降級。通常,數據庫通過依賴分片、可序列化和并發控制來做到這一點。
數據:MakerDAO聯創昨日再出售15萬枚LDO并買入569枚MKR:金色財經報道,據推特用戶余燼發推稱,MakerDAO聯合創始人Rune昨晚從0xf65開頭地址轉出120萬LDO至0x0f8地址,隨后出售15萬枚LDO買入569枚MKR。Rune自2022月11月14日至今已累計售出1257萬枚LDO和買入27,257枚MKR。[2023/4/6 13:47:32]
相反,我們完全有序的日志抽象的現有實現通常采用分布式和復制狀態機(RSM)的形式,它可以容忍一部分節點任意行為不端。有很多很酷的協議可以解決這個問題,盡管最流行的協議是PBFT(OSDI'99)和Hotstuff(PODC'19)。這些來自許多fotm改編,盡管通常都有相同的缺點:
一方面,每個副本完全對每個操作進行排序,然后按順序執行——顯然,這對于擴展吞吐量來說并不理想。
其次,他們依賴專門的領導者充當排序器,這既是瓶頸又是公平問題——領導者必須接收、處理和轉發所有事務,以及它具有不成比例的影響過度訂購,并可能“意外”審查交易,或搶先獲得財務優勢。
最后,這些協議需要幾個階段來安全地提交每個操作,與通常部署的崩潰容錯系統相比,延遲明顯更高……
好的——此時你可能會問“你是不是簡化太多了?我們知道如何以更優化的方式構建我們的系統!”當然,你是對的——為了改善可擴展性瓶頸,我們投入了大量精力來仔細調整這些共識協議——直到我們能夠每秒訂購100或1000次額外的操作。
加密借貸平臺Nexo已終止對其競爭對手Vauld的潛在收購:金色財經報道,加密借貸平臺 Nexo 已終止對其競爭對手 Vauld 的潛在收購。知情人士表示,雙方經過長達六個月的對話,這筆潛在交易已經告吹。報道指出,收購條件對 Vauld 債權人不利以及 Nexo 財務狀況不夠透明是交易取消的主要原因。[2022/12/26 22:08:30]
虛擬操作的高排序速度并不是高應用速度的決定性因素。
不幸的是,可擴展性只是故事的一半。同樣重要的是可編程性和可用性:
可用性和應用程序可擴展性。
通常容易被擱置的問題是我們真正想要訂購的操作是什么?
答案相當簡單。當今世界已經使用傳統數據庫系統構建的應用程序希望繼續使用數據庫。
應用程序可能會尋求許可的區塊鏈來實現去中心化的分布式數據庫的功能。
不幸的是,現有的數據庫不是去中心化的,對攻擊或不誠實的一方也不健壯。那么我們能做些什么來彌補這個差距呢?為了采用我們很酷的BFT工作,應用程序想要我們什么?
1.應用程序需要事務和查詢功能。它們必須能夠將操作組捆綁在一起,并以原子方式執行它們。這樣做極大地簡化了應用程序開發和無錯誤代碼的設計。此外,應用程序還希望能夠執行查詢以有效地計算過度狀態。許多人使用SQL這樣做,并且不愿意放棄大量遺留代碼。
Amber 管理合伙人:用戶資金安全,提款功能照常開放:12月6日消息,Amber 管理合伙人 Annabelle Huang 在鏈上分析師 Lookonchain 推文下方回復:“我們繼續照常營業。如果您有任何顧慮,提款照常開放。”
據悉,早間 Lookonchain 發推表示,Amber 的 6 個以太坊錢包總資產為 946 萬美元。但隨后 The Block 研究副總裁 Larry Cermak 在推文下回復,標記為 Amber 的錢包地址有 11 個。[2022/12/6 21:26:35]
??應用程序的操作不是單一的請求,而是事務的一部分。
2.其次,應用程序開發人員需要交互性:即直接將數據庫請求與應用程序代碼交錯的能力。存儲過程或完全獨立的事務請求不被開發人員和通常非初學者1所喜歡,因為它們使初始開發和以后的功能更新變得復雜。
??一般事務的操作不是事先確定的。
1在實踐中,大多數DBMS使用此類事務模型的時間不到10%
結論:我們不是在排序獨立的操作,而是作為交互式事務的一部分的操作。
這是一個艱難的生活
不幸的是,完全有序的日志自己提供的簡單的順序執行模式,并沒有滿足這些需求。它不僅將接口限制為可以在本地執行的限制性事務模型,而且一次性將它們全部排序,從而扼殺了橫向可擴展性的希望。
EOS網絡基金會推出新分叉公鏈Antelope,以取代EOS:8月17日消息,EOS網絡基金會首席執行官Yves La Rose在社交媒體上發文宣布推出新分叉公鏈Antelope,以取代EOS。
據介紹顯示,Antelope是一個用于構建下一代Web3產品和服務的開放框架。
此前報道,EOSIO區塊鏈協議已正式更名為Antelope。[2022/8/18 12:32:19]
但那不是真的?!讓我們分片,讓我們部分訂購!。
可擴展性創可貼
為了提高并行度,應用程序可以選擇對其數據存儲進行分區以水平擴展資源。這有幫助,但只是針對底層日志缺點的創可貼:各個分片仍然是內部有序的,并且需要跨分片協調機制來保持多分片事務的一致性。
我們可以嘗試提前部分排序執行嗎?不幸的是,答案是否定的——對交互性和靈活交易的需求給我們的計劃帶來了麻煩。不可能戰略性地并行調度事務執行,因為交互性意味著我們不再提前知道完整的事務。例如,應用程序可能最初發出一個讀取請求,并且僅基于結果決定接下來要觸摸哪個鍵
2不要與將數據分發與排序層中的共識分開的內存池樣式DAG相混淆。
建立交易系統
盡管如此,為了圍繞我們的日志抽象構建表達性事務系統,我們需要在復制層之上構建事務語義。
MakerDAO已啟動對法國興業銀行和Huntingdon Valley Bank現實資產Vault上線的投票:7月31日消息,MakerDAO社區已啟動對法國興業銀行和Huntingdon Valley Bank現實資產Vault上線的投票。其中,法國興業銀行的Vault RWA-008 Societe Generale–Forge(OFH)將借出3000萬枚DAI,Stability Fee為0.05%,清算比率為100%;Huntingdon Valley Bank Vault RWA-009 Huntingdon Valley Bank(HVBank)將借出1億枚DAI,Stability Fee為0%,清算比率為100%。若提案通過,Huntingdon Valley Bank將立即借出2500萬枚DAI。[2022/7/31 2:50:04]
將分布式提交(2PC)和并發控制(CC)分層在完全有序的分片日志日志庫之上的模塊化系統架構示例。—致謝:張等。al,什么時候訂購?
不幸的是,雖然這樣的設計實現了數據庫的API要求,但其模塊化特性引入了冗余,并且在吞吐量和延遲方面不足。
重要的是——盡管在討論我們的日志性能時被可悲地忽略了——吞吐量被衡量為應用程序的進度,而不是復制進度:排序的操作不再對應于單個、獨立的事務,但是對于確保事務原子性和語義正確性的單獨的讀或寫操作和相關的CC機制。
??應用程序的吞吐量不是?以操作的順序來衡量的,而是以提交的事務來衡量的。
我們將對此類模塊化設計及其缺點的更詳細探索推遲到現有工作中——雖然我們會在聊天結束時簡單地回到它——而是問以下問題:
觀察到的性能缺陷是根本性的嗎?
不幸的是,正如我們將爭論的那樣,目前的答案是肯定的。
不足……
我們認為,可擴展性差的根本原因是,我們正在構建的系統在排序層和物化層之間存在堅如磐石的分離。
在日志之上實現應用程序的系統中的抽象關注點分離。
目前,排序層僅與信任有關。它基本上是在說,多方如何就如何排序相同的字節序列達成一致?
相反,物化層是關于語義和數據的。它詢問您如何實際執行這些字節或那些操作來生成數據庫?
因為排序層不理解操作的語義,所以它不能做得更好。排序層有很多改進——例如使用多個領導者、流水線協議或記錄DAG而不是序列——但大多數人從根本上忽略了上面的層。
互動+擴展的關鍵
那么,我們該何去何從?
幸運的是,我們知道在實踐中,大多數現實世界的工作負載主要由訪問完全不同對象的操作組成,因此根本不需要相互排序。事實上,對于原本可以愉快地并行執行的操作來說,施加總訂單的要求太強了:以分別想購買賽車和冰淇淋的Alice和Bob為例。不需要對另一筆交易進行排序。
可序列化,傳統數據庫的主要安全約束,抓住了這個觀察:
它指出,操作可以并行執行,并且以非原子方式執行,只要結果看起來與事務按順序執行隔離的執行沒有區別。
Alice、Bob和Charlie可以愉快地并行執行他們的事務,并將執行拆分為非原子子操作。結果相當于順序執行。
模糊線條
復制層和分布式事務層都冗余地實現了一致性。換句話說,復制層的排序是不必要的,因為應用程序層已經強制執行可串行化!我們兩個都不需要!
擴展的關鍵是打破使層分開的黑盒接口,并將復制集成到并發控制本身中。Basil就是一個可以做到這一點的系統。
簡而言之,Basil允許所有用戶樂觀地并行執行交互式事務,并允許副本無序地處理所有操作。由于副本可以在本地觀察到的事務集上強制執行可串行化,因此我們可以通過依賴仲裁交集來保持容錯和一致性。
結果Basil可以更快地顯示和提交事務:在常見情況下,它可以在一次往返中提交事務(最壞情況下為2次——而不是需要2-5個RT通過基于SMR的設計,在競爭瓶頸的工作負載上,延遲的減少反過來又顯著提高了吞吐量。
如果這聽起來很有趣,去看看這篇論文吧!Basil:用ACID分解BFT
評估預告片:
TLDR:?Basil比模塊化BFT交易堆棧好5倍!
在我們分道揚鑣之前,我們將向您簡要介紹一下這在實踐中的效果如何。
下圖顯示了Basil與3個基準系統相比的吞吐量:Tapir(SOSP'15),它是最先進的容錯容錯數據庫系統,以及TxHotstuff和TxBFTSmart,它們是在Hotstuff上實現并發控制的事務系統和PBFT分別實現。工作負載是經典的OLTP基準,模擬在線供應商(TPCC)、在線銀行(Smallbank)和輕量級Twitter(Retwis)。
該實驗在具有3個分片且f=1的本地網絡設置上運行:
跨OLTP基準工作負載的峰值事務吞吐量。
Basil的性能比BFT的同類產品好得多,主要是因為它減少了延遲,這轉化為吞吐量。隨著網絡延遲的增加,預計這種影響會進一步加劇。Basil仍然比Tapir慢,主要是因為它使用簽名來保證安全——值得注意的是,隨著可用簽名方案的不斷改進,這一成本將會縮小。
閉幕致辭
當然,這一切說起來容易做起來難!打開復制黑盒會帶來一系列需要解決的挑戰。了解Basil如何處理這一問題的所有很酷的細節是您閱讀整篇論文的眾多樂趣之一!
來源:金色財經
數據是互聯網成功的關鍵。它為當今最大的科技公司提供動力,明天也將如此。Web3也不例外。能夠轉換和利用區塊鏈數據的公司將成為下一代互聯網的領導者。但是從區塊鏈管理和提取數據幾乎是不可能的.
1900/1/1 0:00:008.28BTC行情分析 比特幣高位觸及20300附近承壓回落,破位兩萬關口延續下行至19800一線,恭喜跟上的幣友小幅獲利200美刀,早間行情二次下探未能破位前低走出反彈.
1900/1/1 0:00:00BTC多頭在上周跌至20,800美元時被清算,這意味著如果該水平在本周10億美元期權到期之前失敗,則可能會出現更大的下行空間.
1900/1/1 0:00:00“其實最重要的成功因素,并不在于用的是哪一套固定的規則或操盤手法,而在于自律。”交易是一門復雜的學問,是技巧、技能、心態、人性等的綜合博弈過程.
1900/1/1 0:00:008.28今日熱點 市場傳言門頭溝Mt.Gox14萬枚BTC將于近日釋放,系官方文件誤解8月28日消息,市場傳言門頭溝Mt.Gox14萬枚BTC將于近日向債權人釋放,系官方文件誤解.
1900/1/1 0:00:00昨天鮑威爾到底講了什么導致了市場的暴跌,以及我們來看一下各種經濟數據,還有比特幣加密貨幣這邊是如何反應的還有接下來周末這兩天比特幣和以太坊的行情到底會怎么走?昨天晚上是非常出乎人們的意料.
1900/1/1 0:00:00