Show / Hide Table of Contents

配置与启动节点

完成 Neo-CLI 的安装后,本节我们将进行启动前的必要配置以及使用命令启动节点。

修改配置文件

Neo-CLI 在执行过程中会访问配置文件 config.json 。启动 Neo-CLI 前需要对该文件进行必要配置。

配置钱包

启动 Neo-CLI 前,你可以在 config.json 中开启自动绑定并打开钱包功能,这样节点启动后会默认打开该钱包。配置参数如下:

  • Path :钱包路径

  • Password :钱包密码。注意这里钱包密码是明文显示!

  • IsActive :设为 true 允许自动打开钱包

下面是一个标准设置的例子:

{
  "ApplicationConfiguration": {
    "Logger": {
      "Path": "Logs",
      "ConsoleOutput": false,
      "Active": false
    },
    "Storage": {
      "Engine": "LevelDBStore",
      "Path": "Data_LevelDB_{0}"
    },
    "P2P": {
      "Port": 10333,
      "WsPort": 10334
    },
    "UnlockWallet": {
      "Path": "wallet.json",
      "Password": "1",
      "IsActive": true
    },
    "PluginURL": "https://github.com/neo-project/neo-modules/releases/download/v{1}/{0}.zip"
  },
  "ProtocolConfiguration": {
    "Network": 860833102,
    "AddressVersion": 53,
    "MillisecondsPerBlock": 15000,
    "MaxTransactionsPerBlock": 512,
    "MemoryPoolMaxTransactions": 50000,
    "MaxTraceableBlocks": 2102400,
    "InitialGasDistribution": 5200000000000000,
    "ValidatorsCount": 7,
    "StandbyCommittee": [
      "03b209fd4f53a7170ea4444e0cb0a6bb6a53c2bd016926989cf85f9b0fba17a70c",
      "02df48f60e8f3e01c48ff40b9b7f1310d7a8b2a193188befe1c2e3df740e895093",
      "03b8d9d5771d8f513aa0869b9cc8d50986403b78c6da36890638c3d46a5adce04a",
      "02ca0e27697b9c248f6f16e085fd0061e26f44da85b58ee835c110caa5ec3ba554",
      "024c7b7fb6c310fccf1ba33b082519d82964ea93868d676662d4a59ad548df0e7d",
      "02aaec38470f6aad0042c6e877cfd8087d2676b0f516fddd362801b9bd3936399e",
      "02486fd15702c4490a26703112a5cc1d0923fd697a33406bd5a1c00e0013b09a70",
      "023a36c72844610b4d34d1968662424011bf783ca9d984efa19a20babf5582f3fe",
      "03708b860c1de5d87f5b151a12c2a99feebd2e8b315ee8e7cf8aa19692a9e18379",
      "03c6aa6e12638b36e88adc1ccdceac4db9929575c3e03576c617c49cce7114a050",
      "03204223f8c86b8cd5c89ef12e4f0dbb314172e9241e30c9ef2293790793537cf0",
      "02a62c915cf19c7f19a50ec217e79fac2439bbaad658493de0c7d8ffa92ab0aa62",
      "03409f31f0d66bdc2f70a9730b66fe186658f84a8018204db01c106edc36553cd0",
      "0288342b141c30dc8ffcde0204929bb46aed5756b41ef4a56778d15ada8f0c6654",
      "020f2887f41474cfeb11fd262e982051c1541418137c02a0f4961af911045de639",
      "0222038884bbd1d8ff109ed3bdef3542e768eef76c1247aea8bc8171f532928c30",
      "03d281b42002647f0113f36c7b8efb30db66078dfaaa9ab3ff76d043a98d512fde",
      "02504acbc1f4b3bdad1d86d6e1a08603771db135a73e61c9d565ae06a1938cd2ad",
      "0226933336f1b75baa42d42b71d9091508b638046d19abd67f4e119bf64a7cfb4d",
      "03cdcea66032b82f5c30450e381e5295cae85c5e6943af716cc6b646352a6067dc",
      "02cd5a5547119e24feaa7c2a0f37b8c9366216bab7054de0065c9be42084003c8a"
    ],
    "SeedList": [
      "seed1.neo.org:10333",
      "seed2.neo.org:10333",
      "seed3.neo.org:10333",
      "seed4.neo.org:10333",
      "seed5.neo.org:10333"
    ]
  }
}

说明:

  • ConsoleOutput :是否在控制台打印出 Log 信息。(true:前后台打印,false:后台记录)

  • Active :是否开启 Log 信息。

  • Engine :默认 LevelDBStore。表示区块链数据存储使用的引擎。

  • PluginURL :表示下载插件的地址,使用 CLI 的 install 命令时会用到。

将节点连接到网络

节点默认连接到主网,如果要将 Neo-CLI 连接到测试网,需要配置 config.json 文件,用 config.testnet.json 中的内容去替换即可。

如果要将节点接入私链,详细信息请参见 搭建私有链 中的说明。

安装插件

一些附加功能被独立封装在插件中用以调用,目的是为了提升节点的安全性,稳定性和灵活性。用户可以自行选取所需要的扩展功能而不用每次在启动 Neo-CLI 时通过附加参数来调用,避免了很多人为的失误操作同时简化了打开钱包,调用 API 等一系列繁琐的指令。

安装插件有两种方式:

  • 从 GitHub 下载插件包

  • 使用内部命令自动下载

从 GitHub 下载插件

下表列出了所有插件,选取所需要的插件进行下载,将下载的插件包解压到 neo-cli 根目录下。

插件 功能 包含 API
ApplicationLogs 同步智能合约和 NativeContract 的日志(Notify) getapplicationlog 推荐
DBFTPlugin dBFT 共识插件 作为共识节点时必选
LevelDBStore 区块链数据使用 LevelDB 存储引擎 必选
OracleService Oracle 服务插件 作为 Oracle 服务节点时必选
RocksDBStore 区块链数据使用 RocksDBStore 存储引擎 和 LevelDBStore 二选一
TokensTracker 提供NEP-11、NEP-17余额及交易历史的RPC查询功能。 getnep11balances
getnep11properties
getnep11transfers
getnep17balances
getnep17transfers
推荐
RpcServer 提供节点的 RPC 功能 RPC API 必选
StatesDumper 导出 Neo-CLI 状态数据 可选
StateService StateRoot 共识服务插件 getstateroot
getproof
verifyproof
getstateheight
作为 StateRoot 共识节点时必选

使用命令下载插件

使用内部命令自动下载或卸载插件,操作更为简便。例如:

neo> install StatesDumper
Downloading from https://github.com/neo-project/neo-modules/releases/download/v3.1.0/StatesDumper.zip
Install successful, please restart neo-cli.
neo> uninstall StatesDumper
Uninstall successful, please restart neo-cli.

在安装或卸载完毕后,请重启 Neo-CLI 使操作生效。

启动 Neo 节点

打开命令行,定位到 Neo-CLI 所在目录,输入以下命令启动 Neo 节点 。

Windows 10 :

dotnet neo-cli.dll

neo-cli.exe

Linux (ubuntu 16.04/18.04) :

./neo-cli

dotnet neo-cli.dll

如果使用 dotnet,需要先安装 .net core 环境。

如果你想让外部程序访问该节点的 API 需要开放防火墙端口:10331-10334, 20331-20334

如果开通了 API 服务,并且在 Neo-CLI 中打开钱包的话,需要设置防火墙策略,例如设置防火墙的白名单,这些端口仅对白名单的 IP 地址开放。如果完全对外开放,其它人可能会通过 API 导出私钥或者进行转账。