Version
Show / Hide Table of Contents

配置与启动节点

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

修改配置文件

Neo-CLI 在执行过程中会访问两个配置文件 config.jsonprotocol.json 。启动 Neo-CLI 前需要对这两个文件进行必要配置。有关这两个文件的具体属性说明,请参见 Neo-CLI 结构

配置钱包

启动 Neo-CLI 前,你需要在 config.json 中开启自动绑定并打开钱包功能,钱包打开后才可以调用与钱包相关的 API。配置参数如下:

  • ExtraGasInvoke:允许通过 RPC 调用虚拟机执行消耗的额外 GAS 数额(默认起始免费额度为 10 GAS)

  • Path:钱包路径

  • Password:钱包密码

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

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

{
  "ApplicationConfiguration": {
    "Paths": {
      "Chain": "Chain_{0}",
      "Index": "Index_{0}"
    },
    "P2P": {
      "Port": 10333,
      "WsPort": 10334
    },
    "RPC": {
      "BindAddress": "127.0.0.1",
      "Port": 10332,
      "SslCert": "",
      "SslCertPassword": "",
      "ExtraGasInvoke": "0",
      "MaxConcurrentConnections": "10"
    },
    "UnlockWallet": {
      "Path": "wallet.json",
      "Password": "11111111",
      "StartConsensus": false,
      "IsActive": true
    },
    "PluginURL": "https://github.com/neo-project/neo-plugins/releases/download/v{1}/{0}.zip"
  }
}

BindAddress 选项,默认为本地 127.0.0.1。若要允许远程调用 RPC,可以设成 0.0.0.0,此时为了保障节点的安全性,请务必设置好对应端口的防火墙策略。

配置 HTTPS

如果要通过 HTTPS 的方式访问 RPC 服务器,需要在启动节点前修改配置文件 config.json ,并设置域名、证书和密码,如下所示:

{
  "ApplicationConfiguration": {
    "Paths": {
      "Chain": "Chain"
    },
    "P2P": {
      "Port": 10333,
      "WsPort": 10334
    },
    "RPC": {
      "Port": 10331,
      "SslCert": "YourSslCertFile.xxx",
      "SslCertPassword": "YourPassword",
      "ExtraGasInvoke": "0",
      "MaxConcurrentConnections": "10"
    }
  ...

将节点连接到网络

Neo-CLI 默认接入主网,如果要连接测试网,你需要用Neo-CLI目录下的 config.testnet.jsonprotocol.testnet.json 文件分别替换原有配置文件 config.jsonprotocol.json 。相关信息,请参见 主网与测试网

如果要将节点接入私链,需要配置 protocol.json 文件。详细信息,请参见 搭建私有链 中的修改 protocol.json 说明。

安装插件

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

安装插件有两种方式:

  • 从 GitHub 下载插件包

  • 使用内部命令自动下载

从 GitHub 下载插件

下表列出了所有插件,选取所需要的插件进行下载。

           
插件 功能 包含 API
ImportBlocks 同步离线包。 必选
RpcWallet 提供钱包相关的 RPC 功能。 claimgas
dumpprivkey
getbalance
getnewaddress
getunclaimedgas
getwalletheight
importprivkey
listaddress
sendfrom
sendmany
sendtoaddress
invokefunction
invokescript
必选
SimplePolicy 过滤非法交易。 必选
ApplicationLogs 在 RPC 模式下自动同步智能合约日志(ApplicationLogs),目前日志已经改为以 LevelDB 格式存储。 getapplicationlog 必选
CoreMetrics 查询历史区块的时间戳。 getmetricblocktimestamp 推荐
RpcNep5Tracker 提供 NEP-5 余额及交易历史的 RPC 查询功能。 getnep5balances
getnep5transfers
推荐
RpcSystemAssetTracker 查询 UTXO 资产相关信息。 getunclaimed
getclaimable
getunspents
推荐
StatesDumper 导出 Neo-CLI 状态数据。 可选
RpcSecurity 对HTTP Request 进行 base64 加密,提升 RPC 请求的安全性。需要在该插件的 config.json 文件中设置 username 和 password 可选

将下载的插件包解压到 neo-cli 根目录下,解压完成后的目录结构应如下图。

plugins.png

使用命令下载插件

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

neo> install ImportBlocks
Downloading from https://github.com/neo-node/neo-plugins/releases/download/v2.12.2/ImportBlocks.zip
Install successful, please restart neo-cli.
neo> uninstall RpcWallet
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 服务,可以输入参数 --rpc/rpc-r ,如:

dotnet neo-cli.dll --rpc

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

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