Nodeos 使用之本地单节点测试网络

英文版原文

Goal
本节介绍如何设置在单个主机上运行的单节点区块链配置。这称为单主机、单节点testnet。我们将在您的本地计算机上设置一个节点,并让它生成块。下图描述了所需的单主机testnet。

cleos用于管理钱包、管理帐户和调用区块链上的操作。keosd执行钱包管理,包括数字签名。如果没有显式启动,keosd默认由cleos启动。

Before you begin

  • 开始本章节前 安装 EOSIO .
  • 假设 nodeos, cleos, 和 keosd 都可以正常访问. 如果EOSIO是通过脚本构建的,确保运行安装脚本 Install Script.
  • 明确如何通过 Nodeos options 选项启用/禁用功能.

Steps

打开终端窗口,执行一下命令:

  1. Start the Producer Node

    使用以下命令启动您自己的单节点区块链:

    nodeos -e -p eosio --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin

    Nodeos最小选项

    块生产的最小nodeos实例设置需要具有-e选项(启用过时生产)和-p eosio选项(生产者名称eosio)的chain_api_pluginhistory_api_plugin。或者,您也可以设置并指定自己的帐户作为生产者名称。

    在运行nodeos之后,您应该得到如下所示的日志消息。这意味着这些块被成功地生产出来了。

    1575001ms thread-0   chain_controller.cpp:235      _push_block          ] initm #1 @2017-09-04T04:26:15  | 0 trx, 0 pending, exectime_ms=0
    1575001ms thread-0   producer_plugin.cpp:207       block_production_loo ] initm generated block #1 @ 2017-09-04T04:26:15 with 0 trxs  0 pending
    1578001ms thread-0   chain_controller.cpp:235      _push_block          ] initc #2 @2017-09-04T04:26:18  | 0 trx, 0 pending, exectime_ms=0
    1578001ms thread-0   producer_plugin.cpp:207       block_production_loo ] initc generated block #2 @ 2017-09-04T04:26:18 with 0 trxs  0 pending
    ...
    eosio generated block 046b9984... #101527 @ 2018-04-01T14:24:58.000 with 0 trxs
    eosio generated block 5e527ee2... #101528 @ 2018-04-01T14:24:58.500 with 0 trxs
    ...

    在这一点上,nodeos只和一个制作人eosio合作。

  2. Get Node Info

    获取有关生成节点的信息:

    cleos get info
    

    这将生成类似于以下内容的输出:

    {
      "server_version": "0f9df63e",
      "chain_id": "cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f",
      "head_block_num": 134,
      "last_irreversible_block_num": 133,
      "last_irreversible_block_id": "00000085060e9872849ef87bef3b19ab07de9faaed71154510c7f0aeeaddae2c",
      "head_block_id": "000000861e3222dce1c7c2cfb938940d8aac22c816cc8b0b89f6bf65a8ad5bdc",
      "head_block_time": "2019-11-18T22:13:10.500",
      "head_block_producer": "eosio",
      "virtual_block_cpu_limit": 228396,
      "virtual_block_net_limit": 1197744,
      "block_cpu_limit": 199900,
      "block_net_limit": 1048576,
      "server_version_string": "v2.0.0-rc2",
      "fork_db_head_block_num": 134,
      "fork_db_head_block_id": "000000861e3222dce1c7c2cfb938940d8aac22c816cc8b0b89f6bf65a8ad5bdc",
      "server_full_version_string": "v2.0.0-rc2-0f9df63e1eca4dda4cb7df30683f4a1220599444"
    }
    

Advanced Steps

更高级的用户可能需要修改配置。nodeos使用自定义配置文件夹。此文件夹的位置由系统决定。

  • Mac OS: ~/Library/Application\ Support/eosio/nodeos/config
  • Linux: ~/.local/share/eosio/nodeos/config

生成将使用默认的genesis.json文件。可以使用nodeos的--config-dir命令行参数指定配置文件夹。如果使用此选项,则需要手动复制genesis.json文件到配置文件夹。

为了正常运行nodeos需要一份正确配置的config.ini文件。启动时,nodeos在config文件夹中查找config.ini. 如果找不到,则创建默认config.ini文件。如果你还没有准备好的config.ini文件,运行nodeos,然后立即用Ctrl-C关闭它。默认配置(config.ini)将在配置文件夹中创建。编辑config.ini文件,将以下设置添加/更新为已存在的默认设置:

# config.ini:

    # Enable production on a stale chain, since a single-node test chain is pretty much always stale
    enable-stale-production = true
    # Enable block production with the testnet producers
    producer-name = eosio
    # Load the block producer plugin, so you can produce blocks
    plugin = eosio::producer_plugin
    # As well as API and HTTP plugins
    plugin = eosio::chain_api_plugin
    plugin = eosio::http_plugin
    plugin = eosio::history_api_plugin

现在应该可以运行nodeos并看到它开始生成块。

nodeos

nodeos将运行时数据(例如,共享内存和日志内容)存储在自定义数据文件夹中。此文件夹的位置由系统决定。

  • Mac OS: ~/Library/Application\ Support/eosio/nodeos/data
  • Linux: ~/.local/share/eosio/nodeos/data

可以使用nodeos--data-dir命令行参数指定数据文件夹。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 irvin.em@live.com。

文章标题:Nodeos 使用之本地单节点测试网络

文章字数:962

本文作者:dino

发布时间:2020-06-05, 00:41:32

最后更新:2020-06-05, 11:23:47

原始链接:https://blog.walkbc.com/2020/06/05/EOS-Nodeos-Usage-Local-Single-Node-Testnet/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

QQ交流群:273078549

目录