设置Moonbeam开发节点¶
概览¶
本教程将引导您如何创建一个Moonbeam开发节点,用于测试Moonbeam的以太坊兼容性功能。
注意事项
本教程使用Moonbase Alpha的v0.30.0标签创建。为实现与以太坊的全面兼容,基于Substrate的Moonbeam平台和Frontier组件正处于积极开发阶段。 本教程示例基于Ubuntu 18.04和MacOS的环境,用户需根据其所使用的Windows版本进行微调。
Moonbeam开发节点是基于您的个人开发环境,在Moonbeam上构建和测试应用程序,相当于以太坊开发人员使用的Ganache。Moonbeam助您快速轻松上手,无需承担中继链的成本。您可以使用--sealing
选项,立即启动节点来创建区块,或者在交易完成后的自定义时间段创建区块。默认情况下,收到交易意味着一个区块即被创建,类似于Ganache的instamine功能。
如果您完整地遵循本教程操作,您可顺利在本地环境运行Moonbeam开发节点,同时获得10个预注资的账户,并将其连接至默认的Polkadot.js GUI。
目前有两种方式运行Moonbeam节点:使用Docker来执行预建二进制,或在本地编译二进制设置开发节点。点击此处便可安装Docker。Docker更为快速便捷,您无需安装Substrate和所有依赖项,且无需构建节点即可运行。另一方面,如果您仍希望体验构建开发节点进程,则需要大约30分钟或更长时间完成,具体情况取决于您的硬件设备。
使用Docker进行安装与设置¶
使用Docker可让您在几秒钟内启动节点。安装Docker后,您可执行以下命令下载相关镜像:
docker pull purestake/moonbeam:v0.30.0
控制台日志的结尾应如下所示:
完成Docker镜像下载后,接下来是运行镜像。
您可以通过以下命令运行Docker镜像:
docker run --rm --name moonbeam_development --network host \
purestake/moonbeam:v0.30.0 \
--dev
docker run --rm --name moonbeam_development -p 9944:9944 \
purestake/moonbeam:v0.30.0 \
--dev --ws-external --rpc-external
docker run --rm --name moonbeam_development -p 9944:9944 ^
purestake/moonbeam:v0.30.0 ^
--dev --ws-external --rpc-external
该命令可通过即时密封模式启动Moonbeam开发节点以进行本地测试,因此收到交易时区块即被创建。如果节点已经启动,您将看到显示区块待创建的空闲状态界面:
您可点击常用标志及选项来查阅更多实例的标志及选项。如果要查看所有标志、选项和子命令的完整列表,请通过运行以下命令打开帮助菜单:
docker run --rm --name moonbeam_development \
purestake/moonbeam \
--help
如果您已经使用Docker来启动节点,则可以跳过下一部分的教程,直接进入设置Moonbeam本地节点并连接至Polkadot.js GUI。
使用二进制文件进行安装与设置¶
注意事项
如果您了解目前所在执行的操作,您可以直接在Moonbeam版本发布页面上下载每个版本附带的预编译二进制文件。但这并不适用于所有系统,例如:二进制文件仅适用于具有特定依赖项版本的x86-64 Linux。确保兼容性的最安全方法是在运行二进制文件的系统中编译二进制文件。
第一步,我们通过以下链接来克隆一个Moonbeam Repo的特定标签:
https://github.com/PureStake/moonbeam/
git clone -b v0.30.0 https://github.com/PureStake/moonbeam
cd moonbeam
如果您已安装Rust,您可跳过以下两个步骤。如果您未安装Rust,请执行以下命令通过Rust推荐方式安装Rust和其先决条件:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
接下来,运行以下命令更新您的PATH环境变量:
source $HOME/.cargo/env
现在,运行以下命令构建开发节点:
cargo build --release
注意事项
初始构建将会需要一些时间,取决于您的硬件设备,安装节点大约需要30分钟。
输出的末尾应如下所示:
然后,您可以通过以下命令运行开发节点:
./target/release/moonbeam --dev
注意事项
如果您是Substrate入门者 ,您可通过单节点的开发者配置,使用--dev
标志运行基于Substrate的节点。您可从Substrate指南了解更多信息。
您将看到显示区块待创建的空闲状态界面:
您可点击常用标志及选项来查阅更多用于实例的标志及选项。如果要查看所有标志、选项和子命令的完整列表,请通过运行以下命令打开帮助菜单:
./target/release/moonbeam --help
将Polkadot.js Apps连接至本地Moonbeam节点¶
开发节点是基于Substrate框架的节点,您可使用标准的Substrate工具来与之交互。两个可使用的RPC端点如下所示:
- HTTP -
http://127.0.0.1:9944
- WS -
ws://127.0.0.1:9944
首先,我们将节点连接至Polkadot.js Apps。打开浏览器并输入链接:https://polkadot.js.org/apps/#/explorer。进入网站之后,Polkadot.js Apps将被启动,并自动连接至Polkadot主网。
点击左上角打开菜单进行网络配置,然后执行以下步骤:
-
往下滑,打开Development子菜单
-
点击Local Node后Polkadot.js Apps将连接至
ws://127.0.0.1:9944
。若未连接成功,您可在custom endpoint下方手动输入 -
选择Switch按钮后将自动连接至您的Moonbeam开发节点
成功连接Polkadot.js Apps之后,您将看到Moonbeam开发节点生产区块的情况。
查询账户状态¶
Moonbeam拥有统一账户系统,使用户能够拥有与Substrate API和以太坊API交互的以太坊格式H160账户。因此,您可以通过Polkadot.js Apps或MetaMask查看账户余额。
要使用Polkadot.js Apps查看账户余额,您可以在Accounts标签处导入您的账户。详细教程请参阅使用Polkadot.js Apps与Moonbeam交互。
如上所述,您也可以使用MetaMask查看账户余额。另外,您还可以使用其他开发工具,如Remix和Truffle。
常用命令、标志及选项¶
清除您的节点¶
通过二进制文件运行节点时,数据存储在本地目录中,该目录通常位于~/.local/shared/moonbeam/chains/development/db
。如果要启动该节点的新实例,您可以删除该文件夹的内容,或者在moonbeam
文件夹中运行以下命令:
./target/release/moonbeam purge-chain --dev -y
这将删除数据文件夹,请注意,所有链数据均已丢失。想要了解所有可用purge-chain
命令,您可以查看文档的清除二进制数据部分。
如果您使用Docker和-v
标志来启动您的节点,为您的Docker容器指定挂载目录,您将需要清除该目录。为此,请运行以下命令:
sudo rm -rf /var/lib/alphanet-data/*
如果您在操作中未使用-v
标志,您可停止并清除Docker容器,同时关联的数据也将被清除。为此,请运行以下命令:
sudo docker stop `CONTAINER_ID` && docker rm `CONTAINER_ID`
节点标志¶
标志不带参数。要使用标志,请将其添加到命令末尾。例如:
./target/release/moonbeam --dev
--dev
- 指定开发链--no-telemetry
- 禁用连接到Substrate telemetry服务器。对于全局链,默认情况下telemetry处于启用状态。如果您正在运行开发(--dev
)节点,则telemetry处于不可用状态--tmp
- 运行一个临时节点,该节点将在流程结束时删除所有配置--rpc-external
- 监听所有RPC接口--ws-external
- 监听所有Websocket接口
节点选项¶
选项接受一个选项右侧的参数。例如:
./target/release/moonbeam --dev --sealing 6000
-l <log pattern>
or--log <log pattern>
- 设置自定义日志记录筛选器。日志模式的语法为<target>=<level>
。例如,要打印所有RPC日志,该命令应如下所示:-l rpc=trace
--sealing <interval>
- 当区块需要被密封在开发服务中。可接受的时间间隔参数为instant
、manual
或一个代表计时器间隔(以毫秒为单位)的数字(例如,6000
是指节点每6秒产生一次区块)。默认设置是instant
--rpc-port <port>
- 从v0.30.0客户端版本开始弃用,使用--ws-port
进行HTTP和WS的连接 - 设置HTTP RPC服务器的TCP端口。接受端口作为参数--ws-port <port>
- 设置WebSockets RPC服务器的TCP端口。从v0.30.0客户端版本开始,WS端口是用于HTTP和WS连接的统一端口。接受端口作为参数--rpc-max-connections
- 自客户端v0.30.0起已弃用,此值已硬编码为100。请使用--ws-max-connections
以调整HTTP和WS连接的总限制 - 指定HTTP RPC服务器连接的最大数量--ws-max-connections
- 指定WS RPC服务器连接的最大数量。自客户端v0.30.0起,此标志调整HTTP和WS连接的总限制
如需命令行标志和选项的完整列表,请在命令末尾添加--help
来启动Moonbeam开发节点。
Debug、Trace和TxPool API¶
您也可以通过运行追踪节点访问一些非标准RPC方式的权限,这将允许开发者在runtime期间检查和调试交易事件。与标准Moonbeam开发节点相比,追踪节点使用的是不同的Docker镜像。
想要学习如何运行Moonbeam开发追踪节点,请查看运行追踪节点的操作指南并确保在操作过程中已切换至Moonbeam Development Node标签。随后,通过您的追踪节点访问非标准RPC方法,详情请查看Debug & Trace操作指南。
预注资的开发账户¶
您的Moonbeam开发节点带有十个预注资的开发帐户。这些地址源自于Substrate的规范开发助记词:
bottom drive obey lake curtain smoke basket hold race lonely fit walk
-
Alith:
- Public Address:
0xf24FF3a9CF04c71Dbc94D0b566f7A27B94566cac
- Private Key:
0x5fb92d6e98884f76de468fa3f6278f8807c48bebc13595d45af5bdc4da702133
- Public Address:
-
Baltathar:
- Public Address:
0x3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0
- Private Key:
0x8075991ce870b93a8870eca0c0f91913d12f47948ca0fd25b49c6fa7cdbeee8b
- Public Address:
-
Charleth:
- Public Address:
0x798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc
- Private Key:
0x0b6e18cafb6ed99687ec547bd28139cafdd2bffe70e6b688025de6b445aa5c5b
- Public Address:
-
Dorothy:
- Public Address:
0x773539d4Ac0e786233D90A233654ccEE26a613D9
- Private Key:
0x39539ab1876910bbf3a223d84a29e28f1cb4e2e456503e7e91ed39b2e7223d68
- Public Address:
-
Ethan:
- Public Address:
0xFf64d3F6efE2317EE2807d223a0Bdc4c0c49dfDB
- Private Key:
0x7dce9bc8babb68fec1409be38c8e1a52650206a7ed90ff956ae8a6d15eeaaef4
- Public Address:
-
Faith:
- Public Address:
0xC0F0f4ab324C46e55D02D0033343B4Be8A55532d
- Private Key:
0xb9d2ea9a615f3165812e8d44de0d24da9bbd164b65c4f0573e1ce2c8dbd9c8df
- Public Address:
-
Goliath:
- Public Address:
0x7BF369283338E12C90514468aa3868A551AB2929
- Private Key:
0x96b8a38e12e1a31dee1eab2fffdf9d9990045f5b37e44d8cc27766ef294acf18
- Public Address:
-
Heath:
- Public Address:
0x931f3600a299fd9B24cEfB3BfF79388D19804BeA
- Private Key:
0x0d6dcaaef49272a5411896be8ad16c01c35d6f8c18873387b71fbc734759b0ab
- Public Address:
-
Ida:
- Public Address:
0xC41C5F1123ECCd5ce233578B2e7ebd5693869d73
- Private Key:
0x4c42532034540267bf568198ccec4cb822a025da542861fcb146a5fab6433ff8
- Public Address:
-
Judith:
- Public Address:
0x2898FE7a42Be376C8BC7AF536A940F7Fd5aDd423
- Private Key:
0x94c49300a58d576011096bcb006aa06f5a91b34b4383891e8029c21dc39fbb8b
- Public Address:
查阅使用MetaMask页面,开始与您的帐户进行交互。
另外,开发节点中还包括一个用于可测试的预注资帐户:
- Gerald:
- Public Address:
0x6Be02d1d3665660d22FF9624b7BE0551ee1Ac91b
- Private Key:
0x99b3c12287537e38c90a9219d4cb074a89a16e9cdb20bf85728ebd97c343e342
- Public Address:
区块链浏览器¶
您可以使用以下任一区块链浏览器来浏览Moonbeam开发节点:
- Substrate API — Polkadot.js Apps WS端口
9944
- 基于以太坊API JSON-RPC — Moonbeam Basic Explorer HTTP端口
9944
Created: March 26, 2021