Description
Story Form
N/A
Technical Notes
The stream publisher plugin was originally built with a one-way publish assumption, extensive synchronization, and acknowledgement sent for error conditions. These assumptions and criteria turned out to be incorrect, so we must rebuild the plugin to match the design required by the full interactive protocol between publisher and block node.
This includes, but is not limited to, support for sending EndOfStream
messages for errors or to limit the duration of connections, support for multiple publishers, support for timeout based on receiving a later block proof from another publisher, support for receiving multiple blocks from multiple publishers in semi-parallel, etc...
Handling certain specific items is detailed in other features under the same parent epic, and is not part of this feature.