Add sync status to miner info command

This commit is contained in:
Łukasz Magiera 2020-10-30 19:39:31 +01:00
parent c3d00b0ac6
commit 885c6c94d3

View File

@ -59,6 +59,24 @@ func infoCmdAct(cctx *cli.Context) error {
ctx := lcli.ReqContext(cctx) ctx := lcli.ReqContext(cctx)
fmt.Print("Full node: ")
head, err := api.ChainHead(ctx)
if err != nil {
return err
}
switch {
case time.Now().Unix()-int64(head.MinTimestamp()) < int64(build.BlockDelaySecs*3/2): // within 1.5 epochs
fmt.Printf("[%s]", color.GreenString("sync ok"))
case time.Now().Unix()-int64(head.MinTimestamp()) < int64(build.BlockDelaySecs*5): // within 5 epochs
fmt.Printf("[%s]", color.YellowString("sync slow (%s behind)", time.Now().Sub(time.Unix(int64(head.MinTimestamp()), 0)).Truncate(time.Second)))
default:
fmt.Printf("[%s]", color.RedString("sync behind! (%s behind)", time.Now().Sub(time.Unix(int64(head.MinTimestamp()), 0)).Truncate(time.Second)))
}
fmt.Println()
maddr, err := getActorAddress(ctx, nodeApi, cctx.String("actor")) maddr, err := getActorAddress(ctx, nodeApi, cctx.String("actor"))
if err != nil { if err != nil {
return err return err