當前位置:
首頁 > 最新 > 一文讀懂分散式計算現狀與未來!

一文讀懂分散式計算現狀與未來!

來源:鏈聞(D:ChainNews_com)

撰文:Dani Grant,UNION SQUARE VENTURES 分析師

編譯:詹涓

自 1990 年代以來,人們一直試圖建立分散式計算網路;1996 年,網際網路梅森素數大搜索計劃GIMPS使用分散式計算搜索素數,1999 年,Seti@Home 利用志願者的計算能力搜尋地外生命。

25 年後的今天,拼圖上最後的幾個小碎片似乎已經就位。

加密貨幣一個令我們始終雀躍不已的應用是分散式計算。

在加密貨幣出現之前,如果有陌生人用閑置的伺服器運行了一個機器學習程序,我是沒法用自己的筆記本電腦轉給對方一點錢聊表謝意的。加密貨幣最終使我們能夠進行機器對機器的支付,以補償運行任務的參與節點。

加密貨幣使機器對機器的支付成為可能,而這使得貢獻 CPU 的參與者能獲得補償。機器學習、三維模擬和生物計算等領域對計算資源的需求越來越大。

我們一直在關注分散式計算項目,並希望分享不同的項目如何處理連接到網路的計算機數量不斷增加的問題,以及如何將任務從它們運行的計算節點中隔離開來的解決方案。

以下是我們的初步發現,分享給大家,供指正。

發展網路的方法

梅特卡夫定律Metcalfe』s law適用於計算網路:網路上的機器越多,機器在需要時接受新任務的可能性就越大。

發展計算網路非常困難,在空間越來越擁擠的情況下尤其如此。我得澄清一下,問題不在於人們已經安裝了什麼,不希望再安裝些什麼,而是一個項目想要取得突破,自然會面臨許多噪音。

以下是我們看到的四種有趣的方法:

方法1讓任何人都能輕鬆地加入網路。一個例子是 KingsDSpre-beta。想要加入,只要訪問瀏覽器中的 URL 並讓選項卡在後台運行即可。

方法2:幫助其他應用程序因共享用戶的資源而獲得補償。其中一個例子是FREEDcoinpre-beta。他們為遊戲開發者提供一套軟體開發工具包 SDK。當玩家啟動運行 FREEDcoin SDK 的遊戲時,他們有機會通過貢獻自己的 CPU 來換取遊戲中的獎勵。這會帶來三贏的局面:FREEDcoin 可以吸引高性能的遊戲 PC 加入其網路,遊戲開發者可以在不顯示廣告的情況下將遊戲貨幣化,而玩家也有機會獲得虛擬獎勵。

方法3:構建客戶機,以使每個節點都可以提交和完成任務。比如Golembeta可以在客戶端提交任務並進行計算,這意味著他們的每個最終用戶都可以簡簡單單地成為計算節點。這有助於他們在網路的兩端均衡成長。

方法4:最後一種方法是為其他計算項目提供計算資源。一個例子是SONMbeta,這是一個試圖幫助其他計算網路快速擴展的項目。有了SONM 的開放市場,機器可以通過標準化的格式顯示它們可提供多少 RAM、CPU 和 GPU。然後,任何使用 SONM 的項目都可以在整個 SONM 網路中搜索擁有可用資源的機器。

將任務與主機相隔離的方法

一個挑戰是確保任務不能讀取或修改主機的內存,反之亦然。如果多個任務同時在一台機器上運行,那麼它們之間彼此隔離也很重要。

保持數據私密性是一個艱巨的挑戰;儘管 SONM 是在 Docker 容器中運行所有任務,但它們也需要運行節點的合作夥伴簽署保密協議。大多數項目都依靠像 Docker 這樣的現有容器運行時來滿足這一需求。這完全說得通——有了現成的輪子後,誰還想再重新發明一個?

不過,在這個領域,有兩個項目正在做一些獨特的事情,值得單獨拎出來說。

Enigmapre-beta正在設計他們所謂的「秘密合約」——這些是計算節點,很像智能合約,但是因為每一塊數據被拆散分配到在同一個計算任務上工作的多個節點,單個節點無法讀取任何數據。他們使用 1980 年代開發的一種稱為「多方計算 MPC」的加密方法來實現該想法。Enigma 正在搭建自己的鏈來進行存儲和計算。

Keeppre-beta是另一個採用類似方法的項目。他們還使用多方計算來分割加密數據以執行計算,而計算節點不能讀取任何輸入的數據。通過 Keep,私有數據在集群中進行存儲和計算,輸出數據則被發布在區塊鏈上。

最後的想法:窄用例Vs.寬用例

對於分散式計算項目,可以採用兩種手段:構建一個通用的計算工具,它既可以接受任何工作負載,也可只接受少量範圍的任務。

Union Square Ventures所投的大多數公司都是從專心做一件事開始的,專註做一件事使它們得以成長,並圍繞著這一件事構建起一個網路和平台。比如我們投資的Cloudflare、Stash、Carta等,都是這種情況。

我認為同樣的模式對計算網路也很有效:從一個狹窄的用例開始,例如訓練機器學習模型、渲染 3D 圖形和蛋白質摺疊燈,這將幫助項目快速運作,並隨著時間的推移擴展到其他計算領域。

有人要問,從什麼用例開始起步最恰當?

似乎有兩條路徑:一條是從訓練機器學習任務開始,因為機器學習是增加計算資源需求的驅動因素之一。另一條路徑則是從像 3D 渲染或學術/科學計算這種用例開始,在這方面不存在保護私有數據的開銷。

總體而言這個領域尚處在早期,但前景令人興奮。計算供應商之間出現更大的競爭不僅會壓低價格並推動創新,而且可能會出現一種新的應用,比如 VR 和自動駕駛汽車,這種應用只有在分散式計算距離終端設備的速度比 us-west-2 區域還要快幾百毫秒時,才有可能實現。

以上是我在 6 月份我寫的一些總結,概述了我們所看到的計算項目類型。僅僅過去兩個月時間,在這個領域裡又出現了諸多快速發展,以下是我繼續分享的一些觀察。

隔離網路vs開放協議

分散式計算有兩種方式。在其中一種模型中,有一個佔主導地位的分散式計算協議,它創建了一個共享的計算機網路,任何人都可以在此基礎上構建介面和客戶機。就像 Heroku 和 EC2 一樣:它們都運行在 AWS 伺服器上,但是它們提供的介面有著截然不同的體驗,可以滿足不同的用戶。

而在另一種模型中,有一些佔主導地位的計算項目,每個項目都有其自己的計算機網路。

這兩種模式都允許共存的項目,服務於不同的受眾,但其中一種,項目是位於相同共享資源池之上的客戶,而另一種,它們都運行各自獨立的網路。這兩種模式有共存的可能性,但我認為考慮到網路效應,共存實際上並不可行。只要有機會,項目就可能會選擇接入現有的計算機網路,而不是構建自己的計算機網路,因為與從頭開始相比,在起初就能訪問更多的 CPU 可以為客戶提供更好的服務質量。

我們看到二者都有嘗試的用例。SONM 是一個試圖構建共享資源層的項目。此外則是由 Distributed Compute Labs 構建的「分散式計算協議」DCP。大多數其他項目目前都在構建自己的網路,不過有了開放協議,沒有什麼能阻止任何人為這些項目構建替代介面。我們可能會看到有些項目在開始時是其自身的系統,然後有機地發展成為在它們現在共享的資源層之上的客戶之一。我對共享計算層的可能性以及試圖構建它的團隊和項目感到非常興奮。

代幣的問題

我們一直在考慮的一個問題是,開發人員將使用哪些代幣,最終用戶又將使用哪些代幣。也就是說:如果用戶與在分散式計算網路上運行代碼的 DApp 進行交互,那麼用戶向 DApp 支付的費用,是否與 DApp 支付計算服務的費用相當?

現在,計算服務中的佔主流的答案是否定的。Akash、Render、Perlin、Enigma 和 SONM 是一些擁有自己交易代幣的計算項目。這與 IPFS/Filecoin 的模式相同,用戶可能會以任何面向消費者的主要貨幣目前看來是 ETH 或 BTC向 DApp 付費,而 DApp 則在背後換取它們提供服務所需的代幣。

另一方面,Hypernet 和 Truebit 是兩個有雙代幣模型的計算項目。

在 Truebit 中,購買者可以用 ETH 為服務付費,而 Truebit TRU 代幣僅用於協議特定的下注和爭議解決功能。這與我們今年在 The Graph 和 Augur 等基礎設施項目中看到的模式相匹配,這些項目使用主流消費貨幣進行交易,而它們自己的代幣僅用於治理、下注和爭端解決。

我預計,未來將有更多的項目轉移為雙代幣模型,因為它允許隨著網路的增長而增加治理的價格,但不會增加使用其服務的價格。

EC2模型vs. Lambda模型

在現有的 web2 世界中,存在兩種主要類型的計算服務:在EC2 模型中,開發人員得到的是一個運行和託管服務的環境,在Lambda 模型中,開發人員編寫可根據需要調用的函數。

分散式計算項目也可以分為兩類:一類以 lambda或 Cloudflare Workers為代表,用戶編寫腳本,項目在參與計算機上運行。另一種方法是 EC2 ,也就是「別人的計算機」:用戶與網路上的某人匹配,並可以在對方的計算機上運行容器。

注意,Lambda 方法還不完全是 Lambda在類 Lambda 分散式網路中的機器,不會存儲所有曾經推送給它們的函數,並根據需要調用它們。相反,這些網路用來離線運行和非同步腳本,以用於科學計算或繪製圖形等用例。我預計,隨著延遲的問題得到改善,它們會變得更像是無伺服器計算。

生態系統同時需要這兩種模型:託管 DApp 前端需要持久的主機,而運行一次性計算更適合在類似於伺服器的平台上作業。

在託管平台上運作的兩個項目是 Akash 和 DADI。從終端用戶的角度來看,Akash 實際上很像傳統的計算服務,開發人員在 Kubernetes 集群中 Akash 部署的機器上管理容器,這些容器可以在 Akash 網路上的機器之間進行聯合。Akash 是由 Greg Osuri 創立的,他也是 Federated Kubernetes 的貢獻者,這一點並非巧合。如果你想試試 Akash,他們最近剛推出了一個測試網。

在無伺服器平台上運作的兩個項目是 Ankr 和 DCP。

如何利用硬體設備

對於基於加密貨幣的分散式計算網路來說,分散式無伺服器計算項目的獨特之處在於,它們可以在陌生人的手機和筆記本電腦上運行代碼,因為除了一次運行一個小腳本之外,它們不需要持久佔用計算環境。

這裡的理念是,這些項目可以聯合所有未使用的終端用戶 CPU,形成一個巨大的超級計算機,而且費用比目前雲計算市場上的價格更便宜。

關於定價,我多說兩句:目前主流的看法是,分散式網路將更便宜,因為它們不必為物理空間付費,並且硬體資本支出成本已經算進去了。然而,正如風險投資機構 Placeholder 的研究員 Mario Laul 向我指出的那樣,雲計算定價已經趨近谷底,如果分散式服務出現並削弱主要參與者,那麼雲服務供應商可能會把價格壓到剛剛維持成本,以便保持競爭力。

目前一些項目能夠通過將終端用戶設備上的可用 CPU 集合起來,提供高性能計算環境,我對這些項目非常感興趣。

在終端用戶的設備上運行代碼有三大挑戰。第一個,是說服足夠多的人參與。前文已經有過討論。

第二個挑戰是,終端用戶設備的性能相對較低。為了解決這個問題,我們看到一些項目正在以並行化方式構建,以便同時在多台機器上同時運行代碼。Ankr 讓用戶將其代碼打包成塊,並分別提交給網路,再由作業調度程序,將其分配給不同的機器。DCP 以在「Web Workers」 中執行的 JavaScript 對象的形式,自動將應用程序的子任務分配到各個機器上。此外,DCP 還有一點同樣很聰明:它使用 WebGL 訪問終端用戶設備的圖像處理器,從而進一步提升效率。

第三個挑戰是終端用戶的設備不是可信硬體。自從我們在 6 月發表該文的上半部分以來,在利用 SGX 方面已經有了很大的進展SGX 是英特爾晶元中內置的可信硬體環境。

此後,Enigma發布了一個利用 SGX 進行計算的測試網,Golem發布了 Graphene-ng 以幫助開發人員編寫支持 SGX 的代碼,Oasis Labs則通過 從 a16z 等機構募集了 4,500 萬美元,用於構建支持 SGX 的分散式計算平台。

三大筆記本電腦製造商:惠普、聯想和戴爾都支持 SGX。MacBook 有了支持 SGX 的晶元,但 BIOS 還沒有配置完成,還不能讓操作系統支持該功能。等到有一天蘋果也加入 SGX 陣營,全球四大筆記本電腦品牌都將內置支持 SGX 的計算。

我自己一直在為 SGX 搖旗吶喊,因為它在消費類筆記本電腦上相當安全並且容易實現。

除了 SGX,分散式計算協議可驗證計算的另一種方式是通過解決爭議。Truebit就是一個帶有爭議解決協議的計算項目,他們稱之為「驗證遊戲」。驗證者使用 TRU 代幣來挑戰計算結果。

在 Truebit 的爭議解決機制中,在運行程序的每一個時間步,「解決者」的狀態都會被計算哈希值——實際上,任何給定的指令都可能無法在以太坊的 gas 上限內執行,因此 TrueBit 將每條指令分解為 16 個子步驟。然後,驗證程序查詢哈希狀態,以找到出錯的指令,再在以太坊上運行有爭議的步驟或子步驟以獲得最終結果。無論哪一方出錯,都會失去他們的賭注,這些代幣將被支付給獲勝方。

在堆棧上的什麼位置進行計算最合適?

一個懸而未決的問題是,計算服務最終會成為第一層還是第二層的解決方案。也就是說:下一個主要的區塊鏈是否將計算包含為內置服務,或者計算總是在鏈下運行。

計算之所以要在鏈下完成,是因為目前可用的主要區塊鏈要麼是比特幣,其腳本語言有限,要麼是以太坊,其計算成本高昂且速度緩慢。而在未來,很可能會出現這樣一種局面:第 1 層區塊鏈能夠以一種不需要網路中每個節點都運行相同計算的方式進行計算,這將使計算成本更低,速度更快。Perlin 是一個試圖構建此功能的項目。不過即使在 Perlin 中,計算服務也是作為主 Perlin 基鏈的側鏈來實現的。

大多數項目要麼構建現有區塊鏈的側鏈,要麼是完全獨立於現有基礎鏈的鏈下網路。Render是第一種方法即現有區塊鏈的側鏈的一個例子,以太坊智能合約會與 Render 網路交互。Akash則是後者即獨立存在的鏈下網路的一個例子,它是一個完全獨立的網路。

我比較喜歡輕型的橫向協議,它們可以彼此分層,而不是形成無所不能的超級協議區塊鏈。這就是互聯網現在的工作方式:彼此疊加的小型協議SMTP> STARTTLS> TCP> IP。它可以帶來可重用的模塊QUIC 和 DNS 都可以使用 UDP 而無需對 UDP 進行更改,擁有輕鬆更換和升級層的能力,例如,HTTP 可以與 SPDY 交換或從 HTTP 1.1 升級到 HTTP 2.0,同時無需更改下面的層。

開拓區域市場

最後我要說的是,我們看到一些項目喜歡集中在一個區域市場上,這或許非常機智。

例如,DCP首先向加拿大的大學和實驗室提供計算,不過通過這個過程,他們也讓加拿大以外的地方產生了很多興趣。

又比如Ankr,它正將更多的精力投入到中國的計算市場,在那裡對計算的需求正在飛速增長一個可以見的例子是,阿里雲的收入同比增長了 104%,而亞馬遜的雲服務 AWS,卻在中國沒有一個強有力的據點。

我們認為,這些有針對性的開拓區域市場的舉措,可以產生絕妙的效果。

本文已獲得 Dani Grant 授權,由鏈聞刊發中文翻譯。

在公眾號里回復「入門課」三個字。

那裡有兵哥為你準備的更多的免費的區塊鏈乾貨。

喜歡就關注我們吧!

GIF

區塊鏈天天說

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 區塊鏈天天說 的精彩文章:

TAG:區塊鏈天天說 |