EOSTestnet单主机多节点

 

本教程介绍如何设置在单个主机上运行的多节点区块链配置。这被称为单个主机,多节点testnet。我们将在本地计算机上设置两个节点,并让它们相互通信。本节中的示例依赖于三个命令行应用程序,nodeos,keosd,和cleos。下图描述了所需的测试网络配置。

EOSTestnet单主机多节点_第1张图片

打开四个“终端”窗口来执行本教程中的步骤。

 

1、启动电子钱包管理器

cd /data/eos/build

root@node:/data/eos/build# keosd --http-server-address 127.0.0.1:8899

 EOSTestnet单主机多节点_第2张图片

 

2、当keosd正确运行时,使钱包应用程序运行时打开该窗口并移至下一个终端窗口。创建一个默认钱包。keosd将在其窗口中生成一些状态输出。我们将继续使用第二个窗口进行后续cleos命令。

cd /data/eos/build

root@node:/data/eos/build# cleos --wallet-port 8899  wallet create

 

3、在第三个终端窗口上启动第一个生产者节点。这个命令将创建一个特殊的名为‘bios’的生产者。(这里我感觉应该是叫‘eosio’)

root@node:/data/eos/build# nodeos --enable-stale-production --producer-name eosio --plugin eosio::chain_api_plugin --plugin eosio::net_api_plugin

 EOSTestnet单主机多节点_第3张图片

4、启动第二个生产者节点。要启动其他节点,您必须先加载eosio.bios合同。通过此合同,您可以直接控制其他帐户的资源分配并访问其他特权API调用。(如果第一次已经加载了合约,那么这一步可以跳过,并且执行会出现以下信息)

./cleos --wallet-port 8899 set contract eosio ../../contracts/eosio.bios/

 

 

5、创建一个账户名为inita的账户来变成一个生产者。要创建该帐户,我们需要生成密钥与帐户关联,并将其导入我们的钱包。

root@node:/data/eos/build/programs/cleos# cleos create key

 

创建账户命令需要两个公钥,一个用于账户的所有者(owner)密钥,另一个用于其活动(active)密钥。在此示例中,新创建的公钥将作为拥有者密钥和活动密钥两次使用。(我认为在这里创建账户是应该执行两次create key,因为在EOD3.0中创建账户的时候流程是这样)

 

 

6、切换到写一个终端窗口开启第二个nodeos实例。这个新节点的输出会显示一些活动,但是直到本教程的最后一步,当inita帐户注册为生产者帐户并激活时,才会停止报告。以下是新启动节点的一些输出示例

 

root@node:/data/eos/build/programs/cleos# nodeos --producer-name inita --plugin eosio::chain_api_plugin --plugin eosio::net_api_plugin --http-server-address 127.0.0.1:8889 --p2p-listen-endpoint 127.0.0.1:_api_plugin --http-server-address 127.0.0.1:8889 --p2p-listen-endpoint 127.0.0.1:9877 --p2p-peer-address 127.0.0.1:9876 --c3PPLwrwqXLi8pWByKCVsmX\",\"5JwfGRkbzBJm6LTEtZc5VBH4rCvy6rJk2y939dJHDHEe1AKosga\"]onfig-dir node2 --data-dir node2 --private-key [\"EOS6Dwp4BnvhB6UkQqFbm5Ek2B779Xb3PPLwrwqXLi8pWByKCVsmX\",\"5JwfGRkbzBJm6LTEtZc5VBH4rCvy6rJk2y939dJHDHEe1AKosga\"]

 

 EOSTestnet单主机多节点_第4张图片

在这一点上,第二个nodeos是闲置的生产者。要将其转变为活跃的生产者,inita需要注册为bios节点的生产者,并且bios节点需要执行更新生产者计划的操作

cleos --wallet-port 8899 push action eosio setprods "{ \"version\": 1, \"producers\": [{\"producer_name\": \"inita\",\"block_signing_key\": \"EOS6Dwp4BnvhB6UkQqFbm5Ek2B779Xb3PPLwrwqXLi8pWByKCVsmX\"}]}" -p eosio@active

 EOSTestnet单主机多节点_第5张图片

执行到这里,已经配置了一个双节点测试网。可以看到原始节点不再生成块但正在接收它们。您可以通过get info针对每个节点运行命令来验证这一点。

 

7、获取有关节点的信息

 

获取有关第一个节点的信息

cleos get info

 

 

获取第二个节点的信息:

cleos --port 8889 get info

 

 

 

参考链接:

Testnet单主机多节点

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(区块链)