「IPFS的任務是創建一個彈性的,可升級的,開放的網絡,以存儲和增進人類的文明和知識。」
今年是新的一年,我們將以2020年為重點更新IPFS項目路線圖。在此過程中,我們還希望反思自2019年以來的成功,挑戰和經驗教訓,以幫助我們繼續朝著實現目標邁進使命,並最大化我們在世界上創造的價值和效用。
回顧2019
對於IPFS項目而言,2019年是令人振奮的一年:
IPFS公共網絡在2019年增長了30倍!
每天有成千上萬的節點參與IPFS網絡
每周都有數百萬用戶訪問IPFS HTTP網關
在更廣泛的IPFS生態系統中有數百個dapp、工具和項目,其中包括Anytype,Microsoft ION,Haven by OB1,Brave,3box,EthDNS等新來者!
這一增長使我們在年中轉移了一些注意力以支持新的用途和需求-將我們的一些工作組重新集中於改進文檔,網關性能和 測試工具以驗證大規模網絡升級(請參閱我們的Operation Task-Force有關詳細信息的博客文章)。
我們仍然在實現包管理器目標方面取得了進展,但是比我們期望的要少得多,因為它還在其他關鍵領域進行了大量投資以支持生態系統。
5個著名的勝利
◆ 我們舉辦了首屆IPFS訓練營,這是一個廣泛的星際社區中的開發人員和建造者聚會,學習,共享和演示其工作的聚會(有關更多信息,請參見本概述)!
◆ 在實現程序包管理器的目標方面,我們取得了重大進展(請閱讀有關協作集群等出色的新功能!)
◆ 我們與libp2p團隊合作開發並推出了TestGround v0.1,這是一個用於測試各種規模的分布式系統和網絡的平臺。
◆ 我們啟動了ProtoSchool,這是一個用於提供交互式教程的新門戶,以了解去中心化的Web概念,協議和工具,它遍及四大洲的23個章節!
◆ 我們建立了一個新的IPFS文檔站點,該站點具有改進的搜索,信息體系結構以及有關星際概念的解釋器。
我們的2019年路線圖
為了繪製今年的路線圖,我們進行了2019年的大規模規劃工作,以寫下我們的使命,為IPFS項目定義了許多長期目標,並優先考慮首先將精力集中在哪裡。
我們有很多「計劃中」的「債務」,因此在項目路線圖上從0變為1是一項巨大的工作。我們的流程涉及每個工作組圍繞共同目標生成路線圖,然後將重要工作流合併為整個項目的「史詩」,以突出我們的主要目標。
您可以在2019年項目路線圖中看到我們如何實現這些目標,或者在我們的2019年路線圖博客文章中深入了解我們如何選擇這些目標。
我們對包管理器的關注
去年,我們的主要目標是通過分析在包管理器中使用IPFS的需求和痛點來提高IPFS性能和可伸縮性。
這個目標的重點不是特別是軟體包管理,而是更多的是定義一個有代表性的用例,我們可以研究、測試、推動和改進,同時還將使所有具有相似性能和可伸縮性需求的下遊IPFS用戶受益,以添加,更新和獲取大型文件數據集。
專注於包管理器之類的代表性用例,使我們對IPFS改進的優先級有了重點和結構。我們構建了許多概念驗證(POC),例如apt-on-ipfs、npm-on-ipfs、clojars-on-ipfs和homebrew-on-ipfs,以分析IPFS在用戶對添加,更新的期望方面的表現如何,並獲取大型軟體包存儲庫-使我們能夠識別並修復主要的痛點。
例如,我們的POC確定了將GB的數據添加到IPFS的巨大瓶頸。進一步的測試通過切換到默認的異步數據存儲,使添加Linux和OSX設備的速度提高了一倍。
IPFS以前需要24分鐘添加Arch Linux存儲庫後,這些修復僅用了11 分鐘(與複製/粘貼時間相比)!注意:在Bader數據存儲上看到的改進,已經比flatfs快3倍!
我們的包管理器目標還幫助我們集中了用戶研究,季度目標和協作。在第一季度和第二季度,我們的包管理團隊調查了空間,並確定了包管理倉庫中記錄的核心需求。
這些見解為我們的OKR季度計劃和驅動功能提供了信息,從而使在IPFS上鏡像文件系統包管理器變得更加容易。
一個特別的附加功能是在「最後更新」時間向我們的unixfs數據模型添加元數據,以支持更智能/更快的軟體包更新(簡稱為「unixfsv1.5」,已在js-ipfs中實現;即將推出)。
其中許多針對包管理器的改進都將在我們的下一個功能版本go-ipfs 0.5.0中推出-請隨時關注或抓取最新主程序來嘗試一下!
我們還與IPFS用戶建立了合作關係,以合作夥伴改善包裝管理用例的IPFS。我們與Netflix的主要合作之一是使用我們的點對點數據傳輸算法Bitswap優化獲取大型容器圖像的速度。
IPFS群集還發布了協作群集,這是一項新功能,使程序包管理器維護者和鏡像程序可以跨IPFS節點社區添加和複製存儲庫。
藉助協作集群,任何維護者都可以將新的更新推送到要鏡像的數據引腳集,然後在所有鏡像節點上進行分片和同步。
我們已經看到像Pac-Man這樣的包管理器以及許多「數據包管理器」(如Wikipedia和Project Gutenberg)已添加到協作集群中,請按照以下說明添加您自己的包管理器!
我們如何實現包管理的目標
今年,我們在許多程序包管理器社區所需的大規模性能方面取得了長足的進步,但是很明顯,要實現廣泛採用並滿足更多類型的程序包管理器的需求,還有許多工作要做。
儘管專注於特定用例確實有助於我們識別和推動重要的修復,但它沒有為我們在整個IPFS生態系統中提供反饋意見,即哪些痛點是阻礙增長或增值的重中之重。
我們還發現,在軟體包管理器中增加IPFS使用率的許多方法實際上與我們要實現的核心目標不同:使IPFS本身更好。這種緊張需要持續保持警惕,以確保許多下遊用例(不僅僅是專用的軟體包管理器工具)都能感覺到功能和改進。
最後,我們成功地保持了專注,沒有建立另一個新的程序包管理器,而是獲得了大量功能和改進,以使IPFS更好地為每個人所用。
我們沒有成功的地方是將這些改進直接交付併集成到現有的程序包管理器中,以通過敬業的,有才華的開發人員社區來推動IPFS的採用和可見性。藉助go-ipfs 0.5.0中的功能和改進功能,未來的採用工作將大為暢通,但是我們還通過研究了解到,由於半發行版,許多軟體包管理者社區並不很快採用圍繞軟體包分發的新工具維護的無償性質。
為了支持更慢,更臨時的採用節奏,我們計劃使用DevGrants等渠道和協作以支持在自己的社區中行動的軟體包管理者採用者。這使我們能夠繼續將我們的核心工作組集中於改進和擴充核心協議和參考實現,同時支持許多社區應用程式和這些工具的完善。
2020年路線圖流程
在吸取了我們在2019年進行大規模製圖工作所遇到的勝利和挑戰之後,我們今年進行了略有不同的製圖過程。
與其從項目目標開始,以激發分布式工作組製圖過程(這很難合併,而且很難公開),我們決定改變現狀,並從社區廣泛呼籲主題和建議,以期IPFS項目在2020年應重點關注。
我們收到了11項很棒的建議,其中涉及許多領域,都提出了很棒的想法和討論。值得注意的提及包括Rust中的IPFS,移動IPFS,IPFS-Wikipedia和IPFS支持的GitHub。非常感謝您花時間編寫這些建議並指出核心需求和差距的社區成員,這些需求和差距直接進入了我們的下一階段!
在IPFS規劃的「尖峰」期間,我們評估了更廣泛的生態系統和項目健康狀況。
我們綜合了來自IPFS頂級用戶的反饋,從每個2020年主題提案的「核心需求與差距」部分中獲取了許多想法和需求。
我們還反思了IPFS項目的長期目標和重新關注北極星的使命所面臨的最大痛點和風險。
考慮到我們核心工作組的技能和能力,我們創建了一套決策標準,以確定在哪些方面分配IPFS貢獻者子集以獲得最大影響,並擴展了一組頂級候選人(均來自2020年主題提案以及探索更廣泛的項目痛點),並最終做出決定。
2020年重點:改善內容路由
根據我們的決策標準,我們選擇改善IPFS網絡中內容路由的性能和可靠性,作為接下來6個月(至2020年中)的主要優先事項。
「內容路由」是找到託管您要查找的內容的節點的過程,以便您可以獲取所需的數據並快速加載您的網站,dapp,視頻或數據。
隨著IPFS公用網絡在過去一年中的擴展(超過30倍!),它在我們的分布式路由算法中遇到了新問題:努力查找分散在許多不可靠節點上的內容。
對於IPNS而言,這尤其令人痛苦,因為IPNS依賴於多個這些緩慢/不可靠的查詢中,以查找文件的最新版本。這些性能差距導致IPFS在搜索所需內容時出現滯後和停頓,損害了最終用戶的體驗,並使IPFS感到不舒服。
搜索網絡以找到所需的內容(也就是使用IPFS作為分散的CDN)是新IPFS用戶最常見的操作之一,也是大多數由ipfs支持的dapp用例所必需的,因此,這是我們需要解決的第一大難題進行緩解以釋放網絡的更多採用和可擴展性!我們的年中目標:95%的內容路由速度小於5秒。
為了實現這一目標,我們已經成立了內容路由團隊(並拆分了包管理器工作組),以在接下來的6個月中將主要的工程工作重點放在此問題上。
要提高內容路由性能,需要對go-libp2p DHT 進行大規模的改進和錯誤修復,並更改我們在IPFS網絡中形成,查詢和解析內容的方式,以使其更快,更靈活。
這涉及研究、設計、實施和測試的組合。對整個網絡的配置進行更改並非易事,這就是為什麼我們一直在星際試驗場進行投資的原因,這是一組用於測試下一代P2P應用程式的新工具,可幫助我們在對整個公共網絡進行升級之前診斷問題並評估改進。您可以在內容路由ZenHub路線圖中跟隨團隊的工作:
在選擇此優先級之前,我們考慮了許多其他潛在目標,尤其是所有偉大的2020年主題提案。但是,我們認為將核心工作組的開發時間集中在主要的障礙和痛點上,以使整個生態系統得以成長和成功,這一點更為重要。
實際上,我們的許多主題提案非常適合通過DevGrants和協作實現社區所有權。其中有些,例如「 Rust中的IPFS」和「示例和教程」,已經獲得了與之相關的贈款或獎勵,社區團隊正在積極推進!
提高貢獻者速度&支持採用
使我們的核心go-ipfs開發人員深入關注內容路由的一部分,是將許多更改合併到核心存儲庫中的IPFS用戶和貢獻者的系統維護和改進。
隨著我們作為一個項目的發展,我們還沒有完成有意分配和分散這種管理權的必要工作,以使社區貢獻也可以擴展。我們希望為整個社區的人們創造更多的途徑,以加強對此的幫助,並為快速反饋循環的實驗建立更好的途徑。
我們還希望發展壯大並支持IPFS的眾多傑出貢獻者,並進行令人興奮的新探索以構建工具或解決新的用例。
在2020年主題集合中,有很多關於功能和重點領域的驚人建議,這些建議對該項目非常有價值,但我們的核心工作組無法在本季度推進。
為了解決這個問題,我們正在啟動社區DevGrants計劃,協議實驗室和其他小組可以在其中提供獎勵,RFP,並接受有關改進,新功能甚至新實現的開放式建議。
為此,我們在2020年主題提案流程中增加了許多獎勵,並且已經有7項以上針對性或公開撥款的提案,以進行更大範圍的改善,以幫助整個社區受益。如果您是IPFS的用戶或貢獻者,這對於贊助者和申請贈款或賞金都是一個很好的機會,可以使IPFS更好地為每個人服務!
為了幫助協調這項工作,我們正在創建一個新的「生態系統」工作組,該工作組由3個特殊興趣小組(SIG)組成,重點關注開發人員的經驗,協作和社區以及瀏覽器連接性。
我們的生態系統工作組的目標是通過協作,開發人員經驗和平臺可用性來確保社區健康和成長。3個SIG分別關注:
● 瀏覽器和連接性:最大化網絡上IPFS的可用性和連接性● 協作與社區:通過研究,協作和社區參與來支持IPFS用戶並增加新的機會● 開發人員經驗和維護:通過文檔,貢獻者經驗,API人機工程學和工具來支持IPFS技術社區
其他
自然,即使縮小了我們的關注範圍,我們的工作中仍有一些真正重要的方面需要持續的精力,例如IPFS網關。
儘管我們在運行的IPFS社區HTTP網關上看到了性能上的巨大飛躍(現在已經能夠支持10倍的使用高峰,並且將95%的響應時間減少了30-50%),但這仍然需要持續的增強,自動化和擴展努力支持2020年預期的增長和新用例。
我們的Bifrost團隊將繼續領導這裡的工作,同時確保我們的引導程序,預加載節點和其他有用的基礎設施運行順暢。
雖然我們肯定會在更廣泛的IPFS生態系統中的各個項目上進行其他維護工作,但要實現上述目標,我們將需要集中精力並「不立即」對我們要做的很多事情說。
我們對內容路由的關注越多,我們就能更快地改善每個人的網絡!這意味著社區貢獻者將有更多的機會成為與內容路由無關的模塊的主要維護者,推動使用React Native或行動裝置進行新的實驗,或添加閃亮的新功能以阻止新用途。
如果您想參與其中,請查看我們的貢獻準則,並參加IPFS辦公時間以獲取有關從何入手的指導!
前進!
我們還有令人興奮的6個月,而且我們已經步入正軌。非常感謝您的支持,如果沒有這個充滿激情和獻身精神的社區,IPFS將一事無成!
我們很高興在2020年繼續與您合作,建立一個有彈性的,可升級的,開放的網絡,以存儲和發展人類知識和文明!前進!