# 如何使用 Sophon Messager

messager 是用于管理本地消息的组件,目的是保存地址消息,管理消息状态以及控制推送消息的频率。

# 开始

# 克隆代码到你的机器

git clone https://github.com/ipfs-force-community/sophon-messager.git

# 安装依赖及构建

make

# 启动messager

./sophon-messager run [command options]
options:
   --auth-url       auth服务的URL
   --auth-token     auth服务的token
   --node-url       lotus/venus 节点的URL
   --node-token     auth服务的URL
   --db-type        使用的数据库类型,sqlite 或者 mysql
   --mysql-dsn      mysql dsn,eg. user:password@(127.0.0.1:3306)/messager?parseTime=true&loc=Local
   --gateway-url    gateway的URL
   --gateway-token  gateway的token
   --rate-limit-redis 限流使用的redis

# 命令行

# 消息

  1. 查询消息
./sophon-messager msg search --id=<message id> or --cid=<message cid>
  1. 列出消息
./sophon-messager msg list
# 列出相同地址的消息
./sophon-messager msg list --from <address>
  1. 更新一个已上链消息(但数据库的状态未更新)的状态
./sophon-messager msg update_filled_msg --id=<message id>
  1. 更新所有已上链消息(但数据库的状态未更新)的状态
./sophon-messager msg update_all_filled_msg
  1. 等待消息的结果
./sophon-messager msg wait <message id>
  1. 通过ID重新发布消息
./sophon-messager msg republish <message id>
  1. 替换消息
./sophon-messager msg replace --gas-feecap=[gas-feecap] --gas-premium=[gas-premium] --gas-limit=[gas-limit] --auto=[auto] --max-fee=[max-fee] <message-id>
# or
./sophon-messager msg replace --gas-feecap=[gas-feecap] --gas-premium=[gas-premium] --gas-limit=[gas-limit] --auto=[auto] --max-fee=[max-fee] <from> <nonce>
  1. 列出失败的消息,可能是消息签名失败或gas估算失败
./sophon-messager msg list-fail
  1. 列出一段时间未链接的消息
./sophon-messager msg list-blocked
  1. 手动标记异常的消息
./sophon-messager msg mark-bad <message id>

# 地址

  1. 查询地址
./sophon-messager address search <address>
  1. 列出地址
./sophon-messager address list
  1. 重置地址

把地址的nonce设置为链上的nonce,并且全部未上链消息都被标记为错误消息

./sophon-messager reset <address>
  1. 冻结地址,不再接收推送的消息
./sophon-messager address forbidden <address>
  1. 激活冻结的地址
./sophon-messager address active <address>
  1. 设置地址一轮推送选择消息的最大数量
./sophon-messager address set-sel-msg-num --num=5 <address>
  1. 设置地址fee相关参数

sophon-messager address set-fee-params [command options] address

 # options
 # --gas-overestimation   估算gas的系数 (default: 0)
 # --gas-feecap           单个消息愿意付出的费用 (包括燃烧和支付给矿工, attoFIL/GasUnit)
 # --max-fee              单个消息最多花费 X attoFIL
 # --gas-over-premium     gas premium的系数 (default: 0)

./sophon-messager address set-fee-params <address>

# 共享参数

  1. 获取共享的参数
./sophon-messager share-params get
  1. 设置共享的参数

sophon-messager share-params set [command options] [arguments...]

./sophon-messager share-params set --gas-over-estimation=1.25 --gas-feecap="0" --max-fee="7000000000000000" --sel-msg-num=20 --gas-over-premium 1
  1. 从数据库手动刷新共享参数
./sophon-messager share-params refresh

# 节点

  1. 按名称搜索节点信息
./sophon-messager node search <name>
  1. 添加节点信息
./sophon-messager node add --name=<node-name> --url=<node-url> --token=<node-token>
  1. 节点信息列表
./sophon-messager node list
  1. 根据名称删除节点信息
./sophon-messager node del <name>

# 日志

  1. 设置日志级别
# 支持的级别:trace,debug,info,warn|warning,error,fatal,panic
./sophon-messager log set-level

# send 命令

发送消息 sophon-messager send [command options] [targetAddress] [amount]

   options:
   --from value         optionally specify the address to send
   --gas-premium value  specify gas price to use in AttoFIL (default: "0")
   --gas-feecap value   specify gas fee cap to use in AttoFIL (default: "0")
   --gas-limit value    specify gas limit (default: 0)
   --method value       specify method to invoke (default: 0)
   --params-json value  specify invocation parameters in json
   --params-hex value   specify invocation parameters in hex