lotus-shed blockmsgid command
This commit is contained in:
parent
3c7f5f7629
commit
210216a94f
70
cmd/lotus-shed/blockmsgid.go
Normal file
70
cmd/lotus-shed/blockmsgid.go
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/base64"
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
blake2b "github.com/minio/blake2b-simd"
|
||||||
|
"github.com/urfave/cli/v2"
|
||||||
|
|
||||||
|
"github.com/ipfs/go-cid"
|
||||||
|
|
||||||
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
|
lcli "github.com/filecoin-project/lotus/cli"
|
||||||
|
)
|
||||||
|
|
||||||
|
var blockmsgidCmd = &cli.Command{
|
||||||
|
Name: "blockmsgid",
|
||||||
|
Usage: "Print a block's pubsub message ID",
|
||||||
|
ArgsUsage: "<blockCid> ...",
|
||||||
|
Action: func(cctx *cli.Context) error {
|
||||||
|
api, closer, err := lcli.GetFullNodeAPI(cctx)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
defer closer()
|
||||||
|
ctx := lcli.ReqContext(cctx)
|
||||||
|
|
||||||
|
for _, arg := range cctx.Args().Slice() {
|
||||||
|
blkcid, err := cid.Decode(arg)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("error decoding block cid: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
blkhdr, err := api.ChainGetBlock(ctx, blkcid)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("error retrieving block header: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
blkmsgs, err := api.ChainGetBlockMessages(ctx, blkcid)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("error retrieving block messages: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
blkmsg := &types.BlockMsg{
|
||||||
|
Header: blkhdr,
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, m := range blkmsgs.BlsMessages {
|
||||||
|
blkmsg.BlsMessages = append(blkmsg.BlsMessages, m.Cid())
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, m := range blkmsgs.SecpkMessages {
|
||||||
|
blkmsg.SecpkMessages = append(blkmsg.SecpkMessages, m.Cid())
|
||||||
|
}
|
||||||
|
|
||||||
|
bytes, err := blkmsg.Serialize()
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("error serializing BlockMsg: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
msgId := blake2b.Sum256(bytes)
|
||||||
|
msgId64 := base64.StdEncoding.EncodeToString(msgId[:])
|
||||||
|
|
||||||
|
fmt.Println(msgId64)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
}
|
@ -50,6 +50,7 @@ func main() {
|
|||||||
electionCmd,
|
electionCmd,
|
||||||
rpcCmd,
|
rpcCmd,
|
||||||
cidCmd,
|
cidCmd,
|
||||||
|
blockmsgidCmd,
|
||||||
}
|
}
|
||||||
|
|
||||||
app := &cli.App{
|
app := &cli.App{
|
||||||
|
Loading…
Reference in New Issue
Block a user