當(dāng)前位置:首頁(yè) > 物聯(lián)網(wǎng) > 區(qū)塊鏈
[導(dǎo)讀] 本文旨在介紹如何開(kāi)始構(gòu)建可支持您自己的Runtime模塊的自定義Substrate鏈: · 我們將通過(guò)substrate安裝和設(shè)置來(lái)學(xué)習(xí) · 探索substrate配置以及如何使

本文旨在介紹如何開(kāi)始構(gòu)建可支持您自己的Runtime模塊的自定義Substrate鏈:

· 我們將通過(guò)substrate安裝和設(shè)置來(lái)學(xué)習(xí)

· 探索substrate配置以及如何使用Polkadot JS瀏覽鏈狀態(tài)

· 專注于介紹runTIme模塊的結(jié)構(gòu),這是一種為鏈添加功能的方法。

在substrate進(jìn)行開(kāi)發(fā)

substrate和并發(fā)runTIme模塊是用rust開(kāi)發(fā)的,rust是一種靜態(tài)類型語(yǔ)言,具有內(nèi)存安全特性,提供速度和可靠性。

這是一個(gè)在區(qū)塊鏈開(kāi)發(fā)中經(jīng)常被忽視的主題,但對(duì)于采用是至關(guān)重要的:如何解決Rust問(wèn)題。我們不會(huì)在這篇文章中分析Rust代碼,但對(duì)于對(duì)Substrate感興趣的開(kāi)發(fā)人員來(lái)說(shuō),這將是一個(gè)前所未有的關(guān)注點(diǎn)。

如何為新手解決Rust問(wèn)題

對(duì)于編程語(yǔ)言來(lái)說(shuō),rust的學(xué)習(xí)曲線是陡峭的。這可以歸因于它采用的一些語(yǔ)法約定,其中包括對(duì)泛型、特征、生命周期和宏等特性的高度依賴,以及范圍和可變性等其他考慮因素。

其他Substrate學(xué)習(xí)資源,例如Substrate KitTIes聲稱Rust很容易掌握,但除非你有使用低級(jí)語(yǔ)言(如C ++)的具有一定經(jīng)驗(yàn),否則情況并非如此。更細(xì)粒度的API,用于處理系統(tǒng)級(jí)管理。

問(wèn):Rust書(shū)籍能否讓您快速掌握Substrate采用的語(yǔ)言功能和概念?

答:是的,但我們建議您在閱讀本書(shū)時(shí)練習(xí)自己的演示,以鞏固您的理解。這將使Substrate中的編碼更加舒適。

考慮到這一點(diǎn),讓我們?cè)谶M(jìn)入runTIme模塊之前探索一些實(shí)用的Substrate設(shè)置和用法。

安裝substrate

安裝Substrate只需要在getsubstrate.io上調(diào)用Parity托管的一個(gè)bash腳本。 Substrate有兩種方法安裝:

1、快速安裝

更快的Substrate安裝,安裝預(yù)構(gòu)建的Substrate開(kāi)發(fā)鏈,以及Substrate Scripts,一個(gè)用于配置自定義Substrate鏈和runtime模塊的命令行實(shí)用程序。

通過(guò)與Substrate安裝腳本一起使用的--fast標(biāo)志運(yùn)行快速安裝基本上會(huì)跳過(guò)一些非強(qiáng)制運(yùn)行Substrate的實(shí)用程序的安裝:

curl https://getsubstrate.io -sSf | bash -s -- --fast

這將獲取Substrate所需的所有依賴項(xiàng),包括Rust,OpenSSL,LLVM等,如果它們尚未安裝,則安裝它們。

2、整體安裝

完整的Substrate安裝將安裝以上所有內(nèi)容,以及其他兩個(gè)實(shí)用程序:

subkey:生成或恢復(fù)基礎(chǔ)密鑰的實(shí)用程序(用于通過(guò)命令行管理帳戶)

substrate node:可以連接到substrate 測(cè)試網(wǎng)的預(yù)配置substrate 節(jié)點(diǎn)。

運(yùn)行以下命令以安裝這些工具以及Substrate Scripts和開(kāi)發(fā)節(jié)點(diǎn):

// full Substrate installation

curl https://getsubstrate.io -sSf | bash

安裝腳本完成后,更新您的cargo環(huán)境以調(diào)用新安裝的程序:

// update env (alternatively, reboot your system)

source ~/.cargo/env

現(xiàn)在可以通過(guò)Substrate命令訪問(wèn)已編譯的Substrate節(jié)點(diǎn)。要驗(yàn)證是否正確安裝了Substrate和Subkey,請(qǐng)分別檢查兩個(gè)程序,Substrate和subkey的版本控制:

substrate --version

subkey --version

注意:Polkadot JS應(yīng)用程序(我們進(jìn)一步介紹)已在其帳戶管理UI中實(shí)現(xiàn)了Subkey - 可以選擇在瀏覽器中管理帳戶,某些用戶不需要Subkey。這可能有助于它為可選實(shí)用程序的原因。

所有都是Rust編譯的二進(jìn)制文件,默認(rèn)情況下,Substrate和utility工具現(xiàn)在將駐留在?/ .cargo / bin目錄中。檢查自己已安裝的內(nèi)容:

// list installed cargo binaries

cd ~/.cargo/bin

ls

您會(huì)注意到,除了Substrate和Subkey外,我們還可以使用Substrate-node-new和Substrate-module-new的二進(jìn)制文件。我們將進(jìn)一步使用這些來(lái)生成新的自定義節(jié)點(diǎn)和模塊。

注意:另一個(gè)新編譯的二進(jìn)制文件是substrate -ui-new,一種用于克隆前端React app以管理Substrate鏈的工具。當(dāng)我嘗試運(yùn)行應(yīng)用程序時(shí),這標(biāo)記了一個(gè)錯(cuò)誤,因此我們假設(shè)Polkadot JS / Substrate UI應(yīng)用程序 - 另一個(gè)基于Typescript和React的應(yīng)用程序,用于配置和管理Substrate和Polkadot區(qū)塊鏈 - 是管理鏈的首選方法。

更新substrate腳本

更新Substrate腳本(從官方文檔中提?。┬枰獜?fù)制最新版本并使用以下命令替換cargo二進(jìn)制文件:

f=`mktemp -d`

git clone https://github.com/paritytech/substrate-up $f

cp -a $f/substrate-* ~/.cargo/bin

cp -a $f/polkadot-* ~/.cargo/bin

我們已經(jīng)安裝了所需的Substrate工具并準(zhǔn)備好使用。我們現(xiàn)在確實(shí)可以通過(guò)預(yù)先構(gòu)建的開(kāi)發(fā)節(jié)點(diǎn)運(yùn)行Substrate。此節(jié)點(diǎn)將開(kāi)始生成塊,但對(duì)開(kāi)發(fā)用途不大。

注:Substrate開(kāi)發(fā)人員使用此預(yù)構(gòu)建節(jié)點(diǎn),可通過(guò)Substrate路徑訪問(wèn),僅用于開(kāi)發(fā)目的,測(cè)試其最新版本并播放配置。對(duì)于擁有自己的runtime模塊和鏈配置的底層項(xiàng)目,我們將編譯一個(gè)自定義節(jié)點(diǎn)。這需要復(fù)制Substrate源代碼并構(gòu)建我們的自定義節(jié)點(diǎn)。

無(wú)論如何,我們可以驗(yàn)證Substrate dev鏈?zhǔn)欠裾谑褂么嗣睿?/p>

substrate --dev

您的節(jié)點(diǎn)將在終端中運(yùn)行,并且將開(kāi)始生成區(qū)塊。為了查看有關(guān)您的鏈的更多信息,例如每個(gè)支持模塊的狀態(tài),我們將轉(zhuǎn)向Polkadot JS應(yīng)用程序。

有關(guān)Substrate命令行選項(xiàng)的細(xì)分,請(qǐng)查看--help輸出:

substrate --help

熟悉幫助輸出是了解命令行程序功能的一種經(jīng)過(guò)嘗試和測(cè)試的方法。此生成包含一些用于測(cè)試的有用標(biāo)志,例如預(yù)先配置的帳戶--alice,--bob等。該--light標(biāo)志將節(jié)點(diǎn)作為輕型客戶端運(yùn)行,并在框架中內(nèi)置輕型客戶端支持。

這些和其他標(biāo)志使得切換鏈配置變得簡(jiǎn)單,主要用于開(kāi)發(fā)目的。

注意:您甚至可以使用自定義Substrate節(jié)點(diǎn)定義自己的命令行選項(xiàng)。請(qǐng)記住更新--help輸出!rust擁有廣泛的命令行工具,是我個(gè)人最喜歡的命令行實(shí)用程序開(kāi)發(fā)語(yǔ)言。

在進(jìn)入自定義構(gòu)建之前,讓我們回顧一下如何檢查Substrate鏈。今天這樣做的主要方法是通過(guò)使用Typescript和React開(kāi)發(fā)的Polkadot JS應(yīng)用程序。

使用Polkadot JS

Polkadot JS應(yīng)用程序充當(dāng)基本鏈資源管理器,并提供API和接口來(lái)管理Substrate模塊。顧名思義,它也支持Polkadot鏈。我們有兩種使用Polkadot JS的選擇:

使用Parity托管應(yīng)用程序,網(wǎng)址為https://polkadot.js.org/apps復(fù)制項(xiàng)目的存儲(chǔ)庫(kù)并在您的計(jì)算機(jī)上本地運(yùn)行。

讓我們復(fù)制項(xiàng)目并在本地運(yùn)行它。安裝完成后,我們可以將節(jié)點(diǎn)端點(diǎn)指向我們的Substrate鏈,這將是您機(jī)器上的另一個(gè)正在運(yùn)行的進(jìn)程。

// clone and start polkadot.js app

git clone https://github.com/polkadot-js/apps.git

mv apps polkadot.js

cd polkadot.js && yarn start

// start substrate dev chain in another terminal window

substrate --dev

運(yùn)行后,在瀏覽器中轉(zhuǎn)到localhost:3000。 要將應(yīng)用程序連接到本地鏈,請(qǐng)導(dǎo)航到應(yīng)用程序側(cè)面菜單中的“設(shè)置”,然后切換到“本地節(jié)點(diǎn)”端點(diǎn),類似于以下設(shè)置:

當(dāng)點(diǎn)擊save&reload時(shí),您會(huì)注意到現(xiàn)在有許多其他的側(cè)菜單鏈接。這些鏈接將根據(jù)您的鏈支持的功能而變化。

讓我們來(lái)看看幾乎所有連店都會(huì)支持的東西 - 賬戶。轉(zhuǎn)到應(yīng)用程序的“帳戶”部分,您將看到“我的帳戶”標(biāo)簽下的帳戶列表。這些是預(yù)先配置的帳戶,具有預(yù)配置的余額。我們還可以在帳戶之間發(fā)送資金,刪除帳戶和備份帳戶密鑰。這突出了Polkadot JS應(yīng)用程序的用途 - 在UI級(jí)別與您的Substrate鏈進(jìn)行交互。

在繼續(xù)之前,我們將提到Polkadot UI可以做的更多事情,只是為了突出它的一些功能:

· 您可以上載wasm-compiled基于ink的智能合約以與Contracts運(yùn)行時(shí)模塊一起使用。

作為pos共識(shí)區(qū)塊鏈,Staking部分允許您投入資金成為交易的驗(yàn)證者,支持通過(guò)“藏匿賬戶”存儲(chǔ)這些stake資金,可以保持離線的賬戶或存儲(chǔ)這些資金在冷錢(qián)包。提名驗(yàn)證人,也可以查看staking獎(jiǎng)勵(lì)。當(dāng)然您也可以從stake存儲(chǔ)錢(qián)包中提取資金。

· 民主部分的目的是處理行政投票和管理鏈

· 整個(gè)Substrate JSON RPC(通過(guò)一系列端點(diǎn)從外部聯(lián)系Substrate的方法)可以在Toolbox部分進(jìn)行測(cè)試,而對(duì)鏈的管理更改可以在Sudo部分進(jìn)行

· 您可能想知道來(lái)自Substrate dev鏈的那些預(yù)先配置的帳戶來(lái)自哪里,這是正確的。這些帳戶以及更多內(nèi)容(包括運(yùn)行時(shí)邏輯本身的已編譯代碼的“blob”)存儲(chǔ)在“鏈規(guī)范”文件中,也稱為鏈規(guī)范。
來(lái)源: 區(qū)塊鏈研究實(shí)驗(yàn)室

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

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

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

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

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

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(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ā)表演講稱,數(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)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

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