[DAC II] Coordinator - Produced root page hashes are streamed to signers (whole payload endpoint)
Blocked by:
-
!7570 (merged) (WIP: refining data streamer interface) -
!7545 (merged) (Dac hash) -
(!7599 (merged)) (Integration of Dac_hash into node context/it's mapping) -
!7657 (merged) (move everything from bin_dac_nodetolib_dac_nodeand moveRPCfromlib_dactolib_dac_node.
Series of MRs
-
!7621 (merged) (Refining and implementing Data_streamerinterface) -
!7548 (merged) (Streaming of root hashes with tezt)
Context
We plan to keep supporting the endpoint for sending whole payloads to the DAC coordinator (/dac/store_preimage).
The idea is that when a Coordinator serializes payload, received by the aforementioned endpoint, in addition to producing root hash and returning it back, it also pushes the produced root hash to the so called Data_streamer component. The goal here is that DAC Members are able to subscribe to the Coordinator's streaming component, so that every-time Coordinator produces a root hash, it is able to notify them about the new root hash. This way Members are able to fetch new payloads to sign.
For the moment it is fine to stream only the root page hash, later on we can include information such as the DAC id in this endpoint.
Implementation
For this to work we want to have the following:
-
Coordinator_data_streamercomponent responsible for pub/sub handling. - Integrate this component into the dac
Node_context.t - Provide a streaming RPC service handled by the
Coordinator, so thatMembercan make a streamed call toCoordinator(subsribe) (we would use streaming daemon here). - As a first iteration this would be implemented in the legacy mode, i.e. there is no notion of profiles.
Testing
- We want a simple integration test, where having two DAC nodes running in the
legacymode simulate pub sub pattern.
Follow-up MRs/
-
Once profiles (#4613 (closed)) are finished we also want to integrate streaming of root hashes into dac nodes running other then legacymode -
#4848 (closed)