New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Networking] Implements Pluggable Conduit Factory #1986
Conversation
@@ -0,0 +1,53 @@ | |||
package network |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
May skip reviewing this file, not a new logic, just organizing into a new file.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you comment on why the channel logic was moved into a separate file? Is it to allow test channels to be created to simulate BFT attack scenarios?
Co-authored-by: Vishal <1117327+vishalchangrani@users.noreply.github.com>
Codecov Report
@@ Coverage Diff @@
## master #1986 +/- ##
==========================================
- Coverage 57.61% 57.59% -0.02%
==========================================
Files 631 631
Lines 36172 36186 +14
==========================================
+ Hits 20841 20842 +1
- Misses 12710 12720 +10
- Partials 2621 2624 +3
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
This PR refactors the networking layer to decouple the creation of
Conduit
s into a statefulConduitFactory
interface, which provides a pluggableConduit
creation functionality for the networking layer. This is a prerequisite decomposition to enable testing our nodes under Byzantine behavior through the Programmable Conduit (PC) framework (see the attached issue for more details).In a nutshell, a
Conduit
is the interface that enables an engine push a message to a subset of the remote nodes through the networking layer.