Add in a safety check that catches flow checkpoints from older versions

Description

If you forget to drain your node and then upgrade it, you might get arbitrary crashes as we try to deserialise checkpoints onto bytecode that has changed.

We should add some columns to the checkpoint table and refuse to start up if our platform version != the platform version that created the checkpoint.

We should also record the JAR hash of the app that created the flows and if that changed, refuse to start up as well until the user has downgraded, re-run the node, drained, and then can reattempt.

CVSS Vector

None

Status

Assignee

Tudor Malene

Reporter

Mike Hearn

Labels

None

CVSS Score

None

Feature Team

Corda Core

Target Version/s

None

Ported to...

None

Story Points

13

Fix versions

Priority

Medium