lotus miner 元数据 删除 重建

2024-05-26 02:48
文章标签 数据 删除 重建 lotus miner

本文主要是介绍lotus miner 元数据 删除 重建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

lotus miner 元数据重建

  • 主网 lotus-miner backup
  • 测试网模拟lotus-miner元数据损坏,重建
  • 指定原来的矿工号重新初始化
  • 环境变量配置miner API
  • 运行 lotus-worker
  • 修改LevelDB
  • 扇区ID 从27开始
  • 修改nextid 大的数字
  • 参考

主网 lotus-miner backup

Backup and restore

测试网模拟lotus-miner元数据损坏,重建

# echo $LOTUS_MINER_PATH
/raid0/calibnet/miner

删除miner目录下所有内容

# rm -rf /raid0/calibnet/miner/*

指定原来的矿工号重新初始化

lotus-miner init --no-local-storage --actor=t矿工号 --owner=t3钱包 --sector-size=32GiB
  • 运行miner
nohup lotus-miner run >> /var/log/calibnet/miner.log 2>&1 &
lotus-miner info
  • 修改lotus-miner配置文件config.tomlstorage.json
lotus-miner stop
# cat $LOTUS_MINER_PATH/config.toml | grep -Ev '^$|#'
[API]ListenAddress = "/ip4/192.168.1.92/tcp/2345/http"RemoteListenAddress = "192.168.1.92:2345"
[Backup]
[Libp2p]
[Pubsub]
[Subsystems]
[Dealmaking][Dealmaking.RetrievalPricing][Dealmaking.RetrievalPricing.Default][Dealmaking.RetrievalPricing.External]
[Sealing]BatchPreCommits = falseAggregateCommits = false
[Storage]AllowAddPiece = falseAllowPreCommit1 = falseAllowPreCommit2 = falseAllowCommit = falseAllowUnseal = false
[Fees][Fees.MaxPreCommitBatchGasFee][Fees.MaxCommitBatchGasFee]
[Addresses]
[DAGStore]
  • 存储目录重新init会报错
# lotus-miner storage attach --init --store /store/
ERROR: path is already initialized
  • 存储目录可以直接修改
# cat $LOTUS_MINER_PATH/storage.json
{"StoragePaths": null
}
# cat $LOTUS_MINER_PATH/storage.json
{"StoragePaths": [{"Path": "/store"}]
}
lotus-miner storage list

看不到扇区列表

lotus-miner sectors list

环境变量配置miner API

lotus-miner auth api-info --perm admin

运行 lotus-worker

nohup lotus-worker run >> /var/log/calibnet/worker.log 2>&1 &

修改LevelDB

  • pledge 扇区编号ID会从0开始,需要修改nextid
  • 查看扇区的最新ID,最新扇区ID为26
lotus-miner proving deadlines
lotus-miner proving deadline <Index>
lotus-miner proving check <Index>
# mkdir leveldb_nextid
# cd leveldb_nextid/
# go mod init leveldb_nextid
# vim leveldb_nextid.go
  • 停止mienr
lotus-miner stop

cat leveldb_nextid.go

package main
import ("fmt""log""github.com/syndtr/goleveldb/leveldb""encoding/binary"
)func main(){// 打开数据库db, err := leveldb.OpenFile("/raid0/calibnet/miner/datastore/metadata", nil)if err != nil {  log.Fatal(err)  }  // 关闭数据库defer db.Close()// 遍历数据fmt.Println("遍历数据")iter := db.NewIterator(nil, nil)  for iter.Next() {  fmt.Printf("key:%s, value:%s\n", iter.Key(), iter.Value())  //fmt.Printf("key:%s \n", iter.Key())  }  iter.Release()  buf := make([]byte, binary.MaxVarintLen64)size := binary.PutUvarint(buf, 26)fmt.Print(size)fmt.Printf("%v \n", buf[:size])db.Put([]byte("/storage/nextid"), buf[:size], nil) nextid, _ := db.Get([]byte("/storage/nextid"), nil)  fmt.Printf("读取单条数据 nextid:  %v\n", nextid)}
go get github.com/syndtr/goleveldb/leveldb
# go run leveldb_nextid.go 
遍历数据
key:/backupds/log/head, value:1647508356.log.cbor;5364dd4d-2ff9-4302-82a5-cb513421b5ca;1647509713
key:/datatransfer/provider/transfers/versions/current, value:2
key:/deals/provider/storage-ask/1/latest, value:�cAsk�ePriceE�emVerifiedPriceE���lMinPieceSizelMaxPieceSizMinerD�iTimestamp�fExpiryeSeqNoiSignatureXa�΍|o��T�k}ֿ�)����SW�����(\�E &��+���!4/J�;�"
�ܳ%��y�g����K!��5���m��IFh��6��.
key:/deals/provider/storage-ask/versions/current, value:1
key:/deals/provider/versions/current, value:1
key:/miner-address, value:�
key:/retrievals/provider/retrieval-ask/1/latest, value:�lPricePerByte@kUnsealPrice@oPaymentIntervalwPaymentIntervalIncrease
key:/retrievals/provider/retrieval-ask/versions/current, value:1
key:/retrievals/provider/versions/current, value:1
key:/storagemarket/cid-infos/versions/current, value:1
key:/storagemarket/pieces/versions/current, value:1
1[26] 
读取单条数据 nextid:  [26]

扇区ID 从27开始

# lotus-miner sectors pledge
Created CC sector:  27
# lotus-miner sectors list
ID  State    OnChain  Active  Expiration  Deals
27  Packing  NO       NO      n/a         CC

修改nextid 大的数字

  • nextid 修改为1600
         buf := make([]byte, binary.MaxVarintLen64)size := binary.PutUvarint(buf, 1600)fmt.Print(size)fmt.Printf("%v \n", buf[:size])db.Put([]byte("/storage/nextid"), buf[:size], nil) 
读取单条数据 nextid:  [192 12]
# lotus-miner sectors pledge
Created CC sector:  1601

参考

  1. /storage/nextid
  2. leveldb 修改
  3. 原语云
  4. goleveldb
  5. Go语言中调用levelDB

这篇关于lotus miner 元数据 删除 重建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1003335

相关文章

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

Redis过期删除机制与内存淘汰策略的解析指南

《Redis过期删除机制与内存淘汰策略的解析指南》在使用Redis构建缓存系统时,很多开发者只设置了EXPIRE但却忽略了背后Redis的过期删除机制与内存淘汰策略,下面小编就来和大家详细介绍一下... 目录1、简述2、Redis http://www.chinasem.cn的过期删除策略(Key Expir

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据

pandas实现数据concat拼接的示例代码

《pandas实现数据concat拼接的示例代码》pandas.concat用于合并DataFrame或Series,本文主要介绍了pandas实现数据concat拼接的示例代码,具有一定的参考价值,... 目录语法示例:使用pandas.concat合并数据默认的concat:参数axis=0,join=

C#代码实现解析WTGPS和BD数据

《C#代码实现解析WTGPS和BD数据》在现代的导航与定位应用中,准确解析GPS和北斗(BD)等卫星定位数据至关重要,本文将使用C#语言实现解析WTGPS和BD数据,需要的可以了解下... 目录一、代码结构概览1. 核心解析方法2. 位置信息解析3. 经纬度转换方法4. 日期和时间戳解析5. 辅助方法二、L

使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)

《使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)》字体设计和矢量图形处理是编程中一个有趣且实用的领域,通过Python的matplotlib库,我们可以轻松将字体轮廓... 目录背景知识字体轮廓的表示实现步骤1. 安装依赖库2. 准备数据3. 解析路径指令4. 绘制图形关键

解决mysql插入数据锁等待超时报错:Lock wait timeout exceeded;try restarting transaction

《解决mysql插入数据锁等待超时报错:Lockwaittimeoutexceeded;tryrestartingtransaction》:本文主要介绍解决mysql插入数据锁等待超时报... 目录报错信息解决办法1、数据库中执行如下sql2、再到 INNODB_TRX 事务表中查看总结报错信息Lock