Skip to main content

配置与启动节点

完成 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 等一系列繁琐的指令。

下表列出了目前所有的插件:

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

安装插件有两种方式:

  • (推荐)使用内部命令 install/uninstall 自动下载或卸载插件,操作更为简便。

    例如:

    neo> install StatesDumperDownloading from https://github.com/neo-project/neo-modules/releases/download/v3.1.0/StatesDumper.zipInstall successful, please restart neo-cli.
    neo> uninstall StatesDumperUninstall successful, please restart neo-cli.

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

  • 从 GitHub 下载插件包

    前往此链接下载所需插件的最新版本,将下载的插件包解压到 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
note

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

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

warning

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