lotus api 查询 错误扇区

Filecoin.StateMinerFaults

vim minerFaults.sh
#!/bin/bash

# 设置变量
API_ENDPOINT="http://127.0.0.1:1234/rpc/v0"
MINER_ID="矿工号"

# 发送API请求并保存响应
response=$(curl -s -X POST \
     -H "Content-Type: application/json" \
     --data "{ \"jsonrpc\": \"2.0\", \"method\": \"Filecoin.StateMinerFaults\", \"params\": [\"$MINER_ID\", null], \"id\": 3 }" \
     "$API_ENDPOINT")

# 从响应中提取结果数组
result=$(echo $response | jq -r '.result | @sh')

# 解析结果并打印错误扇区
echo "错误扇区列表:"
current_sector=0
eval "array=($result)"
for ((i=0; i<${#array[@]}; i+=2)); do
    if [ $i -eq 0 ]; then
        current_sector=${array[i]}
    else
        current_sector=$((current_sector + ${array[i]}))
    fi
    for ((j=0; j<${array[i+1]}; j++)); do
        echo $current_sector
        current_sector=$((current_sector + 1))
    done
done
  • @sh : 这是一个 jq 内置函数,它将输入格式化为适合在 shell 中使用的字符串。
{
  "result": [78891, 1, 123, 1, 16, 1, 618, 1, 284, 1]
}
jq -r '.result | @sh'
78891 1 123 1 16 1 618 1 284 1

1、API 调用

使用的是 Filecoin 的 StateMinerFaults 方法,这个方法返回指定矿工的错误扇区列表。

2、返回结果

"result": [
    78891,
    1,
    123,
    1,
    16,
    1,
    618,
    1,
    284,
    1
]

3、数据解释

这个结果使用了一种压缩格式来表示连续的扇区范围。它的工作方式如下:

第一个数字是起始扇区号
第二个数字是连续的扇区数量

可以这样解读:

78891, 1: 表示扇区 78891
123, 1: 表示从 78891 + 123 = 79014 开始的 1 个扇区
16, 1: 表示从 79014 + 16 = 79030 开始的 1 个扇区
618, 1: 表示从 79030 + 618 = 79648 开始的 1 个扇区
284, 1: 表示从 79648 + 284 = 79932 开始的 1 个扇区

4、错误扇区编号

错误的扇区编号是:

78891
79015 (78891 + 123 + 1)
79032 (79015 + 16 + 1)
79651 (79032 + 618 + 1)
79936 (79651 + 284 + 1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值