時間:2021-11-20|瀏覽:495
RetrievalMarket小型峰會的目的是聚集多個Retrieval Market解決方案的所有建設(shè)者都突出了迄今為止取得的進展,并確定了如何將多個系統(tǒng)結(jié)合起來,以提高檢索交易的效率、效率和可靠性。
在4月的Retrieval Market Builders Mini-Summit上,Raul Kripalani(libp2p對星際文件系統(tǒng)核心開發(fā)者進行了深入研究Lotus節(jié)點架構(gòu)和計劃的變化,尤其是Lotus-miner更改節(jié)點,以更好地滿足客戶和網(wǎng)絡(luò)參與者的需求。
演講的目的是強調(diào)Lotus客戶確保檢索交易高度可靠和可擴展——幫助確保星際文件系統(tǒng)檢索市場建立在穩(wěn)定的基礎(chǔ)上。
Lotus實現(xiàn)星際文件系統(tǒng)網(wǎng)絡(luò),使用Go寫作。作為星際文件系統(tǒng)的第一個實現(xiàn),Lotus它旨在為整個網(wǎng)絡(luò)奠定堅實而靈活的基礎(chǔ)。任何星際文件系統(tǒng)節(jié)點的核心功能之一是實現(xiàn)有用數(shù)據(jù)的存儲和檢索-為星際文件系統(tǒng)網(wǎng)絡(luò)上強大的檢索市場奠定基礎(chǔ)。
Lotus節(jié)點的演變
星際文件系統(tǒng)生態(tài)系統(tǒng)發(fā)展迅速。Lotus等生態(tài)系統(tǒng)工具也在不斷發(fā)展,以滿足網(wǎng)絡(luò)需求,嘗試未來的機遇。特別是檢索市場將為星際文件系統(tǒng)網(wǎng)絡(luò)引入新的功能,包括索引、CDN公共檢索等。
我們發(fā)現(xiàn)的問題是,這些新的檢索市場能力將依賴于強大的客戶基礎(chǔ)——如今,Lotus客戶傾向于解決他們認為不穩(wěn)定或無利可圖的一些功能。歸根結(jié)底,這是客戶見證的良好行為;助于Lotus實現(xiàn)發(fā)展以滿足他們的需求。當(dāng)網(wǎng)絡(luò)參與者開始切除某些功能時,這表明軟件本身應(yīng)該為用戶提供更多的靈活性和模塊化。
通過這種觀察,我們意識到Lotus阻礙單體二進制文件Lotus客戶靈活穩(wěn)定的操作,確定解決問題的機會。
單體二進制
到目前為止,Lotus節(jié)點架構(gòu)很大程度上是單體的。Lotus有兩個不同的入口點:1)一個完整的節(jié)點和2)一個用戶。然而,此外,網(wǎng)絡(luò)參與者幾乎沒有選擇在存儲生命周期中承擔(dān)什么責(zé)任。例如,客戶的任務(wù)是挖掘、證明存儲和交易。這些責(zé)任根本不同,但它們是通過當(dāng)前的Lotus-miner結(jié)構(gòu)耦合在一起。
單體架構(gòu)問題
廣義而言,這種整體結(jié)構(gòu)阻止了客戶在不同職責(zé)之間有效分配資源。強制合并責(zé)任與客戶的核心動機相矛盾,即在最小化運營風(fēng)險的同時實現(xiàn)利潤最大化。具體來說,單體二進制存在很多問題。
脆弱性:當(dāng)架構(gòu)中沒有隔離時,一個區(qū)域的錯誤可能會泄露并影響其他關(guān)鍵過程。這使得關(guān)鍵和非關(guān)鍵過程難以分割,整個例子崩潰。
增加攻擊面:Lotus客戶的某些過程需要公開公共端點,這使得系統(tǒng)的這一部分容易受到攻擊。如果架構(gòu)單一,單個公共端點可能會危及整個系統(tǒng)。
功能膨脹:在星際文件系統(tǒng)的使命中,客戶不僅存儲和提供原始數(shù)據(jù),而且還提供有用的服務(wù),例如索引、發(fā)現(xiàn)等。使用新的客戶側(cè)功能重載單個進程會導(dǎo)致進一步的擔(dān)憂和操作風(fēng)險。
無法擴展:不同的能力需要不同的特點和不同的升級過程。單個系統(tǒng)很難嘗試管理這些不同的功能,會導(dǎo)致迭代和生長緩慢。
缺乏細粒度控制:由于客戶不能主動選擇加入或退出功能,他們必須通過拒絕交易、設(shè)置高價來勸阻交易,甚至分叉代碼庫來解決這些問題。
迭代減速:單體架構(gòu)意味著更難測試和創(chuàng)新,因為沒有簡單的方法來隔離新組件并選擇加入實驗功能而不將其引入整個系統(tǒng)。
走向模塊化客戶架構(gòu)
看看Lotus客戶在幕后的職責(zé),有兩種不同的類別來挖掘業(yè)務(wù)和市場。這兩層共享非常不同的服務(wù)和SLA。例如,Lotus顧客的挖掘作業(yè)是最具經(jīng)濟效益的活動,本質(zhì)上也是私有的。但是,市場運作是完全公開的,在不同的盈利模式下運作。
使用這種初始分類,解決單一架構(gòu)缺點的模塊化客戶架構(gòu)的第一步出現(xiàn)了:Lotus客戶流程分為1)Lotus2)其他市場流程Lotus客戶流程。
通過分離市場和挖掘,Lotus對于客戶來說,節(jié)點架構(gòu)變得更具特色,使他們能夠與最適合自己能力和網(wǎng)絡(luò)經(jīng)濟偏好的職責(zé)保持一致。
設(shè)計原則
在朝著更加模塊化的客戶結(jié)構(gòu)新道路前進的同時,Lotus將繼續(xù)堅持一些設(shè)計原則:
避免類似微服務(wù)架構(gòu)的復(fù)雜性:明確避免復(fù)雜的相互依賴網(wǎng)絡(luò),會迅速轉(zhuǎn)化為意大利面條架構(gòu),需要專門的工具(如服務(wù)網(wǎng)格)進行管理和調(diào)試。這是方向Lotus引入錯誤的復(fù)雜程度。秩序和等級仍然屬于,因為這些過程仍然是單個有凝聚力的單元的一部分。
簡單的中心/輻條架構(gòu):Lotus正在向中心輻射架構(gòu)發(fā)展,由主管管理。這些主管知道部署中提供了哪些功能,哪些節(jié)點提供了這些功能。它們也是聚合的外部API入口點。
值得多方面投資:新的Lotus結(jié)構(gòu)值得投資。除了盈利能力,其他的ROI因素包括可靠性、安全性、開發(fā)人員的敏捷性和穩(wěn)定性。
強大的分布式過程生命周期監(jiān)管:模塊化架構(gòu)并不意味著完全孤立的架構(gòu)。如果出現(xiàn)故障,意味著其他下游服務(wù)會出現(xiàn)故障,那么整個系統(tǒng)必須能夠注意到并做出反應(yīng)。
為了設(shè)計這個新的操作,我們通過Erlang/OTP以及面向角色的編程(例如JVM世界中的Akka)等模型激勵自己,從服務(wù)網(wǎng)格和編輯器中借用選擇概念和抽象,但實際上并不完全依賴這些框架。
熱點:數(shù)據(jù)