You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fmt.Printf("WARNING: Backup configuration states the previous Smart Node installation used version %s, which is not a valid version\n", previousVersion)
// Force stop eth2 if using Nimbus prior to v1.8.0 so it ensures the container is shut down and thus lets go of the validator keys and slashing database
fmt.Printf("%sWARNING: Couldn't determine previous Smart Node version from backup settings: %s%s\n", colorYellow, err.Error(), colorReset)
624
-
fmt.Printf("%sYou are configured to use Nimbus in local mode. Starting with v1.9.0, Nimbus is now configured to use a split-process configuration, which means the Beacon Node (the `eth2` container) no longer loads your validator keys - now the `validator` container does.\n\nDue to this, we must restart Nimbus as part of the upgrade.\n\nIf you were previously running Smart Node v1.7.5 or earlier, you **MUST** shut down the Docker containers with `rocketpool service stop` and wait **at least 15 minutes** to ensure that you've missed at least two attestations before proceeding to prevent being slashed. Please use an explorer such as https://beaconcha.in to confirm at least one of the missed attestations has been finalized before proceeding.%s\n\n", colorYellow, colorReset)
625
-
fmt.Println()
626
-
if!prompt.Confirm(fmt.Sprintf("Press y when you understand the above warning, have waited, and are ready to start Rocket Pool:%s", colorReset)) {
627
-
fmt.Println("Cancelled.")
628
-
returnfalse, nil
629
-
}
630
-
returntrue, nil
631
-
} elseifbackupCfg!=nil {
632
-
previousVersion=backupCfg.Version
633
-
} else {
634
-
fmt.Printf("%sWARNING: Couldn't determine previous Smart Node version from backup settings because the backup configuration didn't exist.%s\n", colorYellow, colorReset)
635
-
fmt.Printf("%sYou are configured to use Nimbus in local mode. Starting with v1.9.0, Nimbus is now configured to use a split-process configuration, which means the Beacon Node (the `eth2` container) no longer loads your validator keys - now the `validator` container does.\n\nDue to this, we must restart Nimbus as part of the upgrade.\n\nIf you were previously running Smart Node v1.7.5 or earlier, you **MUST** shut down the Docker containers with `rocketpool service stop` and wait **at least 15 minutes** to ensure that you've missed at least two attestations before proceeding to prevent being slashed. Please use an explorer such as https://beaconcha.in to confirm at least one of the missed attestations has been finalized before proceeding.%s\n\n", colorYellow, colorReset)
636
-
fmt.Println()
637
-
if!prompt.Confirm(fmt.Sprintf("Press y when you understand the above warning, have waited, and are ready to start Rocket Pool:%s", colorReset)) {
fmt.Printf("%sWARNING: Backup configuration states the previous Smart Node installation used version %s, which is not a valid version%s\n", colorYellow, previousVersion, colorReset)
647
-
fmt.Printf("%sYou are configured to use Nimbus in local mode. Starting with v1.9.0, Nimbus is now configured to use a split-process configuration, which means the Beacon Node (the `eth2` container) no longer loads your validator keys - now the `validator` container does.\n\nDue to this, we must restart Nimbus as part of the upgrade.\n\nIf you were previously running Smart Node v1.7.5 or earlier, you **MUST** shut down the Docker containers with `rocketpool service stop` and wait **at least 15 minutes** to ensure that you've missed at least two attestations before proceeding to prevent being slashed. Please use an explorer such as https://beaconcha.in to confirm at least one of the missed attestations has been finalized before proceeding.%s\n\n", colorYellow, colorReset)
648
-
fmt.Println()
649
-
if!prompt.Confirm(fmt.Sprintf("Press y when you understand the above warning, have waited, and are ready to start Rocket Pool:%s", colorReset)) {
fmt.Printf("%sNOTE: You are configured to use Nimbus in local mode. Starting with v1.9.0, Nimbus is now configured to use a split-process configuration, which means the Beacon Node (the `eth2` container) no longer loads your validator keys - now the `validator` container does.\n\nDue to this, we must restart Nimbus as part of the upgrade. Your client's slashing database will be moved from the `eth2` container to the `validator` container automatically to ensure your node doesn't attest to the same duty twice and get slashed.\n\nIf you have *any concern at all* about this process, you may want to voluntarily shut down the Docker containers with `rocketpool service stop` and wait 15 minutes to ensure that you've missed at least two attestations before proceeding. If you do this, please use an explorer such as https://beaconcha.in to confirm at least one of the missed attestations has been finalized before proceeding.%s\n\n", colorYellow, colorReset)
660
-
fmt.Println()
661
-
if!prompt.Confirm("Do you want to continue starting the service?") {
662
-
fmt.Println("Cancelled.")
663
-
returnfalse, nil
664
-
}
665
-
666
-
// Ensure the eth2 and validator containers have stopped
returnfalse, fmt.Errorf("unexpected output when trying to stop %s: [%s]", validatorContainerName, out)
703
-
}
704
-
705
-
if!successfulStop {
706
-
fmt.Println()
707
-
fmt.Printf("%sWARNING: Some of the Nimbus containers couldn't be shut down safely.\nThe Smart Node can't guarantee the safe transfer of the slashing database. If you have active validators, you **must ensure** you have waited 15 minutes since your last attestation and **missed at least two attestations** before continuing.\nIf you don't, you %sMAY BE SLASHED!%s\n\n", colorYellow, colorRed, colorReset)
708
-
fmt.Println()
709
-
if!prompt.Confirm(fmt.Sprintf("Press y when you understand the above warning, have waited, and are ready to start Rocket Pool:%s", colorReset)) {
710
-
fmt.Println("Cancelled.")
711
-
returnfalse, nil
712
-
}
713
-
}
714
-
}
715
-
716
-
returntrue, nil
717
-
718
-
}
719
-
720
-
// Versions prior to v1.3.1 didn't preserve Teku's slashing DB, so force a delay when upgrading to ensure the user doesn't get slashed by accident
fmt.Printf("You are currently using Teku as your Consensus client.\nv1.3.1+ fixes an issue that would cause Teku's slashing protection database to be lost after an upgrade.\nIt will now be rebuilt.\n\nFor the absolute safety of your funds, your node will wait for 15 minutes before starting.\nYou will miss a few attestations during this process; this is expected.\n\nThis delay only needs to happen the first time you start the Smart Node after upgrading to v1.3.1 or higher.%s\n\nIf you are installing the Smart Node for the first time or don't have any validators yet, you can skip this with `rocketpool service start --ignore-slash-timer`. Otherwise, we strongly recommend you wait for the full delay.\n\n", colorReset)
// Handle the transition from Nimbus v22.11.x to Nimbus v22.12.x where they split the VC into its own container
829
-
fmt.Printf("Validator client [%s] was previously used, you are changing to [%s] but the Smart Node will migrate your slashing database automatically to this new client. No slashing prevention delay is necessary.\n", currentValidatorName, pendingValidatorName)
0 commit comments