當(dāng)前位置:首頁(yè) > 物聯(lián)網(wǎng) > 區(qū)塊鏈
[導(dǎo)讀] 在本篇文章中,我將會(huì)以一種讓任何擁有哪怕一點(diǎn)點(diǎn)技術(shù)經(jīng)驗(yàn)的人都能理解的方式,來(lái)試著解釋 Substrate 區(qū)塊鏈框架。 你也許已經(jīng)聽(tīng)說(shuō)過(guò)Substrate是一個(gè)用來(lái)搭建區(qū)塊鏈的可擴(kuò)展的、

在本篇文章中,我將會(huì)以一種讓任何擁有哪怕一點(diǎn)點(diǎn)技術(shù)經(jīng)驗(yàn)的人都能理解的方式,來(lái)試著解釋 Substrate 區(qū)塊鏈框架。

你也許已經(jīng)聽(tīng)說(shuō)過(guò)Substrate是一個(gè)用來(lái)搭建區(qū)塊鏈的可擴(kuò)展的、模塊化的以及開(kāi)源的框架。但這到底是什么意思呢?

Substrate提供了搭建一個(gè)分布式區(qū)塊鏈網(wǎng)絡(luò)所需的全部核心組件:

數(shù)據(jù)庫(kù)

網(wǎng)絡(luò)連接

交易隊(duì)列

共識(shí)

雖然這些層級(jí)是可擴(kuò)展的,Substrate 通常假定一般的區(qū)塊鏈開(kāi)發(fā)人員不應(yīng)該關(guān)心這些核心組件的具體實(shí)現(xiàn)細(xì)節(jié)。反之,Substrate 的核心理念是使一個(gè)區(qū)塊鏈的狀態(tài)轉(zhuǎn)換功能的開(kāi)發(fā)盡可能的靈活和簡(jiǎn)便。該層級(jí)被稱(chēng)為 Substrate 的運(yùn)行環(huán)境然而在我們?cè)敿?xì)了解所有這些細(xì)節(jié)之前,首先需要達(dá)成一個(gè)關(guān)于 “區(qū)塊鏈?zhǔn)鞘裁础?的共識(shí)。

什么是區(qū)塊鏈?

從最基本的形式來(lái)看,區(qū)塊鏈?zhǔn)且粋€(gè)簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu),其中數(shù)據(jù)的區(qū)塊聯(lián)結(jié)在一起形成一個(gè)有序的鏈。區(qū)塊鏈的具體細(xì)節(jié)因鏈的功能性不同而有所差異。然而,總的來(lái)說(shuō),所有區(qū)塊鏈應(yīng)該擁有一些共同的屬性。

區(qū)塊

區(qū)塊鏈中每個(gè)區(qū)塊都擁有一些能夠被用來(lái)生成一個(gè)對(duì)應(yīng)該區(qū)塊唯一識(shí)別符的數(shù)據(jù)。這些數(shù)據(jù)的其中一部分是前一個(gè)區(qū)塊,即 “父塊” 的唯一識(shí)別符。由于每個(gè)區(qū)塊都有一個(gè)指示器連接它的父塊,所有的區(qū)塊都能以一個(gè)確定性的方式有序排列。

任何單一區(qū)塊內(nèi)數(shù)據(jù)的細(xì)微變化將更改它的唯一ID。由于該區(qū)塊的ID被更改,在其后生成的區(qū)塊(子區(qū)塊)將也被更改。下一個(gè)子區(qū)塊也同樣,以及接下來(lái)的一個(gè),再下一個(gè)。..。.. 事實(shí)上,所有在被改進(jìn)的原始區(qū)塊之后生成的區(qū)塊將必須更改它們的唯一ID以維持整條鏈的穩(wěn)定。這意味著通過(guò)簡(jiǎn)單檢查鏈上最后一個(gè)區(qū)塊的唯一識(shí)別符便能夠輕松驗(yàn)證兩條區(qū)塊鏈?zhǔn)欠駬碛型耆嗤臄?shù)據(jù)。

區(qū)塊的生成

因?yàn)檫@些特性,區(qū)塊鏈系統(tǒng)被普遍用于記錄一個(gè)共享分類(lèi)賬。該分類(lèi)賬的內(nèi)容并非通過(guò)更改一個(gè)現(xiàn)有的區(qū)塊來(lái)更改,而是根據(jù)有關(guān)如何在塊與塊之間更改分類(lèi)賬狀態(tài)的指令說(shuō)明,通過(guò)向區(qū)塊鏈中添加新的區(qū)塊來(lái)進(jìn)行更改。這些指令通常被稱(chēng)為交易。

通常存在與分類(lèi)賬如何進(jìn)行更改相關(guān)的規(guī)則,這些規(guī)則由一個(gè)狀態(tài)轉(zhuǎn)換功能來(lái)定義。對(duì)于加密貨幣系統(tǒng)來(lái)說(shuō),這些規(guī)則非常簡(jiǎn)單。例如:

規(guī)則:用戶(hù)只能花費(fèi)他們自己的資金。

這些規(guī)則也可以更加復(fù)雜,甚至允許區(qū)塊鏈系統(tǒng)作為一個(gè)圖靈完備的計(jì)算機(jī),同時(shí)分類(lèi)賬作為該臺(tái)計(jì)算機(jī)的存儲(chǔ)。

一旦收集到一組有效的交易,它們將會(huì)被放入一個(gè)區(qū)塊內(nèi),然后將該區(qū)塊置于鏈的末端。這一區(qū)塊生成的過(guò)程允許區(qū)塊鏈的潛在狀態(tài)隨時(shí)間變化。

區(qū)塊的最終確認(rèn)

現(xiàn)在一個(gè)新的區(qū)塊已經(jīng)被生成了,它可以與其他趨于搭建相同共享分類(lèi)賬的區(qū)塊共享數(shù)據(jù)。然而,由于區(qū)塊鏈本質(zhì)上是去中心化的,有時(shí)候會(huì)出現(xiàn)兩個(gè)有差異卻仍舊有效的區(qū)塊在鏈的末端競(jìng)爭(zhēng)同一個(gè)位置的情況。不同的區(qū)塊的最終確認(rèn)機(jī)制能夠被用來(lái)決定哪些區(qū)塊所屬的鏈?zhǔn)且?guī)范化的區(qū)塊鏈。對(duì)于任何現(xiàn)有的區(qū)塊鏈,共享分類(lèi)賬的真實(shí)最終狀態(tài)應(yīng)該只有一個(gè)。任何區(qū)塊鏈的可替代狀態(tài)都被稱(chēng)為“分叉”。

分叉是正常的、可預(yù)期的,且一般來(lái)說(shuō)不是威脅。區(qū)塊的最終確認(rèn)過(guò)程旨在幫助非標(biāo)準(zhǔn)化鏈重新同步。我們將會(huì)在本文后半部分繼續(xù)講解分叉的內(nèi)容。

節(jié)點(diǎn)

到了現(xiàn)在,你應(yīng)該能夠了解到區(qū)塊鏈具有分布式和去中心化的特點(diǎn)。你希望全世界的多樣化用戶(hù)無(wú)需第三方中介機(jī)構(gòu)便能夠記錄這一共享分類(lèi)賬。通過(guò)遵循以上的規(guī)則,每個(gè)該共享分類(lèi)賬的參與者能夠運(yùn)行一個(gè)節(jié)點(diǎn)。該節(jié)點(diǎn)是一個(gè)遵循區(qū)塊鏈網(wǎng)絡(luò)規(guī)則,并與其它有著相同目的的節(jié)點(diǎn)相連接的計(jì)算機(jī)程序。所有的節(jié)點(diǎn)都無(wú)需中心化服務(wù)。

區(qū)塊鏈系統(tǒng)通常是 “開(kāi)源” 的系統(tǒng),這意味著任何人都能夠參與。為了阻止惡意行為者,激勵(lì)良好行為并懲罰不良行為的機(jī)制被建立。伴隨著以上這些機(jī)制的就位,一個(gè)區(qū)塊鏈系統(tǒng)將成為一臺(tái)不可阻擋的機(jī)器。

Substrate 組件

現(xiàn)在你有了一個(gè)對(duì)區(qū)塊鏈?zhǔn)鞘裁吹母邔蛹?jí)的認(rèn)識(shí),我們可以開(kāi)始了解 Substrate 是如何作為一個(gè)框架來(lái)進(jìn)行搭建工作的。對(duì)于 Substrate 框架的第一個(gè)解釋是可擴(kuò)展性。這意味著它對(duì)如何設(shè)計(jì)區(qū)塊鏈做了盡可能少的假設(shè),并試圖盡可能變得通用化。

數(shù)據(jù)庫(kù)

就像我們?cè)崂淼哪菢?,區(qū)塊鏈的核心是它的共享分類(lèi)賬,必須對(duì)其進(jìn)行維護(hù)和存儲(chǔ)。Substrate 不對(duì)區(qū)塊鏈中數(shù)據(jù)的內(nèi)容或結(jié)構(gòu)做出任何假設(shè)。底層的數(shù)據(jù)庫(kù)使用簡(jiǎn)單的鍵值存儲(chǔ),并在其上實(shí)現(xiàn)了改進(jìn)的 Patricia Merkle tree (trie)。這一特殊的存儲(chǔ)結(jié)構(gòu)使我們可以輕松地驗(yàn)證某元素是否在該存儲(chǔ)中。這對(duì)支持輕量級(jí)客戶(hù)端特別重要,輕量級(jí)客戶(hù)端將依據(jù)這些存儲(chǔ)證明與區(qū)塊鏈網(wǎng)絡(luò)進(jìn)行輕量級(jí)但去信任的交互。

網(wǎng)絡(luò)連接

為了去中心化的區(qū)塊鏈系統(tǒng)能夠通信,需要搭建一個(gè)點(diǎn)對(duì)點(diǎn)的網(wǎng)絡(luò)連接協(xié)議。Substrate 使用 libp2p 作為模塊化的點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)連接堆棧。通過(guò)這一網(wǎng)絡(luò)連接層,基于 Substrate 的區(qū)塊鏈能夠共享交易、區(qū)塊、節(jié)點(diǎn)以及其他系統(tǒng)的關(guān)鍵細(xì)節(jié)而無(wú)需中心化的服務(wù)器。

遵循 Substrate 的理念,libp2p 的獨(dú)特性在于它對(duì)任何特定的網(wǎng)絡(luò)協(xié)議不帶任何假設(shè)。因此,你能夠在基于 Substrate 的區(qū)塊鏈上實(shí)現(xiàn)及使用不同的協(xié)議。

如上所述,交易被收集、形成區(qū)塊,并最終定義了區(qū)塊鏈狀態(tài)的變化。然而,這些交易的順序會(huì)對(duì)分類(lèi)賬的最終狀態(tài)造成影響。Substrate 使你能夠全權(quán)控制網(wǎng)絡(luò)中交易的獨(dú)立性和隊(duì)列管理。Substrate 只假定一筆交易具有權(quán)重和一組用于創(chuàng)建從屬關(guān)系圖表的先決條件標(biāo)簽。這些從屬關(guān)系圖表在最簡(jiǎn)單的情況下是線性的,但它們也可能變得更復(fù)雜。Substrate 將自動(dòng)為你處理這些復(fù)雜的從屬關(guān)系。

共識(shí)

區(qū)塊鏈網(wǎng)絡(luò)可以通過(guò)不同的方式依據(jù)鏈的變化達(dá)成共識(shí)。傳統(tǒng)意義上,這些共識(shí)引擎與其它區(qū)塊鏈組件緊密耦合。然而,Substrate 花費(fèi)了額外的精力設(shè)計(jì)了一個(gè)能夠在開(kāi)發(fā)期間輕松更改的共識(shí)層。實(shí)際上,該設(shè)計(jì)的最終目的是在鏈上線后能夠進(jìn)行共識(shí)的熱交換!Substrate 中內(nèi)建了多種不同的共識(shí)引擎比如傳統(tǒng)的工作證明機(jī)制(POW),Aura (Authority Round),以及 Polkadot 共識(shí)。它的獨(dú)特性在于將區(qū)塊的生成過(guò)程(BABE)與區(qū)塊的終結(jié)過(guò)程(GRANDPA)區(qū)分開(kāi)來(lái)。

Substrate 運(yùn)行環(huán)境

目前為止,我們已經(jīng)講解了所有 Substrate 能夠提供的所有核心區(qū)塊鏈組件。正如你曾讀到的那樣,Substrate 已經(jīng)為保持通用性和可擴(kuò)展性竭盡所能。然而,可以說(shuō) Substrate 最能體現(xiàn)其定制化特點(diǎn)的部分是它的模塊化運(yùn)行環(huán)境。運(yùn)行環(huán)境指的是早先提到的 Substrate 的狀態(tài)轉(zhuǎn)換功能。

Substrate 相信一般的區(qū)塊鏈開(kāi)發(fā)人員不需要對(duì)以上列出的區(qū)塊鏈組件關(guān)心得太多。只要這些組件久經(jīng)沙場(chǎng)且可以投入生產(chǎn),實(shí)現(xiàn)過(guò)程的細(xì)節(jié)常常就沒(méi)那么重要了。然而,決定一個(gè)網(wǎng)絡(luò)中的內(nèi)容是否有效的區(qū)塊鏈的核心邏輯對(duì)于任何鏈來(lái)說(shuō)通常都是相當(dāng)重要的。

因此,Substrate 的核心理念是使得區(qū)塊鏈運(yùn)行的開(kāi)發(fā)盡可能的靈活和簡(jiǎn)易。

Substrate Runtime Module Library (SRML)

一個(gè)區(qū)塊鏈的運(yùn)行環(huán)境可被分為不同的邏輯化組件,它們被稱(chēng)為運(yùn)行模塊。這些模塊將控制區(qū)塊鏈管理的鏈上邏輯的某些部分。你可以將這些模塊想象成你系統(tǒng)中的“插件”。作為一名 Substrate 開(kāi)發(fā)者,你可以挑選你希望加入鏈中的模塊和功能。

比如,有個(gè)叫做“余額”的模塊管理著鏈上的貨幣。同時(shí)也有一組模塊比如“收集”、“民主”以及“選舉”處理著鏈上的決策和治理過(guò)程。甚至還有一個(gè)被稱(chēng)為“合約”的模塊能夠?qū)⑷魏位?Substrate 的鏈轉(zhuǎn)到一個(gè)智能合約平臺(tái)中。當(dāng)你在 Substrate 上搭建時(shí),將自動(dòng)為你提供這些模塊。

然而,你并不局限于使用 Substrate 提供的模塊。事實(shí)上,開(kāi)發(fā)者們可以輕松地搭建他們自己的運(yùn)行模塊,將其作為獨(dú)立的邏輯化組件,甚至能夠與其他運(yùn)行模塊直接進(jìn)行交互以構(gòu)建更復(fù)雜的邏輯。我們相信長(zhǎng)此以往,Substrate 中的模塊系統(tǒng)將會(huì)變得更像一個(gè)“應(yīng)用商店”,用戶(hù)在其中可以輕松的挑選想囊括的功能,并以入門(mén)級(jí)的技術(shù)知識(shí)部署分布式區(qū)塊鏈網(wǎng)絡(luò)!

無(wú)分叉的運(yùn)行更新

如果我們遵循 Substrate 模塊化生態(tài)系統(tǒng)與應(yīng)用商店的類(lèi)比,那么我們還必須解決如何更新運(yùn)行環(huán)境的問(wèn)題。無(wú)論是漏洞修復(fù),現(xiàn)有模塊的常規(guī)改進(jìn),甚至是添加區(qū)塊鏈的新功能,Substrate已經(jīng)具備了一流的更改運(yùn)行環(huán)境的能力。

然而,鏈上狀態(tài)轉(zhuǎn)換功能的更改也會(huì)影響網(wǎng)絡(luò)的共識(shí)。如果運(yùn)行在網(wǎng)絡(luò)中的某個(gè)節(jié)點(diǎn)具有一個(gè)版本的運(yùn)行邏輯,同時(shí)另一個(gè)節(jié)點(diǎn)擁有另一個(gè)不同的版本的運(yùn)行邏輯,那么這兩個(gè)節(jié)點(diǎn)將無(wú)法達(dá)成共識(shí)。它們將從根本上否決分布賬的真實(shí)狀態(tài),導(dǎo)致產(chǎn)生我們之前定義過(guò)的分叉的結(jié)果。這些不可協(xié)調(diào)的分叉會(huì)降低網(wǎng)絡(luò)的安全性從而造成很壞的影響,導(dǎo)致只有一部分的節(jié)點(diǎn)會(huì)正確地生成和驗(yàn)證新區(qū)塊。

Substrate 已經(jīng)通過(guò)讓網(wǎng)絡(luò)就運(yùn)行邏輯本身達(dá)成共識(shí)的方式解決了這個(gè)問(wèn)題!通過(guò)使用 Wasm 二進(jìn)制格式,我們能夠?qū)?Substrate 運(yùn)行代碼作為共享分類(lèi)賬的一部分放在區(qū)塊鏈上。這意味著任何運(yùn)行一個(gè)節(jié)點(diǎn)的人都能夠驗(yàn)證他們的節(jié)點(diǎn)是否擁有最新的邏輯。如果沒(méi)有,鏈上的 Wasm 將會(huì)被直接執(zhí)行!這意味著你的區(qū)塊鏈的運(yùn)行環(huán)境將能夠在即時(shí)網(wǎng)絡(luò)上實(shí)時(shí)更新,避免了產(chǎn)生分叉的風(fēng)險(xiǎn)!

Substrate 秉承著靈活性的精神,使你根本無(wú)需手動(dòng)啟動(dòng)此功能。如果你想要禁用鏈上升級(jí),你也可以做到。事實(shí)上,Substrate 將預(yù)先為你提供你的鏈所需的全部工具。

免費(fèi)和開(kāi)源

Substrate 是一個(gè)完全免費(fèi)且開(kāi)源的項(xiàng)目。它通過(guò)使用 Rust 編程語(yǔ)言來(lái)搭建,該語(yǔ)言旨在幫助開(kāi)發(fā)快速和固有安全性的軟件。Substrate 的協(xié)調(diào)和開(kāi)發(fā)通過(guò) Github 和 Riot 等公共社區(qū)的超過(guò)100多位個(gè)人貢獻(xiàn)者的幫助來(lái)進(jìn)行。

Substrate 是 Polkadot 中孵化出的項(xiàng)目,Polkadot 是一個(gè)擁有許多可互操作區(qū)塊鏈的更廣闊的世界愿景。Substrate 除了能夠幫助大多數(shù)成熟的鏈連接到 Polkadot 上之外,還賦予了生產(chǎn)級(jí)區(qū)塊鏈項(xiàng)目連接到該網(wǎng)絡(luò)的能力。當(dāng) Polkadot 主網(wǎng)啟動(dòng),你將因支持你的區(qū)塊鏈的技術(shù)與為其他多種生產(chǎn)級(jí)區(qū)塊鏈賦能的技術(shù)一致而感到安心。

Substrate 旨在成為區(qū)塊鏈革新者的無(wú)可反駁的最佳平臺(tái)和任何考慮搭建一個(gè)區(qū)塊鏈網(wǎng)絡(luò)的人的必然選擇。

總結(jié)

此時(shí)此刻,我希望你能夠明白為什么我們說(shuō) Substrate 是一個(gè)搭建區(qū)塊鏈系統(tǒng)的可擴(kuò)展的、模塊化的以及開(kāi)源的平臺(tái)。Substrate 開(kāi)發(fā)過(guò)程中的每個(gè)時(shí)點(diǎn)都以保持通用性為首要前提。因此,Substrate 將作為一個(gè)平臺(tái)被用于構(gòu)建未來(lái)的技術(shù),甚至是還從未被提及的那些。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉