日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(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)類(lè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),類(lèi)似于以下設(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)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉