Skip to main content

Rescue Missions

TL;DR

The same tools used to manufacture on-chain governance proposals (libra-framework) are used to create governance scripts. These scripts can be executed offline with db-bootstrapper via the rescue-cli tool here.

Framework upgrades

For now you need to craft a frankenstein TX by hand. A better tool could be built, but a rescue operation is a rare occurrence and should be led by people familiar with the tools.

Creating the bytes for publishing a new/updated Move module is done by the libra-framework tool; simply cargo run upgrade. You can see the instructions there to create new Move module compile artifacts.

See an example in the test fixtures here. This is one specific case of of an upgrade while a network is halted. We have copied the bits from upgrade examples in framework/src/upgrade_fixtures/fixtures/upgrade-multi-lib/3-libra-framework/sources/3-libra-framework.move this file will include a test module: all_your_base.move

HACK THE BLACK MAGIC

When trying to bootstrap a db, and get a valid state transition, we need the transaction to emit a "reconfiguration event": a reconfiguration event must:

  • happen with timestamp not equal to previous reconfiguration
  • have a "touch" to validator set, whatever that means