github.com/evdatsion/aphelion-dpos-bft@v0.32.1/scripts/privValUpgrade.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "os" 6 7 "github.com/evdatsion/aphelion-dpos-bft/libs/log" 8 "github.com/evdatsion/aphelion-dpos-bft/privval" 9 ) 10 11 var ( 12 logger = log.NewTMLogger(log.NewSyncWriter(os.Stdout)) 13 ) 14 15 func main() { 16 args := os.Args[1:] 17 if len(args) != 3 { 18 fmt.Println("Expected three args: <old path> <new key path> <new state path>") 19 fmt.Println("Eg. ~/.tendermint/config/priv_validator.json ~/.tendermint/config/priv_validator_key.json ~/.tendermint/data/priv_validator_state.json") 20 os.Exit(1) 21 } 22 err := loadAndUpgrade(args[0], args[1], args[2]) 23 if err != nil { 24 fmt.Println(err) 25 os.Exit(1) 26 } 27 } 28 29 func loadAndUpgrade(oldPVPath, newPVKeyPath, newPVStatePath string) error { 30 oldPV, err := privval.LoadOldFilePV(oldPVPath) 31 if err != nil { 32 return fmt.Errorf("Error reading OldPrivValidator from %v: %v\n", oldPVPath, err) 33 } 34 logger.Info("Upgrading PrivValidator file", 35 "old", oldPVPath, 36 "newKey", newPVKeyPath, 37 "newState", newPVStatePath, 38 ) 39 oldPV.Upgrade(newPVKeyPath, newPVStatePath) 40 return nil 41 }