diff --git a/contracts/sysio.msgch/include/sysio.msgch/sysio.msgch.hpp b/contracts/sysio.msgch/include/sysio.msgch/sysio.msgch.hpp index 23f5e83af6..2d35fcc97e 100644 --- a/contracts/sysio.msgch/include/sysio.msgch/sysio.msgch.hpp +++ b/contracts/sysio.msgch/include/sysio.msgch/sysio.msgch.hpp @@ -189,9 +189,6 @@ namespace sysio { uint64_t chain_code; 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; @@ -201,8 +198,7 @@ namespace sysio { } SYSLIB_SERIALIZE(outbound_envelope, - (id)(chain_code)(epoch_index)(envelope_hash)(merkle_root) - (start_message_id)(end_message_id)(status)(raw_envelope)) + (id)(chain_code)(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 ce04b1d347..5586d7cf30 100644 --- a/contracts/sysio.msgch/sysio.msgch.abi +++ b/contracts/sysio.msgch/sysio.msgch.abi @@ -294,18 +294,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 f20e7a23e3..2eeb1431d3 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 @@ -266,18 +266,19 @@ DataStream& operator>>(DataStream& ds, Message& t) { return ds >> t.header >> t.payload; } -// Envelope: trimmed v6 — merkle/start_message_id/end_message_id removed +// Envelope: inline-consensus fields. Legacy merkle/range metadata was removed +// from the schema and is not stored in CDT table serialization. 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.previous_envelope_hash; + << 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.previous_envelope_hash; + >> 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 77803b78a7..6882ee5b27 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;