MASQ-Project / MASQ-Node-issues

This repo contains the issues that are used for planning MASQ Node product work. It has no code in it, only GitHub issue tickets
https://masq.ai/
31 stars 12 forks source link

Activate Gossip Migration #804

Open dnwiebe opened 2 months ago

dnwiebe commented 2 months ago

The Gossip migration machinery in the Node is written, working, and unit-tested, but not yet complete. Two things remain to be done.

First, the existing architecture is inefficient. MigrationStep::migrate() returns a Result<Vec<u8>>, which means it must perform an unnecessary serialization step after its conversion; then this serialization must be deserialized by the caller. MigrationStep and the structure it fits into should be simplified to eliminate this extra serialization/deserialization cycle. This will require more generic-type manipulation than is currently done by the code; it's possible that early versions of Rust were incapable of this, and that's why the inefficiency was tolerated.

Second, each of these VersionedData structs must have a migration written for it (probably using the migrate_value! macro) that can migrate data from the future backward into the _0v1 versions. Without these migrations, the entire migration subsystem is useless.

kauri-hero commented 2 months ago

Can consider a type of log that will instruct user that gossip version is not compatible Would need to determine if this is feasible and when a Node determines it's gossip is out of date and would never encounter older Nodes to connect to