使用區塊鏈構建應用程序
區塊鏈的承諾很簡單,但功能強大:提供完全有序的日志的抽象,該日志分布在一組參與者中,并且對篡改保持穩健。
這種完全有序的日志抽象保證了參與的每一方將看到i)相同的一組操作,并且ii)將以相同的順序看到這些操作。考慮下面的簡單資產轉移示例:Alice和Bob分別有兩次存款,然后是從Bob轉移到Alice,最后是Alice提款。每個操作都記錄在一個完全有序的日志中,由一個銀行聯盟維護。
實現共享日志的簡單銀行聯盟。
然后可以輕松地使用生成的共享日志來實現共享狀態,其有效性得到所有聯盟參與者的證明。Bob可以在BoA查詢狀態,而Alice是Chase的客戶,但他們仍然保證同意。到目前為止,一切都很好!
走向交易系統
雖然完全有序日志抽象的推理很簡單,但遺憾的是它不能滿足大多數傳統Web服務應用程序的實際需求。一個簡單的日志可能足以滿足上述基本資產轉移,但無法滿足更復雜的在線交易處理(OLTP)風格的應用程序,例如在線供應商、在線銀行或多航空公司/酒店預訂。從廣義上講,造成這種情況的原因有兩個:
原始日志可擴展性。
應用程序希望他們的數據庫快速。當請求不在同一數據上競爭時,它們應該水平擴展,否則優雅地降級。通常,數據庫通過依賴分片、可序列化和并發控制來做到這一點。
東京電力公司與TRIPLE-1合作利用多余電力開采加密貨幣:金色財經報道,日本公用事業公司--東京電力公司(TEPCO)正在與當地采礦鉆機制造商TRIPLE-1合作,以利用其電網中的多余電力。東電在9月成立了一家名為Agile Energy X的子公司,旨在從該公司的過剩電力中創造數字價值,包括開采加密貨幣。兩家公司在周三的一份新聞稿中,與當地硬件制造商TRIPLE-1簽署了一份諒解備忘錄,在全國范圍內開發分布式數據中心,利用TRIPLE-1的半導體,利用多余的可再生能源。根據該新聞稿,該項目的目的是通過為加密貨幣開采和人工智能計算創造新的需求來 \"有效利用剩余電力\"。(coindesk)[2022/12/14 21:44:22]
相反,我們完全有序的日志抽象的現有實現通常采用分布式和復制狀態機(RSM)的形式,它可以容忍一部分節點任意行為不端。有很多很酷的協議可以解決這個問題,盡管最流行的協議是PBFT(OSDI'99)和Hotstuff(PODC'19)。這些來自許多fotm改編,盡管通常都有相同的缺點:
一方面,每個副本完全對每個操作進行排序,然后按順序執行——顯然,這對于擴展吞吐量來說并不理想。
其次,他們依賴專門的領導者充當排序器,這既是瓶頸又是公平問題——領導者必須接收、處理和轉發所有事務,以及它具有不成比例的影響過度訂購,并可能“意外”審查交易,或搶先獲得財務優勢。
微博推出數藏頭像功能:9月15日,天下秀旗下自媒體數字藏品工具集TopHolder頭號藏家聯合微博錢包、微博會員正式上線數字藏品頭像功能。
平臺將100份定制款數藏頭像面向百位百萬以及千萬級微博大V進行發放,包含互聯網科技、娛樂、游戲動漫、生活方式類、萌寵、美食、 旅行等領域,正式開啟數字藏品在社交場景內的新應用、新角色。(微博數字藏品)[2022/9/18 7:04:13]
最后,這些協議需要幾個階段來安全地提交每個操作,與通常部署的崩潰容錯系統相比,延遲明顯更高……
好的——此時你可能會問“你是不是簡化太多了?我們知道如何以更優化的方式構建我們的系統!”當然,你是對的——為了改善可擴展性瓶頸,我們投入了大量精力來仔細調整這些共識協議——直到我們能夠每秒訂購100或1000次額外的操作。
虛擬操作的高排序速度并不是高應用速度的決定性因素。
不幸的是,可擴展性只是故事的一半。同樣重要的是可編程性和可用性:
可用性和應用程序可擴展性。
通常容易被擱置的問題是我們真正想要訂購的操作是什么?
答案相當簡單。當今世界已經使用傳統數據庫系統構建的應用程序希望繼續使用數據庫。
美SEC主席:支持CFTC對比特幣進行監管:金色財經報道,美國證券交易委員會(SEC)主席Gary Gensler支持美國商品期貨交易委員會(CFTC)對比特幣進行監管。Gensler表示,他將支持國會將更多權力交給美國證券交易委員會的姊妹市場監管機構CFTC,以監督某些加密貨幣,如比特幣。并表示期待與國會合作,賦予CFTC會更多權力,CFTC需要更大的權力來監督和監管加密非證券Token和相關中介機構。[2022/9/8 13:17:15]
應用程序可能會尋求許可的區塊鏈來實現去中心化的分布式數據庫的功能。
不幸的是,現有的數據庫不是去中心化的,對攻擊或不誠實的一方也不健壯。那么我們能做些什么來彌補這個差距呢?為了采用我們很酷的BFT工作,應用程序想要我們什么?
1.應用程序需要事務和查詢功能。它們必須能夠將操作組捆綁在一起,并以原子方式執行它們。這樣做極大地簡化了應用程序開發和無錯誤代碼的設計。此外,應用程序還希望能夠執行查詢以有效地計算過度狀態。許多人使用SQL這樣做,并且不愿意放棄大量遺留代碼。
??應用程序的操作不是單一的請求,而是事務的一部分。
2.其次,應用程序開發人員需要交互性:即直接將數據庫請求與應用程序代碼交錯的能力。存儲過程或完全獨立的事務請求不被開發人員和通常非初學者1所喜歡,因為它們使初始開發和以后的功能更新變得復雜。
蒂芙尼NFT“NFTiff”已連續兩周無任何交易:金色財經報道,據最新NFT交易數據顯示,蒂芙尼NFT“NFTiff”已連續兩周無任何交易,最近一次交易發生在8月13日。當前蒂芙尼NFT“NFTiff”地板價為59ETH,市值達到2232萬美元,交易總額為356萬美元。[2022/8/27 12:52:14]
??一般事務的操作不是事先確定的。
1在實踐中,大多數DBMS使用此類事務模型的時間不到10%
結論:我們不是在排序獨立的操作,而是作為交互式事務的一部分的操作。
這是一個艱難的生活
不幸的是,完全有序的日志自己提供的簡單的順序執行模式,并沒有滿足這些需求。它不僅將接口限制為可以在本地執行的限制性事務模型,而且一次性將它們全部排序,從而扼殺了橫向可擴展性的希望。
但那不是真的?!讓我們分片,讓我們部分訂購!。
可擴展性創可貼
為了提高并行度,應用程序可以選擇對其數據存儲進行分區以水平擴展資源。這有幫助,但只是針對底層日志缺點的創可貼:各個分片仍然是內部有序的,并且需要跨分片協調機制來保持多分片事務的一致性。
我們可以嘗試提前部分排序執行嗎?不幸的是,答案是否定的——對交互性和靈活交易的需求給我們的計劃帶來了麻煩。不可能戰略性地并行調度事務執行,因為交互性意味著我們不再提前知道完整的事務。例如,應用程序可能最初發出一個讀取請求,并且僅基于結果決定接下來要觸摸哪個鍵
印度加密交易所WazirX將于8月11日下線EasyFi(EZ):8月9日消息,印度加密貨幣交易所WazirX將于8月11日下線并停止EasyFi(EZ)所有交易對交易,提款截至11月12日。(Forkast)[2022/8/9 12:13:15]
2不要與將數據分發與排序層中的共識分開的內存池樣式DAG相混淆。
建立交易系統
盡管如此,為了圍繞我們的日志抽象構建表達性事務系統,我們需要在復制層之上構建事務語義。
將分布式提交(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如何處理這一問題的所有很酷的細節是您閱讀整篇論文的眾多樂趣之一!
來源:金色財經
在8月27日,Solana上的可編程流支付協議ZebecProtocol,以10億美元的完全稀釋估值籌集了850萬美元.
1900/1/1 0:00:00大家一起來認識下即將改變游戲規則的人,他們是改變未來游戲結構的游戲新貴。這些都是希望為明天創造更光明未來的制造商和獨立的創新者.
1900/1/1 0:00:00數據是互聯網成功的關鍵。它為當今最大的科技公司提供動力,明天也將如此。Web3也不例外。能夠轉換和利用區塊鏈數據的公司將成為下一代互聯網的領導者。但是從區塊鏈管理和提取數據幾乎是不可能的.
1900/1/1 0:00:00這兩天朋友圈都在轉發任正非的“活下去”的內部講話,全球經濟長期衰退,華為要把活下來作為主要綱領,未來三年有質量的活下去.
1900/1/1 0:00:008.27今日熱點 BitfinexETH空頭持倉近24小時增長40%8月27日消息,數據顯示,當前BitfinexETH空頭持倉量為35370.76枚,近24小時持倉增加了101.
1900/1/1 0:00:008.28BTC行情分析 比特幣高位觸及20300附近承壓回落,破位兩萬關口延續下行至19800一線,恭喜跟上的幣友小幅獲利200美刀,早間行情二次下探未能破位前低走出反彈.
1900/1/1 0:00:00