-
Notifications
You must be signed in to change notification settings - Fork 97
Closed
Labels
epicAn issue which tracks multiple issuesAn issue which tracks multiple issues
Milestone
Description
Currently the entire msg
+ ack
workflows are split into separate unidirectional subprotocols. This is in line with the expectations in the future to be able to streamify the node-to-node communication
No known requirements at this point would demand linking the msg
and ack
subprotocols, only the correlation of these protocols on the logical level is needed and the correlation can be achieved on the higher level.
Description
Some issues to be fixed while introducing the new stream like processing:
- Always
ack
themsg
request, even onmsg
failure, to increase the privacy - Simplify the packet processing pipeline to abstract away from the non-transport related behavior (e.g. tickets, chain ops...)
- Update the code to use lazy initialization where possible and optimize background processes with parallelization (e.g.
rayon
). - Consider using expiring caches (https://docs.rs/cached/latest/cached/stores/struct.ExpiringValueCache.html)
Relevant issues
- Limit non-cooperative nodes who do not send ACKs #2649
- relates to Improve p2p HOPR subprotocol to use libp2p streams #5662
- Optimization of the code execution with respect to the multi-threaded executor runtime #5891
- Create p2p abstraction layer between HOPR and libp2p #5894
- 🐛 Acknowledge *every* packet #5937
- Abstract packet processing DB operations to a standalone trait #6050
- Refactor select! block in SwarmEventLoop's run method for better readability #6262
- Basic performance improvements to increase node throughput through rayon parallelization #6317
Definition of DONE
- A new stream interface for the
msg + ack
protocol is defined in term of the libp2p agnostic behavior - The process pipeline is streamlined and simplified
- The new abstractions are in place to allow removing non-transport related code from the transport layer and hide those behind a traita
- Lazy initialization is used wherever possible
- Packet processing pipeline uses a parallelization engine
Metadata
Metadata
Assignees
Labels
epicAn issue which tracks multiple issuesAn issue which tracks multiple issues