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  }