#node #json-rpc #tags #health #command-line-tool #networking #endpoints

app chainstate

通过JSON-RPC API检查EVM兼容节点的健康状况的CLI实用程序

2个不稳定版本

0.2.0 2022年12月24日
0.1.0 2021年12月27日

#36#health

MIT 许可证

34KB
774

chainstate

Chainstate是一个CLI实用程序,通过JSON-RPC API检查EVM兼容节点的健康状况

安装

cargo安装 -gchainstate

用法

USAGE:
    chainstate [FLAGS] [OPTIONS]

FLAGS:
        --endpoints    Return working endpoint (tag may be applied to restrict the list)
    -h, --help         Prints help information
    -s, --server       Whether to start HTTP API server
    -V, --version      Prints version information

OPTIONS:
    -a, --addr <addr>                      In case of server, TCP address to be listened [env: LISTEN=] [default:0.0.0.0:8000]
        --network <network>                Check single network address (internally used tags: nosync, nogaps)
    -n, --networks-file <networks-file>    Optional - plain text file, containing the list of RPC addresses to be
                                           checked. Tag may be appled to restrict the list [env: NETWORKS_FILE=./networks.txt]  [default: ]
    -t, --tag <tag>                        Filter chains by tag [default: ]

检查单个RPC节点的状态

$ chainstate --network http://127.0.0.1:4444/
Dec 20 10:10:16.685  INFO chain 31, block 2451166

检查多个RPC节点的状态

要管理多个节点,请创建包含JSON+RPC节点列表的纯文本文件(路径可以保存在NETWORKS_FILE环境变量中)。每行表示一个单独的JSON+RPC节点。可选的以#开始的行可以包含逗号分隔的标签列表,这有助于过滤列表

此类文件的示例

# arbitrum
https://arbitrum.xdaichain.com/
# rsk, nosync
https://public-node.rsk.co
# rsk, nosync
https://mainnet.sovryn.app/rpc
# rsk, nosync, testnet
https://public-node.testnet.rsk.co
# avalanche, nosync
https://api.avax.network/ext/bc/C/rpc

可以包含特殊标签

  • nosync - 表示检查eth_syncing的同步状态

检查所有网络的状态

chainstate -n networks.txt

通过标签过滤检查所有网络的状态

chainstate -n networks.txt -t rsk

检查不包括标签testnet的所有网络的状态

chainstate -n networks.txt -t rsk,-testnet

健康节点选择

要获取纯文本格式的有效JSON+RPC端点URL(每行一个URL),应用与获取多个节点状态相同的原理,同时添加--endpoints标志。

chainstate -n networks.txt -t rsk,-testnet --endpoints

许可证

MIT

依赖项

~20–30MB
~538K SLoC