Skip to content

Create exhaustive backward and forward compatibility tests #1882

@jsync-swirlds

Description

@jsync-swirlds

Goal

Ensure that the block node accepts and correctly processes messages with both newer and older versions of the Block Stream.

Intention

We intend to verify that when the block node receives messages with data in an older block stream format that the data is processed without loss or error.
We intend to verify that when the block node receives messages with data in a newer block stream format that the data is processed without loss or error.
We intend to ensure that all block node processing retains the exact same ordering of block items and each block item is represented by the same serialized bytes when input is compared to output.

Considerations

The various "Unparsed" versions of block stream data do not guarantee forward compatibility.
PBJ (and protoc) stores unrecognized oneOf options or other fields in a separate map.
The Block Node must affirmatively check this map at relevant points to maintain forward-compatibility.

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    Testsissue related to enhancing the tests

    Type

    Projects

    Status

    🧊 Backlog

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions