“細腰”戰(zhàn)事:技術(shù)架構(gòu)的進化
題記:誰具有靈活的外在表現(xiàn)形式,誰就能獲得回報——這正是進化的精髓所在。——凱文·凱利 《失控》
熟知的互聯(lián)網(wǎng)協(xié)議棧給了我們深刻的“細腰”概念。但這種架構(gòu)是如何產(chǎn)生的?它是必然的嗎?“細腰”架構(gòu)在商業(yè)、技術(shù)、工程上給了我們哪些啟示?互聯(lián)網(wǎng)新的細腰結(jié)構(gòu)在哪里?
故事1:CPU指令集的烽火戰(zhàn)事
處理器大戰(zhàn)的這段歷史,已經(jīng)沉睡在計算機歷史的博物館之中,鮮有人提及。
在20多年前,有許多不同的處理器平臺,戰(zhàn)事一觸即發(fā)。
首先是Intel的x86平臺,從8086開始,然后是8088、80286、80386,再到奔騰,等等,這些被稱為CISC(復(fù)雜指令集計算機)。
而在戰(zhàn)場的另一邊,則是基于RISC的處理器,蘋果產(chǎn)品、思科路由器和Sun Sparc工作站。
戰(zhàn)事的爭論可以歸結(jié)為:Intel x86 ISA是復(fù)雜混亂的,有點特別,難以使用,有時有bug,但在芯片級別提供了很多功能。另一方面,基于RISC的處理器有一個更簡單的ISA,更多的功能留給上層的軟件來完成。
二十多年后,戰(zhàn)事的溫度已經(jīng)消散,Intel x86 ISA輕松獲勝。我們?nèi)匀挥浀锰O果和思科的產(chǎn)品線從基于RISC的處理器轉(zhuǎn)移到x86平臺;AMD第一次開始制造x86“界面”的處理器,為了運行兼容英特爾處理器的軟件。
x86 ISA能夠獲勝的原因是什么?
英特爾x86 ISA雜亂無章,伴隨著摩爾定律總是在一段時間內(nèi)增加更多的功能,而與之競爭的RISC處理器則保持非常簡潔,把更多功能留給了上層軟件應(yīng)用。
這個原因可能是違背了大多數(shù)人的直覺。
事實上,微軟首席研究研究員Andrew Baumann在《硬件是新的軟件》一文中總結(jié)了 Intel x86 cpu和ISA的復(fù)雜性增長,并使用英特爾在2015-2016年圍繞軟件安全向x86 ISA添加12條新指令作為例子,展示了處理器在一段時期內(nèi)所增加的復(fù)雜性。盡管12條新指令聽起來可能不多,但這些特殊的指令要求在CPU中創(chuàng)建新的寄存器、新的堆棧結(jié)構(gòu)(包括聽起來相當(dāng)復(fù)雜的新影子堆棧)、新的異常處理進程(用于中斷)、更改內(nèi)存頁表格式等等。
這么做的主要目的是使開發(fā)人員能夠停止對軟件特定安全部分的信任,而開始信任硬件,而硬件(在理論上)是不能改變的。
原來如此。
Andrew Baumann說道:
摩爾定律(Moore’s Law)的放緩將加大銷售CPU的難度:如果沒有微架構(gòu)方面的改進,它們的運行速度不會大幅提高,也不會大幅提高能效,而且它們的核心數(shù)量與以前的cpu差不多,價格也與以前的CPU差不多。為什么會有人買一個新的CPU?英特爾轉(zhuǎn)向的一個原因是它的功能:如果新的CPU實現(xiàn)了一個重要的ISA擴展——比如說,一個軟件需要至關(guān)重要的安全擴展——消費者將有充分的理由升級。
如果把計算機系統(tǒng)堆棧分層來看,上層是應(yīng)用程序,底層是實際的硬件,ISA是整個堆棧的細腰部分。Andrew Baumann在《硬件是新的軟件》這樣總結(jié)到:“作為當(dāng)今商品技術(shù)堆棧中最穩(wěn)定的‘細腰’接口,x86 ISA對于很多系統(tǒng)來說都是一個關(guān)鍵點。”
哲學(xué):
- 細腰在應(yīng)對復(fù)雜問題的過程中非常重要。擁有最簡單的細腰是在任何系統(tǒng)中降低復(fù)雜性的最重要的事情之一。
- 有些情況下,“精簡”或者簡潔只是工程師的個人品味,和商業(yè)無關(guān)。
- 反過來看,復(fù)雜性是生存的基礎(chǔ),也并不可怕。關(guān)鍵是找到自己增長的“摩爾定律”,比如阿里的復(fù)雜性和“雙十一”。
- 細腰總是意味著商品化,而商品化反過來又意味著利潤下降。
- 細腰廠商要么學(xué)會用更少的利潤生活,擴展到其他領(lǐng)域,要么學(xué)會拓寬腰圍(比如像英特爾的SGX)。而拓寬腰圍意味著復(fù)雜性的增加,大多數(shù)情況下是以意想不到的方式,而且這又違背設(shè)計者簡潔的品味。
- 雖然說軟件吞噬世界,但請小心處理硬件和軟件之間的界限,在更廣泛意義來說,很難區(qū)分哪些該是硬件的,哪些該是軟件的。
- 那些承擔(dān)更多工作并對外提供簡單接口(隱藏復(fù)雜性)的組件(人)將贏得未來。
- 我們總是在拓寬細腰。
故事2:SQL語言的峰回路轉(zhuǎn)
互聯(lián)網(wǎng)和個人電腦出現(xiàn)之前,貝爾實驗室的兩位年輕科學(xué)家在發(fā)明C語言的時候,意識到,“計算機行業(yè)的成功在很大程度上取決于培養(yǎng)一批用戶,而不是訓(xùn)練有素的計算機專家。”
“他們想要一種查詢語言,像英語一樣容易閱讀,而且還包括數(shù)據(jù)庫管理和操作。對于沒有受過正規(guī)數(shù)學(xué)或計算機編程訓(xùn)練的用戶來說,這種語言更容易使用。”——20世紀70年代早期,IBM研究院的兩位博士Donald Chamberlin和Raymond Boyce在思考關(guān)系數(shù)據(jù)庫模型時,意識到查詢語言將成為采用該模型的主要瓶頸,于是著手設(shè)計一種新的查詢語言。
于是,SQL在1974年首次面試。在接下來的幾十年里,隨著System R、Ingres、DB2、Oracle、SQL Server、PostgreSQL、MySQL(以及更多)等關(guān)系數(shù)據(jù)庫占領(lǐng)了軟件行業(yè),SQL成為與數(shù)據(jù)庫交互的卓越語言,并成為日益擁擠和競爭激烈的生態(tài)系統(tǒng)的通用語言。
然而,隨著互聯(lián)網(wǎng)的不斷發(fā)展,軟件社區(qū)發(fā)現(xiàn)當(dāng)時的關(guān)系數(shù)據(jù)庫無法處理新的數(shù)據(jù)規(guī)模。之后,兩個新的互聯(lián)網(wǎng)巨頭取得了突破,開發(fā)了自己的非關(guān)系型分布式數(shù)據(jù)庫來應(yīng)對這種沖擊:谷歌的MapReduce(2004年發(fā)表論文)和Bigtable(2006年發(fā)表論文),以及亞馬遜的Dynamo(2007年發(fā)表論文)。
這些開創(chuàng)性的論文催生了更多的非關(guān)系型數(shù)據(jù)庫,包括Hadoop(基于MapReduce論文,2006年)、Cassandra(深受Bigtable和Dynamo論文的啟發(fā),2008年)和MongoDB(2009年)。這一切被稱為NoSQL運動。
NoSQL光彩閃耀,似乎是通向工程成功的捷徑。之后不久,巴別塔的語言效應(yīng)開始出現(xiàn):每個NoSQL數(shù)據(jù)庫都提供了自己獨特的查詢語言,這意味著需要學(xué)習(xí)更多的語言;將這些數(shù)據(jù)庫連接到應(yīng)用程序的難度增加,導(dǎo)致大量脆弱的粘合代碼;缺乏第三方生態(tài)系統(tǒng),要求公司開發(fā)自己的操作和可視化工具。
巴別塔的故事:當(dāng)時地上的人們都說同一種語言,當(dāng)人們離開東方之后,他們來到了示拿之地。在那里,人們想方設(shè)法燒磚好讓他們能夠造出一座城和一座高聳入云的塔來傳播自己的名聲,以免他們分散到世界各地。上帝來到人間后看到了這座城和這座塔,說一群只說一種語言的人以后便沒有他們做不成的事了;于是上帝將他們的語言打亂,這樣他們就不能聽懂對方說什么了,還把他們分散到了世界各地,這座城市也停止了修建。
還記得數(shù)據(jù)庫領(lǐng)域圖靈獎得主Michael Stonebraker的文章《MapReduce: A major step backwards》嗎?NoSQL語言的不成熟意味著在應(yīng)用程序級別需要更多的復(fù)雜性。連接的缺乏也導(dǎo)致了去正規(guī)化,導(dǎo)致數(shù)據(jù)膨脹和僵化。
反向的摩擦力使得社區(qū)重新回到SQL。首先出現(xiàn)的是Hadoop上的SQL接口(后來是Spark),引領(lǐng)業(yè)界從“NoSQL”轉(zhuǎn)向“Not Only SQL”。然后出現(xiàn)了NewSQL:完全支持SQL的新型可伸縮數(shù)據(jù)庫。
業(yè)界的焦點聚集在谷歌身上。
谷歌分別在2012年和2017年兩次發(fā)表Spanner的論文(作者包括最初的MapReduce作者),聲稱:
雖然這些系統(tǒng)提供了數(shù)據(jù)庫系統(tǒng)的一些優(yōu)點,但它們?nèi)狈?yīng)用程序開發(fā)人員經(jīng)常依賴的許多傳統(tǒng)數(shù)據(jù)庫特性。一個關(guān)鍵的例子是健壯的查詢語言,這意味著開發(fā)人員必須編寫復(fù)雜的代碼來處理和聚合應(yīng)用程序中的數(shù)據(jù)。因此,我們決定把Spanner變成一個功能齊全的SQL系統(tǒng),查詢執(zhí)行與Spanner的其他架構(gòu)特性緊密結(jié)合(比如強一致性和全局復(fù)制)。
在論文的后面,他們進一步闡述了從NoSQL到SQL轉(zhuǎn)換的基本原理:
Spanner的原始API提供了NoSQL方法,用于對單個表和交錯表進行點查找和范圍掃描。雖然NoSQL方法提供了啟動Spanner的簡單路徑,并且在簡單的檢索場景中仍然很有用,但是SQL在表達更復(fù)雜的數(shù)據(jù)訪問模式和將計算推給數(shù)據(jù)方面提供了重要的附加價值。
這篇文章還描述了SQL的采用并沒有止步于Spanner,而是實際上擴展到了谷歌的其余部門,在這些部門,多個系統(tǒng)共享一個共同的SQL語言:
Spanner的SQL引擎共享一種常見的SQL語言,稱為“標準SQL”,與谷歌上的其他幾個系統(tǒng)包括內(nèi)部系統(tǒng),如F1和Dremel(以及其他系統(tǒng)),以及外部系統(tǒng),如BigQuery…
對于谷歌內(nèi)的用戶,這降低了跨系統(tǒng)工作的障礙。針對扳手數(shù)據(jù)庫編寫SQL的開發(fā)人員或數(shù)據(jù)分析人員可以將他們對語言的理解轉(zhuǎn)移到Dremel,而不必考慮語法、空處理等方面的細微差異。
這種方法的成功不言自明。Spanner已經(jīng)是主要谷歌系統(tǒng)(包括AdWords和谷歌Play)的“真實來源”,而“潛在的云客戶對使用SQL非常感興趣”。
因此,有人質(zhì)疑:谷歌這個老司機是不是把大數(shù)據(jù)行業(yè)給帶偏了?
目前,所有主要的云供應(yīng)商都提供流行的托管關(guān)系數(shù)據(jù)庫服務(wù):例如,Amazon RDS、谷歌云SQL、用于PostgreSQL的Azure數(shù)據(jù)庫、當(dāng)然也有阿里巴巴的數(shù)據(jù)庫體系。Hadoop、Spark和Kafka上的SQL接口也繼續(xù)蓬勃發(fā)展。
亞馬遜 CTO甚至說:(與PostgreSQL和mysql兼容的)Aurora數(shù)據(jù)庫產(chǎn)品是“AWS歷史上增長最快的服務(wù)”。
這段歷史意味著SQL重新回歸數(shù)據(jù)的通用接口。數(shù)據(jù)分析軟件堆棧的細腰已經(jīng)形成。
哲學(xué):
- 從巴別塔的失敗中汲取教訓(xùn)。
- 所有的細腰都是語言接口,而SQL更明顯。
- 我們總是在拓寬細腰。
故事3:系統(tǒng)調(diào)用原語永存
這張地圖,描繪了免費開源軟件與微軟帝國的史詩般的斗爭。
在操作系統(tǒng)的戰(zhàn)場上,《軟件戰(zhàn)爭之后》的作者如此評價Unix家族樹:Unix和Linux還沒有打敗Windows的最大原因是工作站供應(yīng)商沒有在軟件上一起工作,因此不斷地重新實現(xiàn)彼此的特性。
1980年代的“ UNIX戰(zhàn)爭”之所以發(fā)生,是因為許多UNIX供應(yīng)商(他們的產(chǎn)品均基于原始Bell Labs UNIX的不同版本),其產(chǎn)品略有不同,并引起了激烈的競爭。
Unix在商業(yè)爆發(fā)之前已經(jīng)流行了很多年,但是其商業(yè)成功的關(guān)鍵是一波低成本工作站的迅速涌現(xiàn),它迅速將集中式微型計算機推到了一邊。這些工作站運行的操作系統(tǒng)在許多情況下幾乎與大型系統(tǒng)上的操作系統(tǒng)相同,但是它們更小,更便宜,以至于它們可以部署在單個員工的桌面上。一些供應(yīng)商進入了該市場以及相關(guān)的存儲和計算服務(wù)器市場。
問題是這些供應(yīng)商中的每一個都有自己的Unix版本。所有的Unix變體可能都有某種共同的遺產(chǎn),但是,當(dāng)它們出現(xiàn)在已部署的系統(tǒng)上時,它們已經(jīng)完全不同了。類Unix系統(tǒng)的異構(gòu)網(wǎng)絡(luò)給系統(tǒng)管理員,開發(fā)人員和用戶都帶來了挑戰(zhàn)。每種新的系統(tǒng)類型都有其自己的一套怪癖,錯誤和不完善的特性要處理。隨著各種Unix實現(xiàn)的分歧,它們變得越來越令人討厭。結(jié)果,許多組織試圖標準化單個供應(yīng)商,希望他們選擇了正確的供應(yīng)商。
要么,要么他們轉(zhuǎn)向那些當(dāng)時沒有以任何令人信服的方式運行Unix的廉價新PC系統(tǒng)。但是它們確實運行DOS(最終運行Windows),一旦運行它們,它們都是一樣的。打包的軟件變得隨時可用,到1990年代中期,越來越清楚的是,未來的桌面系統(tǒng)將不再運行Unix。令人沮喪的是,幾乎所有Unix工作站供應(yīng)商都在與Microsoft進行交易,并宣布未來的工作站(和服務(wù)器)將改為運行Windows NT。那是一個黑暗的時期。
Linux是在Windows幾乎遍布全世界的情況下,嘗試拯救世界。但是,幾乎從一開始,批評者就開始說Linux會像Unix一樣嚴重地分裂。
事情發(fā)展正是如此。
在商業(yè)面前,Unix和Linux的似乎沒有辦法汲取巴別塔的教訓(xùn)。
操作系統(tǒng)的細腰在拓寬,但Unix的哲學(xué)卻保留了下來。
作為細腰模型的案例經(jīng)常被提及的,一個互聯(lián)網(wǎng)協(xié)議棧,一個是Unix系統(tǒng)調(diào)用接口。
正是Unix的哲學(xué)讓系統(tǒng)調(diào)用的原語一直保存下來:
- 模塊化規(guī)則:編寫通過干凈接口連接的簡單零組件。
- 平行思考:大多數(shù)任務(wù)由可能并行運行的子任務(wù)組成。這也適用于用戶交互。并行可以節(jié)省大量時間和挫敗感。
- 分層思考:層次結(jié)構(gòu)允許跨嵌套元素統(tǒng)一應(yīng)用任務(wù)和屬性。這是一個鼓勵分解和模塊化的重大想法。
哲學(xué):
- 簡單。簡單性的一個關(guān)鍵方面是正交性。在服務(wù)接口中,正交性意味著只有一種方法可以訪問任何基本的底層服務(wù)或資源。冗余特性增加了接口的復(fù)雜性,卻沒有使它在邏輯上更強大。系統(tǒng)架構(gòu)師理解接口設(shè)計中正交性的價值,并且接受這種簡單形式的設(shè)計標準。Unix系統(tǒng)調(diào)用接口中的一個正交性示例是將目錄之間的文件移動分解為三個操作:創(chuàng)建物理鏈接(使用link())、在目標位置創(chuàng)建鏈接的副本,然后刪除原始鏈接(使用unlink())。這種復(fù)合性的文件移動操作是在用戶級命令(mv)中實現(xiàn)的。這使得用戶級文件移動操作可以很容易地一般化,包括物理卷之間的移動(這需要復(fù)制內(nèi)容),以及使用link()在同一個卷中實現(xiàn)有效的文件共享。
- 原語。人們經(jīng)常注意到,操作系統(tǒng)和互聯(lián)網(wǎng)支持的應(yīng)用程序的多樣性遠遠超過了其初始設(shè)計者所預(yù)見的。設(shè)計人員創(chuàng)建了一組通用原語,以便這些目標應(yīng)用處于原語所支持的空間中。這個空間還包括許多其他的應(yīng)用,包括許多最初沒有預(yù)見到的應(yīng)用。
- 抽象。實現(xiàn)資源限制和信息隱藏。細腰層提供其實現(xiàn)中的資源抽象,防止應(yīng)用程序直接訪問它們。信息隱藏是通過隱藏模塊的實現(xiàn)細節(jié)來實現(xiàn)模塊化編程,從而使用戶無需了解模塊內(nèi)部的復(fù)雜性。
故事4:IP協(xié)議適者生存
毫無疑問,互聯(lián)網(wǎng)的細腰是網(wǎng)絡(luò)層IP協(xié)議。盡管有很多文章宣稱UDP,TCP,HTTP成為新的細腰,但并沒有得到廣泛認可。
美國計算機學(xué)會(SIGCOMM)數(shù)據(jù)通信特別興趣小組在2011年的一項研究表明:互聯(lián)網(wǎng)細腰結(jié)構(gòu)的出現(xiàn)遵循一個進化模型,稱為EvoArch。在自然界中,共享同一生態(tài)系統(tǒng)的物種經(jīng)常爭奪資源,導(dǎo)致較弱的競爭者滅絕。互聯(lián)網(wǎng)架構(gòu)演變也發(fā)生了類似的事情:網(wǎng)絡(luò)的結(jié)構(gòu)隨著不同層新協(xié)議的創(chuàng)建而變化,現(xiàn)有協(xié)議由于與同一層其他協(xié)議的競爭而被刪除。
在分組交換網(wǎng)絡(luò)的發(fā)展過程中,開發(fā)了許多不同的協(xié)議(或協(xié)議棧)。隨著時間的推移,所有這些協(xié)議都被放棄了,轉(zhuǎn)而支持IP協(xié)議棧。例如,Banyan Vines有自己基于IP協(xié)議的協(xié)議棧,稱為VIP(Vines Internet Protocol),而Novell NetWare也有自己的基于IPX協(xié)議的協(xié)議棧,叫做IPX。其他標準化組織同樣創(chuàng)建了各自標準的協(xié)議族,如國際電信聯(lián)盟(International Telecommunications Union,ITU)就構(gòu)建了無連接模式網(wǎng)絡(luò)服務(wù)的協(xié)議族(Connectionless Mode Network Service,CLNS)。
為什么這些協(xié)議族都半途而廢了呢?因為其中一些協(xié)議是私有的,許多政府和大型組織出于各種原因拒絕了分組交換網(wǎng)絡(luò)中私有性質(zhì)的解決方案。私有協(xié)議通常是由少數(shù)人群開發(fā)和維護的,通常也會缺乏深思熟慮。基于標準的協(xié)議可能更復(fù)雜,但它們也往往由更多經(jīng)驗豐富的工程師開發(fā)和維護。基于CLNS的協(xié)議棧在過去的一段時間里一直是個有力的競爭者,但它從未真正在全球互聯(lián)網(wǎng)上流行起來,而當(dāng)時全球互聯(lián)網(wǎng)正成為一股重要的經(jīng)濟力量。還有一些具體的技術(shù)原因,例如,CLNS不對線路編號,而是對主機編號。可達性信息的聚合由此受到了許多方面的限制。
——《計算機網(wǎng)絡(luò):問題與解決方案》
EvoArch的研究指出:
- 細腰的上部在拓寬,但競爭是你死我活。文件傳輸協(xié)議(FTP)和HTTP提供的服務(wù)在特定于應(yīng)用程序的層中重疊。當(dāng)HTTP因其自身的高層產(chǎn)品(如Web瀏覽器等應(yīng)用程序)而變得更有價值時,F(xiàn)TP就消失了。
- 細腰的底層模塊每一個都必不可少,對于網(wǎng)絡(luò)來說,其主要原因可能是這些協(xié)議模塊靠近硬件,迭代周期長,沒有一個協(xié)議能夠占絕對的主導(dǎo)地位,所以長時間共同存在。
- 細腰部分出現(xiàn)古老而強大的協(xié)議。這些協(xié)議被稱為演化核心,很難進行重大修改。
- 競爭必然導(dǎo)致細腰,保持細腰多樣性的一個建議是在設(shè)計服務(wù)和功能時候不要重疊,以避免競爭。
- 最好的協(xié)議不一定在競爭中獲勝。
EvoArch的研究表明,即使未來的互聯(lián)網(wǎng)架構(gòu)最初不是以細腰的形狀構(gòu)建的,隨著它們的發(fā)展,它們也可能演進為細腰的形狀。
哲學(xué):
- 自由軟件在復(fù)雜的環(huán)境中工作得很好。也許根本沒有人了解全局,但進化并不需要全球的理解,它只需要局部的小改進和一個開放的市場(“適者生存”)。——Linus Torvalds
- 進化的結(jié)果,細腰緩慢地沿著協(xié)議棧向上移動。
- 良好的細腰設(shè)計帶來互操作性。
- 細腰結(jié)構(gòu)帶來部署擴展性。
- 保持較低的層次通用,以便最有效地滿足較高層次的特定要求。
互聯(lián)網(wǎng)新的細腰結(jié)構(gòu)在哪里?
IP成為互聯(lián)網(wǎng)協(xié)議的細腰之后,業(yè)界有兩個力量推進細腰結(jié)構(gòu)的演進。
第一個是社區(qū)推動整個網(wǎng)絡(luò)協(xié)議棧成為細腰。
第二個是NDN推動IP細腰向內(nèi)容細腰的轉(zhuǎn)變。
IPFS是一個雄心勃勃的項目,融合了NDN, Git, BitTorrent, IPFS, Tahoe-LAFS, SFS等多種思想,旨在取代HTTP構(gòu)建新的互聯(lián)網(wǎng)細腰。
在IPFS協(xié)議的腰部,是一個稱為星際鏈式數(shù)據(jù)(InterPlanetary Linked Data,IPLD)的數(shù)據(jù)結(jié)構(gòu)。簡單來說,IPLD是將傳統(tǒng)Posix語義的文件目錄樹映射為不同節(jié)點上的DAG圖,稱為IPFS unixfs 。IPFS unixfs 使用可插拔的數(shù)據(jù)分片算法對傳統(tǒng)posix 語義的文件進行分片。傳統(tǒng)posix 語義的文件是順序存儲的字節(jié),IPFS unixfs 是基于分片的有向無環(huán)圖。IPFS unixfs的最小單位是分片,這些分片被稱為葉子或者數(shù)據(jù)片,為了構(gòu)建有向無環(huán)圖,必然需要引入中間文件對象,這些中間對象通過一定拓撲hash為一個root CID。IPFS unixfs 這種構(gòu)建圖式數(shù)據(jù)存儲的方式被稱為IPLD,即是星際鏈式數(shù)據(jù),這也是IPFS 內(nèi)容尋址的基礎(chǔ)。
把IPLD這樣的數(shù)據(jù)結(jié)構(gòu)映射在互聯(lián)網(wǎng)的網(wǎng)絡(luò)結(jié)構(gòu)之上,IPFS就有了星際互聯(lián)的能力。
協(xié)議在變胖,應(yīng)用在變瘦,Web正在走向Web3。
和區(qū)塊鏈(Filecoin)一起,IPFS正在成為Web3的基礎(chǔ)設(shè)施。
分布式,模塊化,邊緣生長,元變化,。。。很多IPFS正在踐行的哲學(xué)需要IPFS自身給出證明。
我們拭目并報以溫暖的期待。
混沌和隨機是兩回事
在混沌中存在著秩序。——凱文·凱利 《失控》