如何配置区块链的规范

目标

生成chain-spec.json并包含它以供其他节点加入公共网络

用例

启动专用网络
修改现有的普通链规范而不编辑节点源代码

概述

一旦制作了一个Substrate节点,就开始想一个有许多对等点的网络!接下来一起看看,一种统一创建链规范文件并分发它们的方法,以便其他节点可以明确地发现并与新建节点的网络对等。

步骤

  1. 创建一个普通的链规范
    从你的节点的工作目录开始,并假设bin是node-template
./target/release/node-template build-spec > chain-spec-plain.json

我们刚刚为文件中设置的默认网络 生成了一个普通的链规范文件chain_spec.rs。该文件可以传递给其他节点

2.修改普通链规范(可选)
这个可选的步骤,我们可以利用现有的网络的普通链规范,否则就需要修改节点的源来在新的网络上运行。

这里我们使用相同的链规范,但传递一个标志来禁用bootnodes,因为我们想要一个新的网络,这些节点将是不同的。

./target/release/node-template build-spec --chain chain-spec-plain.json --raw --disable-default-bootnode > no-bootnodes-chain-spec-plain.json

这个no-bootnodes-chain-spec-plain.json可以用来生成一个SCALE存储编码的、可分发的原始链规范。

  1. 生成原始链规范
    有了可用的普通规范,就可以通过以下方式生成最终的原始链规范:
./target/release/node-template build-spec --chain chain-spec-plain.json --raw > chain-spec.json

4.发布链规范
通常的做法是在源代码中包含你的节点的链规范文件,这样任何人都可以用同样的方式构建你的节点,从而通过比较一个创世的blob和另一个创世的blob来检查非确定性变得容易。Polkadot、Kusama、Rococo和更多的网络链规范文件都可以在这里的源代码中找到,同时还有一个.gitignore文件,以确保你在进一步构建你的节点软件和进行运行时升级时不会意外地改变这些!/*.json文件。

5.启动一个新节点
如果您发布一个节点二进制文件,或者让用户自己构建,然后他们想加入您的网络,那么只需要相同的链规范文件并运行您的二进制文件:

# binary named `node-template`
# `chain-spec.json` obtained from canonical common source
node-template --chain chain-spec.json

这也可以简单地配置为默认网络。作为参考,你可以在这里看到Polkadot是如何实现默认命令的,在源码中使用各种网络的连锁规范.

示例

Polkadot 的相关链规范

猜你喜欢

转载自blog.csdn.net/qq_41394488/article/details/125366096