如何配置自己节点的rpc端口和数据存放路径

最近看经常遇到生态合作伙伴咨询通过api查寻交易和节点数据存放的问题

常出现

{
    "id": 1,
    "jsonrpc": "2.0",
    "result": null
}

返回是null .

通常这种情况是需要自己的节点需要打开 persit_index 配置。而自己运行节点时,这个配置很容易忽略。
具体方法如下:
HTTP RPC端口在toml配置文件里通过jsonrpc_tcp_port指定,其它还有jsonrpc_ws_port、jsonrpc_tcp_port、jsonrpc_http_port、jsonrpc_local_tcp_port、jsonrpc_local_http_port。可以参考release里提供的tethys.toml默认配置文件。默认的数据存放在运行路径(pwd)下的blockchain_db和storage_db里。可以通过配置文件里的conflux_data_dir和block_db_dir分别配置。需要注意如果需要访问老的receipt数据的话,需要把persist_tx_index设置为true.

存储交易索引,以便通过RPC访问历史数据:

  1. 在tethys.toml文件增加 persist_tx_index=true
  2. conflux --config tethys.toml

确认规则:

我们现在的是否确认的判断条件跟以太坊不一样,rpc提供了两个接口用于判断confirm

  1. https://developer.conflux-chain.org/docs/conflux-doc/docs/json_rpc#cfx_getconfirmationriskbyhash

    当 返回值/(2^256) <= 1/10^8 表示确认,这个是pivot chain switch的概率

  2. https://developer.conflux-chain.org/docs/conflux-doc/docs/json_rpc#cfx_epochnumber

    这个rpc传参 latest_confirmed ,返回的就是最近的confirm的epoch,这个epoch大于等于你所查询交易所在的epoch时表示已被确认。这个内部判断逻辑跟第一条是一样的