migrations

package
v0.2202.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 29, 2023 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Overview

Package migrations implements upgrade migration handlers.

Index

Constants

View Source
const (
	// ConsensusMaxAllowances16Handler is the name of the upgrade that sets the
	// staking max allowances consensus parameter to 16.
	ConsensusMaxAllowances16Handler = "consensus-max-allowances-16"
)
View Source
const (
	// ConsensusV62 is the name of the upgrade that enables multiple features added in Oasis Core
	// version 22.2.x, specifically PCS support for Intel SGX, remote attestation binding to node
	// identities and client freshness proofs.
	ConsensusV62 = "consensus-v62"
)
View Source
const (
	// DummyUpgradeHandler is the name of the dummy upgrade, for use in the upgrade descriptor.
	DummyUpgradeHandler = "__e2e-test-valid"
)
View Source
const (
	// EmptyHandler is the name of the upgrade handler that doesn't perform any updates. This is
	// useful for upgrades that bump protocol versions but don't need any state migrations.
	EmptyHandler = "empty"
)
View Source
const (
	// ModuleName is the migration module name.
	ModuleName = "upgrade-migrations"
)

Variables

View Source
var (

	// ErrMissingMigrationHandler is error returned when a migration handler is not registered.
	ErrMissingMigrationHandler = fmt.Errorf("missing migration handler")
)
View Source
var (
	TestEntity entity.Entity
)

Functions

func Register

func Register(name upgradeApi.HandlerName, handler Handler)

Register registers a new migration handler, by upgrade name.

Types

type Context

type Context struct {
	// Upgrade is the currently pending upgrade structure.
	Upgrade *upgradeApi.PendingUpgrade

	// DataDir is the node's data directory.
	DataDir string

	Logger *logging.Logger
}

Context defines the common context used by migration handlers.

func NewContext

func NewContext(upgrade *upgradeApi.PendingUpgrade, dataDir string) *Context

NewContext returns a new upgrade migration context.

type Handler

type Handler interface {
	// StartupUpgrade is called by the upgrade manager to perform
	// the node startup portion of the upgrade.
	StartupUpgrade(*Context) error

	// ConsensusUpgrade is called by the upgrade manager to perform
	// the consensus portion of the upgrade. The interface argument is
	// a private structure passed to Backend.ConsensusUpgrade by the
	// consensus backend.
	//
	// This method will be called twice, once in BeginBlock and once in
	// EndBlock.
	ConsensusUpgrade(*Context, interface{}) error
}

Handler is the interface used by migration handlers.

func GetHandler

func GetHandler(name upgradeApi.HandlerName) (Handler, error)

GetHandler returns the handler associated with the upgrade described in the context.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL