X-Git-Url: http://git.osdn.net/view?p=bytom%2Fvapor.git;a=blobdiff_plain;f=cmd%2Fvapord%2Fcommands%2Frollback_node.go;fp=cmd%2Fvapord%2Fcommands%2Frollback_node.go;h=ff1f8784dda5a97a49b41e26d1bda039001819a5;hp=0000000000000000000000000000000000000000;hb=78ef45d4238457b2ad498d738db5a7a7a30df167;hpb=3adffe8810801582032e851f8ecb86cc83f253f4 diff --git a/cmd/vapord/commands/rollback_node.go b/cmd/vapord/commands/rollback_node.go new file mode 100644 index 00000000..ff1f8784 --- /dev/null +++ b/cmd/vapord/commands/rollback_node.go @@ -0,0 +1,38 @@ +package commands + +import ( + "strconv" + + log "github.com/sirupsen/logrus" + "github.com/spf13/cobra" + + "github.com/bytom/vapor/node" +) + +var rollbackCmd = &cobra.Command{ + Use: "rollback", + Short: "Rollback chain to target height!", + Args: cobra.ExactArgs(1), + Run: func(cmd *cobra.Command, args []string) { + setLogLevel(config.LogLevel) + + height, err := strconv.ParseInt(args[0], 10, 64) + if err != nil { + log.WithFields(log.Fields{"module": logModule, "err": err}).Fatal("failed to parse int") + } + + if height < 0 { + log.WithFields(log.Fields{"module": logModule}).Fatal("height should >= 0") + } + + if err = node.Rollback(config, uint64(height)); err != nil { + log.WithFields(log.Fields{"module": logModule, "err": err}).Fatal("failed to rollback") + } + + log.WithFields(log.Fields{"module": logModule}).Infof("success to rollback height of %d", height) + }, +} + +func init() { + RootCmd.AddCommand(rollbackCmd) +}