Substrate 可以為區塊鏈開發做什麼?了解其主要目標與功能

2021-01-15 火星財經

免責聲明:本文旨在傳遞更多市場信息,不構成任何投資建議。文章僅代表作者觀點,不代表火星財經官方立場。

小編:記得關注哦

來源:鏈聞

原文標題:Substrate 可以為區塊鏈開發做什麼?了解其主要目標與功能

Polkadot 創始人 Gavin Wood 15 分鐘構建可行區塊鏈系統所採用的開發框架 Substrate 到底有什麼魔法?讓我們先簡單了解一下它功能和特性。

原文標題:《Substrate 極簡概括》撰文: Dmitriy Kashitsyn

今天我們將討論 Substrate,一個可以幫助你構建自己的自定義區塊鏈的庫。Substrate 是由 ParityTech 研發出來的,也為 Polkadot 提供了基礎。

什麼是 Substrate?

來自牛津字典的解釋:A substance or layer that underlies something, or on which some process occurs.(在某些事物的下面,或者可以基於它之上創建一些事物的物質或層)

顧名思義,Substrate 可以用來生長或在其上建造某種東西。在我們的案例中,我們可以構建區塊鏈,或者在 Polkadot 的案例中,可以構建一個完整的區塊鏈家族。

我為什麼需要 Substrate?

軟體歸根結底就是抽象。

計算機科學的歷史表明,我們不斷地得到越來越多的抽象:從離散邏輯到集成電路和 CPU;從機器代碼到彙編,從彙編到 C 語言,再到 C++、Rust、Haskell 等等。

編程 APIs 也是如此。例如,現在幾乎沒有人用純 HTML 編寫 web。

「每個問題都可以通過引入另一個抽象層來解決。除了很多抽象層的問題……所以我們發明了框架。」—— 改寫於安德魯·柯尼格的《金融時報》。

每個抽象層都試圖解決一個特定的問題。那麼,製造 Substrate 是為了解決什麼問題呢?事實證明,在開始實施全新的區塊鏈解決方案之前,你需要考慮很多事情:

為什麼還需要另外一個區塊鏈?!各種密碼原語:加密、籤名、RNG 等共識算法和容錯投票Proof of Waste、Proof of Stake、Proof of Authority? 還是其他完全不同的東西?塊結構和高效存儲、消息序列化P2P 網絡、對等發現、區塊和交易互通狀態機、執行運行邏輯、智能合約輕客戶端支持儘管 Substrate 沒有解決第一個問題,但 Substrate 可能會幫助你解決剩下的問題,因為它提供了現有的實現工具。這些都是基於我們多年開發區塊鏈的經驗而精心設計、編寫和測試。

當然,你也可以親自去實現所有這些任務,但我可以說,你最終可能會得到一個未經測試且沒有很好文檔記錄的解決方案。更不用說,通常你自己設計或實現的加密算法會被認為是一個非常糟糕的想法,除非你是一個密碼專家,而且你真的知道你在做什麼。

所以,通過提供典型算法的通用實現,Substrate 可以讓你集中精力在項目本身:鏈的業務邏輯,即其狀態機。

讓我們來看看區塊鏈中最重要的部分,看看 Substrate 可以提供什麼。

作為永久存儲的區塊鏈

任何區塊鏈的唯一目的,是提供一種可驗證的、全球性的、永久的存儲和轉變數據的方法,這意味著所有各方都要在任何時間點上,以一種零信任的方式來檢查和同意什麼樣的價值可以被認可。而且,一旦這些數據被封存,就應該是永久性的,根據共識,不可能對其進行篡改。

此屬性廣泛用於加密貨幣,其中永久存儲包含帳戶密鑰及其實際餘額。然而,需要注意的是,加密貨幣並不是唯一可能的區塊鏈應用。基本上,幾乎所有需要全局一致、永久存儲和可驗證交易歷史記錄的系統都可以通過某種方式使用區塊鏈實現。

Substrate 提供高效的存儲,非常容易使用,並且與 WebAssembly (Wasm) runtime 緊密集成。

作為功能的區塊鏈

為了根據待定的操作去更新鏈的狀態並改變其存儲,我們需要有一個決策點。

這些決策點可以表示為一個函數,它接受當前狀態和一組待定的操作,並產生另一個應被視為新的狀態的狀態。在區塊鏈世界中,這樣的函數被稱為狀態轉換函數(state transition function),簡稱 STF。

Substrate 可以讓你以一種可管理和可移植的方式來定義這樣一種功能。跟在網頁上執行的 JavaScript 非常相似,你可以編寫一組統稱為 runtime 的函數,這些函數將充當 STF。此外,這樣的實現將是可移植的,並不依賴於處理器架構、作業系統、瀏覽器,或者任何其他依賴平臺的方式。

事實上,即使是 Substrate 的底層技術都是密切相關的。Substrate 使用 WebAssembly 作為其 runtime 的通用語言,這正是 Mozilla、Google 和 Apple 等大公司目前正在集成的技術,在編寫 web 時作為一種更快但仍然兼容的 JavaScript 替代品。

安全和速度

用 Wasm 編寫鏈的邏輯和智能合約,意味著你將擁有最好的工具來以快速可靠的方式執行邏輯。但是,Substrate 有一種方法可以更快地執行代碼,並且沒有任何虛擬機的開銷。

Substrate 最革命性的部分是,包含 STF 的 runtime 圖像與其他有效載荷一起存儲在鏈上。這意味著 runtime 和整個鏈的業務邏輯可以以安全和可驗證的方式進行更新。更重要的是,由於 Substrate 及其 Runtime Module Library 都是用 Rust 程式語言編寫的,所以它們可以被翻譯成本地代碼和 Wasm。

在任何時候,客戶端軟體都有兩個編譯 runtime 的副本:一個是在軟體中本機編譯的,另一個是要在 VM 中執行的 Wasm 圖像。執行 runtime 函數時,客戶端軟體檢查 runtime 的鏈上 Wasm 版本是否與其編譯的本機內置版本匹配。這樣做後,客戶端軟體將 runtime 函數的執行委託給本機代碼版本。

無分叉升級

當 runtime image 在鏈上更新時,某些客戶端還沒有更新其軟體。在這種情況下,他們的節點將通過在 Substrate 的集成 Wasm 虛擬機上解釋 runtime 來執行正確的版本。因此,在任何情況下,網絡上的所有節點總是能夠正確地同步鏈(儘管效率不同),從而防止鏈分叉。

網絡

區塊鏈依賴於有許多參與者通過網絡進行通信。典型的解決方案是使用點對點技術來進行這種通信,而 Substrate 也不例外。P2P 是一組用於創建分布式網絡應用程式技術的通用名稱。

其主要思想是建立一個自我維持的網絡環境,在這個環境中,每個參與者(通常稱為節點)都能夠在網絡中運行,而無需事先配置或被授權。

為了確保節點可以在任何時候加入或離開網絡,而不影響整個網絡的連接性,Substrate 使用了 Rust 實現的 libp2p(https://github.com/libp2p/rust-libp2p) ,這是一個很有前途的網絡堆棧,它擁有建立分布式網絡環境所需的一切。

自定義消息

在最簡單的情況下,你甚至不需要考慮網絡,因為 Substrate 為你做了一切。你只需提供區塊鏈的狀態轉換功能,並將所有網絡交互留給 Substrate。但是,如果區塊鏈要求發送自定義消息,則可以通過提供明確自定義消息及其處理邏輯的特定的網絡協議,來自定義和擴展網絡子系統。

共識

有一個允許你從一個狀態轉移到另一個狀態的狀態轉移函數是好的,但還不夠。你還需要一種方式讓所有節點都同意下一個狀態應該是什麼。

作為一個銀行帳戶的擁有者,你最不想遇到的情況就是你和銀行在 「你的帳戶裡有多少錢」 上存在分歧。區塊鏈允許各方在不信任對方的情況下達成共識(因此零信任),即使在惡意參與者試圖破壞系統並竊取你的資金的情況下也是如此。

這是使用一個具有拜佔庭容錯(BFT)屬性的共識算法完成的。如果一個系統是 BFT,這意味著節點可以達成一致,即使其中的一部分表現惡劣,包括串通、截留消息和離線。BFT 共識系統能夠抵抗不同程度的網絡問題,在這些問題中,消息可以重新排序或延遲。一些 BFT 共識系統的設計使得當節點行為不當(例如,一次投票兩個區塊)時,它們可以受到懲罰,並在鏈上削減他們質押的 token。

對於支持在 Substrate 中的每個共識引擎,都將有一個 runtime 模塊,用於處理錯誤行為的證明。評估錯誤行為的影響可以由 runtime 確定。

從數學上證明,只要網絡中三分之二的節點沒有惡意並按照協議運行,該協議是可行的。這就是為什麼在網絡中有很多節點很重要的原因之一。

共識是任何區塊鏈應用程式的關鍵部分。幸運的是,Substrate 提供了一個已經可用的 BFT 共識,幾乎可以開箱即用。

根據使用場景的不同,你可以使用現有的塊創作邏輯,也可以提供自己的塊創作邏輯。在後一種情況下,你可以使用 BFT 的通用版本並使其適合你的需要。

Substrate 將繼續發展,並有更多的 共識算法加入到其中,包括在 Web3 基金會開發的 GRANDPA (GHOST-based Recursive Ancestor Deriving Prefix Agreement) 的最終確定小工具。

另外,由於 Substrate 是一個完全可擴展和可定製的框架,因此可以定義你自己的自定義共識算法。事實上,Substrate 是如此的靈活,它可以支持不是基於經典區塊鏈架構的解決方案。例如,我們正在研究如何通過設計一個不基於傳統塊概念的共識,來解決區塊鏈吞吐量問題。

輕客戶端支持

早期的區塊鏈實現是這樣設計的:網絡中的每個節點都在本地維護完整的區塊鏈資料庫。這現在被稱為 full client (完整客戶端),這意味著客戶端擁有作為網絡節點運行所需的一切。

完整客戶端(也稱為全節點)對於鏈安全非常重要。但是隨著區塊鏈的增長,客戶的資料庫變得越來越大。目前,主流加密貨幣擁有數百 GB 的資料庫。

當整個節點初始化時,它需要做的第一件事是與網絡的其他部分同步。由於安全原因,這樣的一個節點不能按原樣隨機從一個節點下載資料庫,而是需要從頭開始構建自己的資料庫,重新同步 genesis (鏈的第一個區塊)以來的所有交易。除了計算上的昂貴,這個任務還需要通過網絡傳輸大量的數據。

我想每個人都會同意,下載半兆字節的數據到你的手機上只是為了買一個三明治… 這是不切實際的,要不就是很荒謬。這就是為什麼,幾乎從一開始,區塊鏈開發人員就開始考慮降低節點維護成本的方法,包括存儲空間和網絡吞吐量。

最終,輕客戶的概念誕生了。簡言之,輕客戶端是區塊鏈節點的一種操作模式,其中只有最重要的數據存儲在本地,網絡交互減少到最低限度,同時為幾乎所有可能進行的交互保留可接受的安全性。

適度的資源需求最終允許輕客戶端節點輕鬆引導,因此可以在行動裝置上執行。

不幸的是,將輕客戶端支持集成到現有區塊鏈中是一項嚴肅的任務。在區塊鏈的初始設計中集成輕客戶端會更容易的多。Substrate 是在考慮到輕客戶端支持而專門設計的。基於 Substrate 構建的區塊鏈具有現成的輕客戶端支持。

總結

在這篇文章中,我們略讀了 Substrate 框架的主要目標和特性。要涵蓋 Substrate 的所有方面需要更長的文章,但希望你現在已經對這些概念有了大致的了解。雖然這還不足以開始編寫你的代碼,但至少現在你應該知道期待什麼。

要了解更多信息,請查看 Jack Fransham 之前的文章《什麼是 Substrate》。

如果你想深入研究並開始實現你的區塊鏈,最好的開始是 Parity Substrate Wiki。

另外,不要猶豫查看 原始碼,特別是 ReadMe 文件。

注釋1. RNG 代表隨機數發生器。並非每個 RNG 都適合區塊鏈應用。2. Substrate 本身現在正處於非常活躍的發展階段。代碼庫非常不穩定,文檔工作正在進行中。我們正在積極地填充 wiki,這是一個尋找更多細節的好地方:https://wiki.parity.io/3. Runtime module library 是一組可選的 Rust 大木箱,用於處理常見任務,如參數序列化和調用分派,並幫助你以最小的成本構建 runtime。這個庫是完全可選的,所以從頭開始設計自己的 runtime,或者使用任何可以編譯成 Wasm 的語言都是非常好的。除了 Rust 之外,目前只有 C 語言和 C++ 支持 Wasm 作為目標體系結構。

來源連結:mp.weixin.qq.com

相關焦點

  • 為何使用Substrate來構建區塊鏈?
    從比較抽象的層面來看,Substrate 是一個通過最新研究的區塊鏈技術創建加密貨幣和其他去中心化系統的框架。Substrate它實現了區塊鏈開發領域中所遇到的大部分通用功能,比如點對點網絡連接,可配置的共識算法,常用加密算法,資料庫存儲,交易管理等。
  • 區塊鏈錢包開發, 錢包開發技術服務
    開發錢包之前,我們需要有以下的預備知識。第一,什麼是錢包,以及相關的分類。本文站在開發者的角度,給讀者講解下怎麼樣和錢包進行交互,以及如何開發一個錢包。我們怎麼樣理解錢包呢?簡單講它是連接區塊鏈的一個入口。目前比較成熟的公鏈,如比特幣、以太坊都有很多錢包可以選擇。
  • Cosmos究竟可以做什麼,還被譽為了區塊鏈的網際網路
    Cosmos究竟可以做什麼,還被譽為了區塊鏈的網際網路 工程師周亮 發表於 2018-10-19 14:31:40 Cosmos被譽為「區塊鏈的網際網路」,也被認為是區塊鏈的3.0版本。
  • dfuse 開源區塊鏈開發堆棧,提供高階區塊鏈數據服務
    通過開源其數據棧,dfuse 將為開發者貢獻其能實時監聽、對全歷史查詢和可感知分叉的搜尋引擎(dfuse Search);交易推送保證和生命周期追蹤(dfuse Lifecycle);dfuse 歷史狀態服務(dfuse State),以及更多建立區塊鏈生態系統的所需的底層模塊。dfuse 目前已部署在許多基於 EOSIO 和以太坊區塊鏈上,並在積極針對其他協議進行開發。
  • 央行發布工作論文:區塊鏈能做什麼 不能做什麼?
    論文稱,不要誇大或迷信區塊鏈的功能。區塊鏈應用要立足實際情況。目前區塊鏈投融資領域泡沫明顯。*本文作者徐忠、鄒傳偉,來自中國央行官網,原文標題《區塊鏈能做什麼、不能做什麼?》
  • 什麼是夸克區塊鏈?
    夸克區塊鏈就是小編經常提到的QKI,那麼QKI到底是什麼呢?QKI,即QuarkblockchainIntegration的縮寫形式,意思是夸克積分,主要流通在夸克區塊鏈網絡中。QKI是夸克區塊鏈中的燃料(gas),任何涉及於夸克區塊鏈鏈上操作都需要用到QKI。
  • 區塊鏈應用廣|光大銀行使用螞蟻區塊鏈融資,阿根廷用區塊鏈分配...
    這不是CEB首次涉足區塊鏈貿易融資,它是中國銀行業協會倡議的參與者,其香港分公司參加了「輪廓信用證」區塊鏈(以前稱為Voltron)的試用。阿根廷——為天然氣系統配備區塊鏈網絡昨天,阿根廷區塊鏈公司IOV Labs宣布為該國的天然氣分配系統啟動Gasnet區塊鏈網絡。
  • 區塊鏈行業食物鏈_什麼是區塊鏈!區塊鏈是做什麼的?我們能用區塊鏈...
    「目前基本所有項目的公關費降為零,或者接近零。有些公司甚至把公關部整個裁掉。」上述區塊鏈媒體創始人說。  市場火熱時期的盲目海外擴張,如今變成頭部區塊鏈媒體為自己挖下的陷阱。  和林正真所在媒體齊名的另一家頭部區塊鏈媒體,高峰時期在美國、韓國均成立了海外辦公室。如今兩地的辦公室均取消,美國業務負責人不得已返回中國。「做海外肯定有很大投入進去,但是沒有產生效果。
  • Substrate 2.0 來了!
    FRAME - 區塊鏈可組合性框架Substrate 的模塊化是其核心設計原則的一部分 —— 你可以替換很多主要組件,從共識和終結性引擎(Substrate 隨附 AURA、BABE、GRANDPA 和已內置的可配置 PoW 引擎)等網絡堆棧,到 runtime 開發都可以替換。
  • 金融從業者需要了解的區塊鏈常識:區塊鏈的八大價值
    在《金融從業者需要了解的區塊鏈常識:什麼是區塊鏈?》中,筆者對區塊鏈的基本概念做了詳細介紹,今天來著重解析:我們為什麼需要區塊鏈?區塊鏈可以為我們帶來什麼價值?下文將從八個方面進行闡述。
  • 區塊鏈到底是什麼?了解IPFS/Filecoin前必讀
    區塊鏈(blockchain)是眼下的大熱門,要了解IPFS/Filecoin,首先了解清楚什麼是區塊鏈。其核心概念非常簡單,幾句話就能說清楚。希望讀完本文,你不僅可以理解區塊鏈,還會明白什麼是挖礦、為什麼挖礦越來越難等問題。一、區塊鏈的本質區塊鏈是什麼?一句話,它是一種特殊的分布式資料庫。
  • 波卡「巨變」:平行鏈路線圖、資產跨鏈、Substrate2.0
    3、發布Substrate 2.0北京時間9月23日凌晨,Parity Technologies發布第二版區塊鏈工具包Substrate v2.0.0 – two dot,即媒體所謂的Substrate 2.0。先來解釋一下Substrate 2.0,它是專門為開發者準備的工具包,以方便開發者根據其個性化的需求和商業邏輯」,快速地在部署自己的區塊鏈。
  • 光觸媒+區塊鏈誕生PHT光觸媒區塊鏈生態模型
    2014年前後,業界開始認識到區塊鏈技術的重要價值,並通過智能合約技術將其用於數字貨幣外的分布式應用領域。PHT生態項目使用區塊鏈可以為光觸媒創建這樣的系統。在基於區塊鏈的光觸媒信貸市場中,每種資產都將獲得一個數字身份,該數字身份連結到該資產的所有生產,並隨後與信貸的每個所有者相關聯。身份和所有權的記錄將駐留在區塊鏈上供所有市場參與者使用。然後,智能合約可以提供自動化的附加功能,在需要隱私的用例中,設備所有者可以加密地導出子鏈的子密鑰,因此設備所有者的身份可以保持混淆。
  • 四萬字乾貨 | 《高博士區塊鏈觀察18講》文字稿 帶你系統了解區塊鏈
    第二個階段是對以規則和機制為約束的未來行為的信任。在區塊鏈1.0中,主要是對代碼為表徵的機制的信任,在區塊鏈2.0中,則進化為對代碼為表徵的智能合約的信任。對機制和智能合約的信任,其前提要求規則公開,代碼公開,同時允許代碼本地化編譯和運行,且不可被篡改,但其關鍵是機制和智能合約要有強制執行力,代碼要實現與業務的綁定。
  • Whole Network創始人:三角形區塊鏈手機將給行業帶來什麼?
    為了驗證自己的想法,我們跑去做了大量的用戶調研,找到那些區塊鏈從業者、交易員、入門用戶的真正痛點與訴求,最終我們定義這是一款為幣圈投資人專屬定製的手機。這款手機,它除了要滿足用戶基礎使用手機的功能以外,還要解決區塊鏈用戶的痛點,將複雜的功能簡單化,將零散的功能集中化,讓區塊鏈用戶不管是交易還是學習,都更加方便。
  • Cosmos:讓區塊鏈實現多鏈交互的大宇宙
    Cosmos SDK是Cosmos的應用層工具模塊框架(軟體開發工具包),主要用來簡化區塊鏈應用的構建,其功能包括抵押機制、懲罰機制、IBC(跨鏈通信協議),帳戶、治理、獎勵和手續費等。開發者可以直接在Tendermint上快速搭建自己的應用層。
  • 區塊鏈科普——區塊鏈的What、Why、How
    今天帶來第一篇《導讀篇——區塊鏈的What、Why、How》,我們將從區塊鏈是什麼、為何而生、如何實現三個角度提綱挈領為大家理清區塊鏈技術脈絡,為未來細緻的科普內容提供理論基礎。區塊鏈為何而生?區塊鏈本質上是一個去中心化的資料庫。
  • 如何理解商界大佬為何發展區塊鏈,阿里在做什麼?
    事實上,此前馬雲也曾表示,對比特幣不看好,沒什麼興趣;馬雲是英語專業出身,對於技術可以說是一竅不通。不過,馬雲一直很重視技術,比如阿里巴巴首期投資1000億成立了達摩院,主要就做底層技術研發。 對於2018年十分火爆的區塊鏈技術馬雲也多次表態。在今天舉辦的第二屆世界智能大會上,馬雲又談到了比特幣和區塊鏈。
  • 區塊鏈底層技術架構石墨烯介紹
    4、功能完備、易操作 以多重籤名來舉例:比特幣也有多重籤名,但是比較複雜,功能特別簡單,只有M/N這種模式,就是說如果是5個人做多重籤名,3個人同意就可以通過,這是一個很簡單的多重籤名。 四、代表項目介紹 1、EOS EOS是Daniel Larimer 主導參與的第三個區塊鏈項目,也是目前他參與的項目中影響力最大的一個項目,是一種全新的基於區塊鏈智能合約平臺,旨在為高性能分布式應用提供底層區塊鏈平臺服務。 EOS 項目的目標是實現一個類似作業系統的支撐分布式應用程式的區塊鏈架構。
  • 區塊鏈電子發票應用落地 區塊鏈電子發票系統開發
    原標題:區塊鏈電子發票應用落地,區塊鏈電子發票系統開發