Lotus 節點的演變:Lotus & Retrieval Markets 建設者峰會回顧

買賣虛擬貨幣

Retrieval Market 小型峰會的目的是聚集多個 Retrieval Market 解決方案的所有構建者,突出迄今為止取得的進展,並確定多個系統如何結合在一起以提高檢索交易的效率、效率和可靠性對於網路使用者。

峰會的所有談話都在星際檔案系統頻道上提供:https://www.youtube.com/playlist?list=PL_0VrY55uV19TsJ8r2qsMyG2v2LIKEmv2

在 4 月的 Retrieval Market Builders Mini-Summit 上,Raul Kripalani(libp2p 和星際檔案系統核心開發者)深入研究了 Lotus 節點的架構和計劃的更改,特別是對 Lotus-miner 節點的更改,以更好地滿足客戶的需求和網路參與者。

完整的談話可以在這裡找到(https://www.youtube.com/watch?v=cmrLfnqzflk)。

該演講旨在強調為 Lotus 客戶確保檢索交易高度可靠和可擴充套件所需的工作——幫助確保 星際檔案系統檢索市場建立在穩健的基礎上。

Lotus 是星際檔案系統網路的一個實現,用 Go 編寫。作為星際檔案系統的第一個實現,Lotus 旨在為整個網路奠定堅實而有彈性的基礎。任何星際檔案系統節點的核心功能之一是實現有用資料的儲存和檢索 - 從而為星際檔案系統網路上強大的檢索市場奠定基礎。

Lotus 節點的演變

星際檔案系統生態系統正在快速發展,Lotus 等生態系統工具也在不斷髮展以滿足網路的需求並嘗試未來的機會。特別是檢索市場將為星際檔案系統網路引入新功能,包括索引、CDN、公共檢索等。

我們發現的問題是,這些新的檢索市場能力將依賴於強大的客戶基礎——如今,Lotus 客戶傾向於解決他們認為不穩定或無利可圖的某些功能。歸根結底,這是客戶見證的良好行為;它幫助 Lotus 實現發展以滿足他們的需求。當網路參與者開始短路某些功能時,表明軟體本身應該為其使用者提供更多的靈活性和模組化。

透過這一觀察,我們意識到Lotus的單體二進位制檔案阻礙了 Lotus 客戶的靈活和穩健的操作,並確定瞭解決問題的機會。

單體二進位制

到目前為止,Lotus 節點的架構在很大程度上是單體的。Lotus 有兩個不同的入口點:1) 一個完整節點,以及 2) 一個客戶。然而,除此之外,網路參與者幾乎沒有選擇權在儲存生命週期中承擔哪些責任。例如,客戶的任務是挖掘、證明儲存、交易等。這些是根本不同的職責,但它們透過當前的 Lotus-miner 架構耦合在一起。

單體架構的問題

從廣義上講,這種整體架構阻止了客戶在不同的職責之間有效地分配他們的資源。強制合併責任與客戶的核心動機相矛盾,即在最小化運營風險的同時實現利潤最大化。具體來說,單體二進位制存在許多問題。

脆弱性:當架構內沒有隔離時,一個區域的錯誤可能會洩漏並影響其他關鍵流程。這使得很難在關鍵和非關鍵程序之間進行分割,並使整個例項崩潰。

增加的攻擊面:Lotus 客戶的某些程序需要公開公共端點,這使系統的該部分容易受到攻擊。如果架構是單一的,則單個公共端點可能會危及整個系統。

功能膨脹:在星際檔案系統的使命中,客戶不僅儲存和提供原始資料,而且還提供有用的服務,例如索引、發現等。使用新的客戶側功能過載單個程序會導致進一步的擔憂和操作風險。

無法擴充套件:不同的能力需要不同的特性和不同的升級過程。嘗試在單一系統中管理這些不同的功能很困難,並且會導致迭代和增長緩慢。

缺乏細粒度控制:由於客戶無法主動選擇加入或退出功能,他們必須透過拒絕交易、設定高價以勸阻交易,甚至分叉程式碼庫等機制來解決這些問題。

更慢的迭代:單體架構意味著更難測試和創新,因為沒有簡單的方法來隔離新元件並選擇加入實驗功能而不將其引入整個系統。

邁向模組化客戶架構

看看 Lotus 客戶在幕後的職責,出現了兩個不同的類別:採礦業務和市場。這兩個層共享非常不同的服務和 SLA。例如,Lotus 客戶的採礦作業是其最具經濟利潤的活動,並且本質上也是私有的。然而,市場運作是完全公開的,並在不同的盈利模式下運作。

Lotus客戶的更多責任:https://github.com/protocol/web3-dev-team/blob/raulk/lotus-miner-runtime-segregation/proposals/lotus-miner-runtime-segregation.md#context

使用這種初始分類,邁向解決單體架構缺點的模組化客戶架構的第一步出現了:將 Lotus 客戶流程分為 1) Lotus 市場流程和 2) 其他 Lotus 客戶流程。

透過分離市場和挖礦,Lotus 節點的架構對於客戶來說變得更加特定於功能,使他們能夠與最適合其能力和網路經濟偏好的職責保持一致。

設計原則

在朝著更加模組化的客戶架構的這條新道路上前進的同時,Lotus 將繼續堅持一些設計原則:

避免類似微服務架構的複雜性:明確避免複雜的相互依賴網路,這些網路會迅速轉化為義大利麵條式架構,並需要專門的工具(如服務網格)來管理和除錯。這是向 Lotus 引入錯誤的複雜程度。秩序和等級仍然屬於,因為這些過程仍然是一個單一的有凝聚力的單元的一部分

簡單的中心/輻條架構:Lotus 正在向中心輻射架構發展,該架構由主管例項管理。這些主管知道部署中提供了哪些功能以及哪些節點提供了這些功能。它們還充當聚合的外部 API 入口點。

在許多方面都值得投資:新的 Lotus 架構一定值得投資。除了盈利能力外,其他一些 ROI 因素包括可靠性、安全性、開發人員敏捷性和穩健性。

強大的分散式流程生命週期監督:模組化架構並不意味著完全孤立的架構。如果出現故障並且意味著其他下游服務將出現故障,那麼整個系統必須能夠注意到並做出反應。

為了設計這個新的執行時,我們透過 Erlang/OTP 和麵向角色的程式設計(例如 JVM 世界中的 Akka)等模型來激勵自己,並從服務網格和編排器中借用精選概念和抽象,而實際上並不完全依賴這些框架。

更多資源

要了解有關 Lotus 的更多資訊以及通往模組化客戶架構的道路,請參閱:

Lotus Github

https://github.com/星際檔案系統-project/lotus

Proposal: Miner Runtime Segregation

https://github.com/protocol/web3-dev-team/blob/raulk/lotus-miner-runtime-segregation/proposals/lotus-miner-runtime-segregation.md

Draft Prototype

https://github.com/星際檔案系統-project/lotus/pull/5983

- END-

作者:,來源:IPFSUnion星際聯盟

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读