Trait DiskFormatUpgrade

Source
pub trait DiskFormatUpgrade {
    // Required methods
    fn version(&self) -> Version;
    fn description(&self) -> &'static str;
    fn run(
        &self,
        initial_tip_height: Height,
        db: &ZebraDb,
        cancel_receiver: &Receiver<CancelFormatChange>,
    ) -> Result<(), CancelFormatChange>;

    // Provided methods
    fn validate(
        &self,
        _db: &ZebraDb,
        _cancel_receiver: &Receiver<CancelFormatChange>,
    ) -> Result<Result<(), String>, CancelFormatChange> { ... }
    fn prepare(
        &self,
        _initial_tip_height: Height,
        _upgrade_db: &ZebraDb,
        _cancel_receiver: &Receiver<CancelFormatChange>,
        _older_disk_version: &Version,
    ) -> Result<(), CancelFormatChange> { ... }
    fn needs_migration(&self) -> bool { ... }
}
Expand description

Defines method signature for running disk format upgrades.

Required Methods§

Source

fn version(&self) -> Version

Returns the version at which this upgrade is applied.

Source

fn description(&self) -> &'static str

Returns the description of this upgrade.

Source

fn run( &self, initial_tip_height: Height, db: &ZebraDb, cancel_receiver: &Receiver<CancelFormatChange>, ) -> Result<(), CancelFormatChange>

Runs disk format upgrade.

Provided Methods§

Source

fn validate( &self, _db: &ZebraDb, _cancel_receiver: &Receiver<CancelFormatChange>, ) -> Result<Result<(), String>, CancelFormatChange>

Check that state has been upgraded to this format correctly.

The outer Result indicates whether the validation was cancelled (due to e.g. node shutdown). The inner Result indicates whether the validation itself failed or not.

Source

fn prepare( &self, _initial_tip_height: Height, _upgrade_db: &ZebraDb, _cancel_receiver: &Receiver<CancelFormatChange>, _older_disk_version: &Version, ) -> Result<(), CancelFormatChange>

Prepare for disk format upgrade.

Source

fn needs_migration(&self) -> bool

Returns true if the DiskFormatUpgrade needs to run a migration on existing data in the db.

Implementors§