当前位置:首页 > 物联网 > 区块链
[导读] 本文旨在介绍如何开始构建可支持您自己的Runtime模块的自定义Substrate链: · 我们将通过substrate安装和设置来学习 · 探索substrate配置以及如何使

本文旨在介绍如何开始构建可支持您自己的Runtime模块的自定义Substrate链:

· 我们将通过substrate安装和设置来学习

· 探索substrate配置以及如何使用Polkadot JS浏览链状态

· 专注于介绍runTIme模块的结构,这是一种为链添加功能的方法。

在substrate进行开发

substrate和并发runTIme模块是用rust开发的,rust是一种静态类型语言,具有内存安全特性,提供速度和可靠性。

这是一个在区块链开发中经常被忽视的主题,但对于采用是至关重要的:如何解决Rust问题。我们不会在这篇文章中分析Rust代码,但对于对Substrate感兴趣的开发人员来说,这将是一个前所未有的关注点。

如何为新手解决Rust问题

对于编程语言来说,rust的学习曲线是陡峭的。这可以归因于它采用的一些语法约定,其中包括对泛型、特征、生命周期和宏等特性的高度依赖,以及范围和可变性等其他考虑因素。

其他Substrate学习资源,例如Substrate KitTIes声称Rust很容易掌握,但除非你有使用低级语言(如C ++)的具有一定经验,否则情况并非如此。更细粒度的API,用于处理系统级管理。

问:Rust书籍能否让您快速掌握Substrate采用的语言功能和概念?

答:是的,但我们建议您在阅读本书时练习自己的演示,以巩固您的理解。这将使Substrate中的编码更加舒适。

考虑到这一点,让我们在进入runTIme模块之前探索一些实用的Substrate设置和用法。

安装substrate

安装Substrate只需要在getsubstrate.io上调用Parity托管的一个bash脚本。 Substrate有两种方法安装:

1、快速安装

更快的Substrate安装,安装预构建的Substrate开发链,以及Substrate Scripts,一个用于配置自定义Substrate链和runtime模块的命令行实用程序。

通过与Substrate安装脚本一起使用的--fast标志运行快速安装基本上会跳过一些非强制运行Substrate的实用程序的安装:

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

这将获取Substrate所需的所有依赖项,包括Rust,OpenSSL,LLVM等,如果它们尚未安装,则安装它们。

2、整体安装

完整的Substrate安装将安装以上所有内容,以及其他两个实用程序:

subkey:生成或恢复基础密钥的实用程序(用于通过命令行管理帐户)

substrate node:可以连接到substrate 测试网的预配置substrate 节点。

运行以下命令以安装这些工具以及Substrate Scripts和开发节点:

// full Substrate installation

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

安装脚本完成后,更新您的cargo环境以调用新安装的程序:

// update env (alternatively, reboot your system)

source ~/.cargo/env

现在可以通过Substrate命令访问已编译的Substrate节点。要验证是否正确安装了Substrate和Subkey,请分别检查两个程序,Substrate和subkey的版本控制:

substrate --version

subkey --version

注意:Polkadot JS应用程序(我们进一步介绍)已在其帐户管理UI中实现了Subkey - 可以选择在浏览器中管理帐户,某些用户不需要Subkey。这可能有助于它为可选实用程序的原因。

所有都是Rust编译的二进制文件,默认情况下,Substrate和utility工具现在将驻留在〜/ .cargo / bin目录中。检查自己已安装的内容:

// list installed cargo binaries

cd ~/.cargo/bin

ls

您会注意到,除了Substrate和Subkey外,我们还可以使用Substrate-node-new和Substrate-module-new的二进制文件。我们将进一步使用这些来生成新的自定义节点和模块。

注意:另一个新编译的二进制文件是substrate -ui-new,一种用于克隆前端React app以管理Substrate链的工具。当我尝试运行应用程序时,这标记了一个错误,因此我们假设Polkadot JS / Substrate UI应用程序 - 另一个基于Typescript和React的应用程序,用于配置和管理Substrate和Polkadot区块链 - 是管理链的首选方法。

更新substrate脚本

更新Substrate脚本(从官方文档中提取)需要复制最新版本并使用以下命令替换cargo二进制文件:

f=`mktemp -d`

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

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

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

我们已经安装了所需的Substrate工具并准备好使用。我们现在确实可以通过预先构建的开发节点运行Substrate。此节点将开始生成块,但对开发用途不大。

注:Substrate开发人员使用此预构建节点,可通过Substrate路径访问,仅用于开发目的,测试其最新版本并播放配置。对于拥有自己的runtime模块和链配置的底层项目,我们将编译一个自定义节点。这需要复制Substrate源代码并构建我们的自定义节点。

无论如何,我们可以验证Substrate dev链是否正在使用此命令:

substrate --dev

您的节点将在终端中运行,并且将开始生成区块。为了查看有关您的链的更多信息,例如每个支持模块的状态,我们将转向Polkadot JS应用程序。

有关Substrate命令行选项的细分,请查看--help输出:

substrate --help

熟悉帮助输出是了解命令行程序功能的一种经过尝试和测试的方法。此生成包含一些用于测试的有用标志,例如预先配置的帐户--alice,--bob等。该--light标志将节点作为轻型客户端运行,并在框架中内置轻型客户端支持。

这些和其他标志使得切换链配置变得简单,主要用于开发目的。

注意:您甚至可以使用自定义Substrate节点定义自己的命令行选项。请记住更新--help输出!rust拥有广泛的命令行工具,是我个人最喜欢的命令行实用程序开发语言。

在进入自定义构建之前,让我们回顾一下如何检查Substrate链。今天这样做的主要方法是通过使用Typescript和React开发的Polkadot JS应用程序。

使用Polkadot JS

Polkadot JS应用程序充当基本链资源管理器,并提供API和接口来管理Substrate模块。顾名思义,它也支持Polkadot链。我们有两种使用Polkadot JS的选择:

使用Parity托管应用程序,网址为https://polkadot.js.org/apps复制项目的存储库并在您的计算机上本地运行。

让我们复制项目并在本地运行它。安装完成后,我们可以将节点端点指向我们的Substrate链,这将是您机器上的另一个正在运行的进程。

// 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

运行后,在浏览器中转到localhost:3000。 要将应用程序连接到本地链,请导航到应用程序侧面菜单中的“设置”,然后切换到“本地节点”端点,类似于以下设置:

当点击save&reload时,您会注意到现在有许多其他的侧菜单链接。这些链接将根据您的链支持的功能而变化。

让我们来看看几乎所有连店都会支持的东西 - 账户。转到应用程序的“帐户”部分,您将看到“我的帐户”标签下的帐户列表。这些是预先配置的帐户,具有预配置的余额。我们还可以在帐户之间发送资金,删除帐户和备份帐户密钥。这突出了Polkadot JS应用程序的用途 - 在UI级别与您的Substrate链进行交互。

在继续之前,我们将提到Polkadot UI可以做的更多事情,只是为了突出它的一些功能:

· 您可以上载wasm-compiled基于ink的智能合约以与Contracts运行时模块一起使用。

作为pos共识区块链,Staking部分允许您投入资金成为交易的验证者,支持通过“藏匿账户”存储这些stake资金,可以保持离线的账户或存储这些资金在冷钱包。提名验证人,也可以查看staking奖励。当然您也可以从stake存储钱包中提取资金。

· 民主部分的目的是处理行政投票和管理链

· 整个Substrate JSON RPC(通过一系列端点从外部联系Substrate的方法)可以在Toolbox部分进行测试,而对链的管理更改可以在Sudo部分进行

· 您可能想知道来自Substrate dev链的那些预先配置的帐户来自哪里,这是正确的。这些帐户以及更多内容(包括运行时逻辑本身的已编译代码的“blob”)存储在“链规范”文件中,也称为链规范。
来源: 区块链研究实验室

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

上海2023年9月21日 /美通社/ -- 云顶新耀(HKEX 1952.HK)是一家专注于创新药和疫苗研发、制造、商业化的生物制药公司,今日宣布与Kezar Life Sciences(以下简称"K...

关键字: SCIENCE IP BSP AD

北京2023年9月19日 /美通社/ -- 随着科技的快速发展,我们正处在一个数据爆炸的时代。超大规模数据中心作为数据的重要存储和处理场所,其数量在不断增长,与之而来的数据量也在呈指数级增长。这不仅包括原始数据,还包括分...

关键字: 分布式 节点 软件 数据中心

苏州2023年9月18日 /美通社/ -- 神秘莫测的幻境、光与影的魅力、绚丽多彩的灯光……9月15日,中亿丰光电新产品发布会在苏州举行。一系列美轮美奂的亮化照明"黑科技"产品,以沉浸式的方式,展现出...

关键字: 光电 AD 欧司朗 灯光

进入神经发育和神经退行性研究领域 德国海德堡2023年9月6日 /美通社/ -- 欧健生物医疗集团(European Wellness Biomedical Group,以...

关键字: 新唐 AN AD OS

(全球TMT2023年9月5日讯)在2023年华为云沙特峰会上,华为宣布,华为云利雅得节点正式开服。本次开服后,利雅得节点将成为华为云服务中东、中亚和非洲的核心节点。华为云利雅得节点通过3AZ(可用区)架构,提供了高可...

关键字: 节点 华为云 云服务 GO

沙特阿拉伯利雅得2023年9月4日 /美通社/ -- 在2023年华为云沙特峰会上,华为宣布,华为云利雅得节点正式开服,推动该国数字经济增长。 本次开服后,利雅得节点将成为华为云服务中东、中亚和非洲的核心节点,可提供创...

关键字: 华为云 节点 AI 数字化

全闪存存储的历史性时刻到来! 北京2023年8月30日 /美通社/ -- Gartner最新数据显示,2023年第一季度全球外部存储市场同比增长0.5%;其中,全闪存阵列同比增长3.6%,市场规模超过非全闪存阵列,占整...

关键字: 数据中心 数据存储 节点 机械硬盘

(全球TMT2023年8月29日讯)亚马逊云科技助力国际化智能营销服务商易点天下,面向全球用户推出了AIGC(人工智能生成内容)数字营销平台KreadoAI,提供包括AI数字人视频、AI模特商品图在内的多种解决方案,加...

关键字: AI 亚马逊 AD 模型

为客户提供营销新路径 提供AI数字人视频、AI模特商品图等解决方案,加速营销行业降本增效 北京2023年8月29日 /美通社/ -- 亚马逊云科技凭借其覆盖全球的云基础设施和在生成式AI和机器学习等前沿领域的创新服务...

关键字: 亚马逊 AI AD 生成式AI

杭州2023年8月25日 /美通社/ -- 8月17日,以"绿色永续制造"为主题,正泰新能常务副总裁、可持续发展官黄海燕在在近期的一次公开演讲中,公布了以2028年、2035年和2050年为主要时间节...

关键字: 可持续发展 光伏组件 ROM 节点
关闭
关闭