From 24c3f12e25d6a5c24a22e33709600ecb18a85fd2 Mon Sep 17 00:00:00 2001 From: Huang-Ming Huang Date: Wed, 13 May 2026 18:10:07 +0000 Subject: [PATCH] Deprecate legacy OPP envelope metadata in wire-sysio --- .../sysio.msgch/include/sysio.msgch/sysio.msgch.hpp | 6 +----- contracts/sysio.msgch/sysio.msgch.abi | 12 ------------ .../include/sysio.opp.common/opp_table_types.hpp | 13 ++++++------- libraries/opp/proto/sysio/opp/opp.proto | 7 ++++++- 4 files changed, 13 insertions(+), 25 deletions(-) diff --git a/contracts/sysio.msgch/include/sysio.msgch/sysio.msgch.hpp b/contracts/sysio.msgch/include/sysio.msgch/sysio.msgch.hpp index 3e98b07f6b..51a811fa3f 100644 --- a/contracts/sysio.msgch/include/sysio.msgch/sysio.msgch.hpp +++ b/contracts/sysio.msgch/include/sysio.msgch/sysio.msgch.hpp @@ -161,9 +161,6 @@ namespace sysio { uint64_t outpost_id; uint32_t epoch_index; checksum256 envelope_hash; - checksum256 merkle_root; - checksum256 start_message_id; - checksum256 end_message_id; opp::types::EnvelopeStatus status; std::vector raw_envelope; @@ -173,8 +170,7 @@ namespace sysio { } SYSLIB_SERIALIZE(outbound_envelope, - (id)(outpost_id)(epoch_index)(envelope_hash)(merkle_root) - (start_message_id)(end_message_id)(status)(raw_envelope)) + (id)(outpost_id)(epoch_index)(envelope_hash)(status)(raw_envelope)) }; using outenvelopes_t = sysio::kv::table<"outenvelopes"_n, id_key, outbound_envelope, diff --git a/contracts/sysio.msgch/sysio.msgch.abi b/contracts/sysio.msgch/sysio.msgch.abi index b339d6f1c2..14bca9e29d 100644 --- a/contracts/sysio.msgch/sysio.msgch.abi +++ b/contracts/sysio.msgch/sysio.msgch.abi @@ -270,18 +270,6 @@ "name": "envelope_hash", "type": "checksum256" }, - { - "name": "merkle_root", - "type": "checksum256" - }, - { - "name": "start_message_id", - "type": "checksum256" - }, - { - "name": "end_message_id", - "type": "checksum256" - }, { "name": "status", "type": "EnvelopeStatus" diff --git a/contracts/sysio.opp.common/include/sysio.opp.common/opp_table_types.hpp b/contracts/sysio.opp.common/include/sysio.opp.common/opp_table_types.hpp index e9ed8e7e24..00131964f7 100644 --- a/contracts/sysio.opp.common/include/sysio.opp.common/opp_table_types.hpp +++ b/contracts/sysio.opp.common/include/sysio.opp.common/opp_table_types.hpp @@ -203,20 +203,19 @@ DataStream& operator>>(DataStream& ds, Message& t) { return ds >> t.header >> t.payload; } -// Envelope: all fields (signatures field removed per protocol spec) +// Envelope: current inline-consensus fields. Legacy merkle/range metadata is +// decode-compatible at the protobuf layer but ignored by CDT table storage. template DataStream& operator<<(DataStream& ds, const Envelope& t) { return ds << t.envelope_hash << t.endpoints << t.epoch_timestamp - << t.epoch_index << t.epoch_envelope_index << t.merkle - << t.previous_envelope_hash << t.start_message_id - << t.end_message_id; + << t.epoch_index << t.epoch_envelope_index + << t.previous_envelope_hash << t.messages; } template DataStream& operator>>(DataStream& ds, Envelope& t) { return ds >> t.envelope_hash >> t.endpoints >> t.epoch_timestamp - >> t.epoch_index >> t.epoch_envelope_index >> t.merkle - >> t.previous_envelope_hash >> t.start_message_id - >> t.end_message_id; + >> t.epoch_index >> t.epoch_envelope_index + >> t.previous_envelope_hash >> t.messages; } } // namespace sysio::opp diff --git a/libraries/opp/proto/sysio/opp/opp.proto b/libraries/opp/proto/sysio/opp/opp.proto index d34aba09c1..7f041282b2 100644 --- a/libraries/opp/proto/sysio/opp/opp.proto +++ b/libraries/opp/proto/sysio/opp/opp.proto @@ -62,7 +62,8 @@ message Message { // Epoch envelope // --------------------------------------------------------------------------- -// Envelope that spans a range of messages within an epoch. +// Envelope for an epoch. `messages` are carried inline and are consensus-covered +// by the accepted serialized envelope digest. message Envelope { bytes envelope_hash = 1; // 32 bytes Endpoints endpoints = 2; @@ -70,10 +71,14 @@ message Envelope { uint32 epoch_index = 6; uint32 epoch_envelope_index = 7; + // Deprecated legacy paged-delivery metadata. Inline envelope receivers must + // ignore this for consensus acceptance. bytes merkle = 15; // 32 bytes bytes previous_envelope_hash = 20; // 32 bytes + // Deprecated legacy range metadata. Receivers can inspect `messages` + // directly and must not require these fields for acceptance. bytes start_message_id = 30; // 32 bytes bytes end_message_id = 31; // 32 bytes