package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
|
|
"github.com/tendermint/tendermint/libs/log"
|
|
"github.com/tendermint/tendermint/privval"
|
|
)
|
|
|
|
var (
|
|
logger = log.NewTMLogger(log.NewSyncWriter(os.Stdout))
|
|
)
|
|
|
|
func main() {
|
|
args := os.Args[1:]
|
|
if len(args) != 3 {
|
|
fmt.Println("Expected three args: <old path> <new key path> <new state path>")
|
|
fmt.Println(
|
|
"Eg. ~/.tendermint/config/priv_validator.json" +
|
|
" ~/.tendermint/config/priv_validator_key.json" +
|
|
" ~/.tendermint/data/priv_validator_state.json",
|
|
)
|
|
os.Exit(1)
|
|
}
|
|
err := loadAndUpgrade(args[0], args[1], args[2])
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
os.Exit(1)
|
|
}
|
|
}
|
|
|
|
func loadAndUpgrade(oldPVPath, newPVKeyPath, newPVStatePath string) error {
|
|
oldPV, err := privval.LoadOldFilePV(oldPVPath)
|
|
if err != nil {
|
|
return fmt.Errorf("error reading OldPrivValidator from %v: %v", oldPVPath, err)
|
|
}
|
|
logger.Info("Upgrading PrivValidator file",
|
|
"old", oldPVPath,
|
|
"newKey", newPVKeyPath,
|
|
"newState", newPVStatePath,
|
|
)
|
|
oldPV.Upgrade(newPVKeyPath, newPVStatePath)
|
|
return nil
|
|
}
|