SwirldState API will be enhanced with changes in preHandle and handleConsensusRound, adding additional consumer as a callback. This callback should be properly integrated inside hedera.app by being populated with system transactions. These consumers should take the system transactions in a sychronized manner and pass them to StateSignatureCollector.
Solution
Add these consumers as wire definitions inside PlatformWiring. This will guarantee thread-safety of the transactions that are read. This can be done in the following manner:
applicationTransactionPrehandlerWiring.outputWire can be soldiered to a preHandleConsumerCallback.inputWire
stateSignatureCollectorWiring.inputWire for handlePreconsensusSignatures can be soldiered to the preHandleConsumerCallback.outputWire
transactionHandlerWiring.outputWire can be soldiered to a handlerConsumerCallBack.inputWire
stateSignatureCollectorWiring.inputWire for handlePostconsensusSignatures can be soldiered to the handlerConsumerCallBack.outputWire
Problem
SwirldState API will be enhanced with changes in
preHandle
andhandleConsensusRound
, adding additional consumer as a callback. This callback should be properly integrated insidehedera.app
by being populated with system transactions. These consumers should take the system transactions in a sychronized manner and pass them toStateSignatureCollector
.Solution
Add these consumers as wire definitions inside PlatformWiring. This will guarantee thread-safety of the transactions that are read. This can be done in the following manner:
applicationTransactionPrehandlerWiring.outputWire
can be soldiered to apreHandleConsumerCallback.inputWire
stateSignatureCollectorWiring.inputWire
forhandlePreconsensusSignatures
can be soldiered to thepreHandleConsumerCallback.outputWire
transactionHandlerWiring.outputWire
can be soldiered to ahandlerConsumerCallBack.inputWire
stateSignatureCollectorWiring.inputWire
forhandlePostconsensusSignatures
can be soldiered to thehandlerConsumerCallBack.outputWire
Alternatives
No response