Adapt API between the platform-sdk and hedera.app for system transaction rafactoring #16678
Labels
Epic
A body of work that can be broken down into specific tasks.
Hedera App
Issues related to Hedera App and Hedera App SPI
Platform
Tickets pertaining to the platform
In order to support the new format of
GossipEvent
where transactions will be passed asrepeated bytes
, we need to extract the parsing of those bytes outside of the platform, so that we have a single common place for this logic. Platform has the need to keep only system transactions, which are handled there.Good place for this logic will be inside hedera.app, where the transaction bytes will be deserialized back to proto PBJ models, which are the ones utilized by hedera.app logic. Once these PBJ models are created, hedera.app should filter all system transactions and get them back to the platform.
The current design to achieve these requirements is the following:
SwirldState.preHandle
andSwirldState.handleConsensusRound
will be extended with a second argument, which will be aConsumer<ScopedSystemTransaction<StateSignatureTransaction>> callback
hedera.app
when deserializing of transaction bytes occurs (which will be inside a multi-threaded context), whenever the app sees aStateSignatureTransaction
, it will be added in the callback consumerplatform-sdk
, define these consumer callbacks as input wires inside the wiring framework. This will guarantee transactions coming back from hedera.app are read in a synchronized manner.Tasks
PlatformWiring
#16707StateSignatureTransaction
in hedera.app #17073The text was updated successfully, but these errors were encountered: