首先恭喜大家积极参与到人类知识图谱的贡献中来,不论是挖矿还是领域专家,我真心认为都在做一件了不起的大事。

可是对于矿工而言,除了矿机数量的提升,更重要的是质量。为什么这么说?

三个方面:

一、测试网参与人数还有限,出块率相对较高,扇区失效可以很快挖到下一个。

二、目前扇区保存的数据依然属于测试,扇区价值有限。

三、压力测试,是上主网后的必经之路。这不光考量扇区的通信质量,也会间接考量硬件是否合格。

综上所述,既然大家在为人类知识图谱做贡献,请拿出诚意,保障质量!!!

废话不多说,进入正题

######################################################################

如何查询扇区状态:

# epik-miner sectors list

偶然你会看到不适的画面,比如上图 56 CommitFailed(就是说第56这个扇区封装失败了) 😅

怎么办????How come?

在知道怎么办之前,首先要知道Why?

######################################################################

扇区封装流程图

/*

			\*   Empty <- incoming deals

			|   |

			|   v

		    \*<- WaitDeals <- incoming deals

			|   |

			|   v

			\*<- Packing <- incoming committed capacity

			|   |

			|   v

			\*<- PreCommit1 <--> SealPreCommit1Failed

			|   |       ^          ^^

			|   |       \*----------++----\\

			|   v       v          ||    |

			\*<- PreCommit2 --------++--> SealPreCommit2Failed

			|   |                  ||

			|   v          /-------/|

			\*   PreCommitting <-----+---> PreCommitFailed

			|   |                   |     ^

			|   v                   |     |

			\*<- WaitSeed -----------+-----/

			|   |||  ^              |

			|   |||  \\--------\*-----/

			|   |||           |

			|   vvv      v----+----> ComputeProofFailed

			\*<- Committing    |

			|   |        ^--> CommitFailed

			|   v             ^

	        |   SubmitCommit  |

	        |   |             |

	        |   v             |

			\*<- CommitWait ---/

			|   |

			|   v

			|   FinalizeSector <--> FinalizeFailed

			|   |

			|   v

			\*<- Proving

			|

			v

			FailedUnrecoverable

			UndefinedSectorState <- ¯\\_(ツ)_/¯

				|                     ^

				\*---------------------/

\*/

######################################################################

可以看出整个封装过程经历了12个步骤

其中错误有5类

SealPreCommit1Failed

SealPreCommit2Failed

PreCommitFailed

ComputeProofFailed

CommitFailed

当你知道了出问题的步骤在哪,才能对症下药,正确处理,对吧!

下面以上图的56 CommitFailed举例:

步骤一,找到该扇区的储存位置

epik-miner storage find 57

第二步,查看日志文件

epik-miner sectors status –log –on-chain-info 57

第三步,重新运行该错误的上一步骤,对于CommitFailed,也就是执行Committing

epik-miner sectors update-state –really-do-it 57 Committing

第四步,再次查询扇区状态

epik-miner sectors list

此方法适用于大部分扇区修复的情况。高阶扇区修复请听下回分解。

上图

欢迎脚本大佬直接写成脚本,自动监控,并执行自动修复~

  • epik-miner sectors update-state –really-do-it (扇区号) (命令)

    可用命令如下:

    PreCommitWait

    ComputeProofFailed

    PackingFailed

    PreCommit1

    SealPreCommit2Failed

    CommitFailed

    Faulty

    FaultedFinal

    RemoveFailed

    Packing

    Committing

    CommitWait

    DealsExpired

    Terminating

    Removed

    WaitDeals

    GetTicket

    PreCommit2

    PreCommitFailed

    RecoverDealIDs

    FaultReported

    PreCommitting

    Proving

    TerminateFailed

    WaitSeed

    SealPreCommit1Failed

    TerminateWait

    Removing

    Empty

    SubmitCommit

    AddPiece

    AddPieceFailed

    FinalizeSector

    FailedUnrecoverable

    FinalizeFailed

    TerminateFinality

技术大佬,虽然看不懂,但也顶一下

    有没有办法防范于未然呢?什么情况下会出来这些异常?

      christismith

      目前测试下来应该是docker 在封装期间有通信失效的原因。这个带宽也有关系,上周围炉夜话官方cto

      leo也说了可以一个daemon带多个miner,但是要保障平均每个miner能分到5M的带宽,不然峰值封装可能会失效。

        zzkchina

        现在关键还没有到封装呀!这就纠结。。一直不来deal数据!非得重启几次!

          EPK-001

          现学的技术,社区里大佬太多。只能算先到先得 哈哈哈哈

            1 个月 后

            epik-miner sectors update-state –really-do-it (扇区号) (命令)

            可用命令如下:

            PreCommitWait

            ComputeProofFailed

            PackingFailed

            PreCommit1

            SealPreCommit2Failed

            CommitFailed

            Faulty

            FaultedFinal

            RemoveFailed

            Packing

            Committing

            CommitWait

            DealsExpired

            Terminating

            Removed

            WaitDeals

            GetTicket

            PreCommit2

            PreCommitFailed

            RecoverDealIDs

            FaultReported

            PreCommitting

            Proving

            TerminateFailed

            WaitSeed

            SealPreCommit1Failed

            TerminateWait

            Removing

            Empty

            SubmitCommit

            AddPiece

            AddPieceFailed

            FinalizeSector

            FailedUnrecoverable

            FinalizeFailed

            TerminateFinality

              25 天 后
              3 个月 后

              454555155

              deal 该来就会来的,如果时间和其他人相差太久,说明你的机器路由有问题,网络不行。

              算力总是低,也说明你的机器超标在跑节点。该减少就要减少。

              因为总功率就那么多,又要同步数据,又要抢爆块。cpu和内存都在超负载运行,还以为一直保持17算力50年嘛。。。

                @zzkchina

                谢谢 我用的9527的脚本部署的 在docker运行的 修复命令 docker exec -it epik-miner-1 epik-miner sectors update-state –really-do-it 6 Committing 但是提示报错 ERROR: this is a command for advanced users, only use it if you are sure of what you are doing。 是不是我的命令有问题那还是什么其他原因

                  454555155

                  - -really-do-it前面是两个,浏览器显示有问题。另外这个命令从宿主机 好像执行不了的。要进容器才能执行

                    @zzkchina 扇区状态一直是Committing 也没有报错 很长时间了 是正常的吗 需要一直等吗? 还是说有办法可以处理下