Skip to content
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

Transport (Net module) based on libp2p #81

Closed
matejpavlovic opened this issue May 27, 2022 · 2 comments
Closed

Transport (Net module) based on libp2p #81

matejpavlovic opened this issue May 27, 2022 · 2 comments
Assignees

Comments

@matejpavlovic
Copy link
Contributor

Implement the Net module's interface using the libp2p-based transport layer used in Eudico.

Estimated duration: 2 weeks

@matejpavlovic
Copy link
Contributor Author

2022-07-05 Sync meeting summary

Situation

The Eudico daemon and the Eudico miner run in 2 different processes. Both of them are necessary to run consensus and produce blocks. The Mir implementation runs in the miner process (as this is more natural given the Eudico architecture) and communicates with the daemon to fetch transactions from the mempool and deliver ordered blocks to it.

The libp2p host that Eudico uses (and that could potentially be reused by Mir) only runs in the daemon and is not available to the miner. However, moving the whole Mir-based ordering implementation to the daemon seems to be hard without perturbing the Eudico implementation.

Conclusion

Have an independent instance of a libp2p host inside the miner process, independent of the Eudico daemon and only used for transporting the consensus protocol messages. It will be encapsulated in a Mir networking module for interaction with Mir. If we ever decide to move the Mir-based ordering component inside the Eudico daemon process, we will modify the Mir module and make it use the Eudico-native libp2p host instead.

@dnkolegov
Copy link
Contributor

Implemented in #126

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants