Release v0.2.0 - Trackgate Module & External Sequencer Integration
Highlights
We are excited to announce the release of version v0.2.0
of the Junction project! This version brings a major feature upgrade introducing the Trackgate Module, enabling the Junction chain to accommodate interactions with different external sequencers. We have also included several key enhancements and optimizations across various parts of the system.
Key Features
- Trackgate Module: Introduced a new module,
Trackgate
, to enable the Junction chain to interface seamlessly with external sequencers. This module includes:- Schema engagements for external sequencer interactions.
- Extensions for supporting various external track stations.
- External Track Station Management:
- Added support for listing, retrieving, and managing external track stations using new gRPC methods.
- Added protobuf definitions to support serialization and deserialization of external sequencer data.
Enhancements
- Upgrade Handler: Added upgrade handler logic for
jip-2
and included necessary features to handle the store loader during software upgrades. - Schema Versioning: Added version tracking mechanisms for schema creation to support multiple schema versions and their evolution.
- Improved Storage Efficiency:
- Reduced
GetFileDescriptorsProto
size in queryp.p.op
by reducing the gzip size from 1541 bytes to 1318 bytes. - Removed redundant data entries and unused fields to reduce storage and enhance overall system performance.
- Reduced
Bug Fixes
- Fixed Redundant Track Removal:
- Removed unused fields, including
Track
fromQueryRetrieveSchemaKey
, reducing serialization overhead and improving efficiency.
- Removed unused fields, including
- Station SchemaKey Fix:
- Corrected the issue of missing
StationSchemaKey
inExitTrackStations
protocol buffers, ensuring consistent updates during external sequencer changes.
- Corrected the issue of missing
Breaking Changes
- Removed
MsgSchemaEngage.schemaKey
:- Removed the
schemaKey
field fromMsgSchemaEngage
struct, simplifying schema definitions and enhancing maintainability.
- Removed the
- Migration Changes:
- Deprecated the
TrackSchema
engagement protocols in favor of new, modular methods that improve flexibility.
- Deprecated the
Detailed Changes
- Add Schema Creation and Engagement Functionalities:
- Added the ability to create and manage multiple track engagements for external sequencers.
- Implemented functionality for schema creation and validation during the proposal submission process.
- Refactored and Optimized Protobuf Messages:
- Updated the
ExtTrackSchema
protobuf messages, making them compatible with the new Trackgate module and adding support for interactions with external track stations.
- Updated the
- CLI Updates:
- Added new commands to create, list, and manage external track stations and schema engagements.
Improvements to Developer Experience
- Reduced Complexity in Migration:
- Migration steps related to
trackgate
were made simpler, with updated binding protocols for message validation and schema management.
- Migration steps related to
- Code Clean-up:
- Removed outdated comments and redundant code sections to enhance readability.
How to Upgrade
-
Prepare for the Software Upgrade: Make sure all nodes are synced to the correct block height and have access to the required binaries.
-
Use the subsequent suitable binary: To initiate the synchronization process, begin with the earliest binary version available. Proceed by synchronizing it with the instance where this particular binary was last utilized. Subsequently, replace the existing binary with the subsequent version in the chronological sequence until your node achieves complete synchronization with the current chain states.
-
Trackgate Module Activation:
- After the upgrade, use the CLI commands to initiate
trackgate
and external sequencer engagements.
- After the upgrade, use the CLI commands to initiate
Contributors
We want to thank everyone who contributed to this release. Your hard work and dedication have helped us reach this significant milestone!
What's Changed
- Add upgrade handler for "jip-2" and handle store upgrades by @ComputerKeeda in #2
Full Changelog: https://github.com/ComputerKeeda/junction/commits/v0.2.0