-
Notifications
You must be signed in to change notification settings - Fork 267
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
EPIC: Identifying Expected Network Traffic Rate in celestia-core #1080
Labels
Comments
Please consult the following table for mapping between channel ID and their names:
|
Nice work. This definitely helps to validate the impact to bandwidth that compact blocks would have (given the current significant bandwidth to block parts) |
This was referenced Sep 28, 2023
staheri14
added a commit
that referenced
this issue
Oct 10, 2023
Part of #1080 This is the initial version of the mempool v1 protocol description, the content may undertake further updates (with new findings) in the follow up PRs.
staheri14
added a commit
that referenced
this issue
Nov 8, 2023
… parts of StateChannel communication (#1129) Closes #1080 by capturing the second most bandwidth intensive communication protocol i.e., `DataChannel`. Initially, the State channel was not included in the scope of this PR. However, because the `DataChannel` protocol heavily relies on the exchange of peer state, which occurs over the `StateChannel`, the document has been expanded to address the pertinent aspects of the state channel. Please also note that this document will undergo additional updates in future rounds of editing as more details and insights are gathered about message flow, particularly concerning the updates transmitted over the `StateChannel`, which is intricately linked with the inner workings of the consensus state machine.
cmwaters
pushed a commit
that referenced
this issue
Jul 30, 2024
Part of #1080 This is the initial version of the mempool v1 protocol description, the content may undertake further updates (with new findings) in the follow up PRs.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Problem and Context
We have conducted a series of tests aimed at assessing the network's performance and overall health using various infrastructures. These tests have been performed in live networks like Mocha, as well as in test environments such as Testground and Knuu. Throughout these evaluations, we have monitored multiple performance indicators, including transaction throughput, block size, and block time. Additionally, we have also considered various health indicators, such as traffic rates per peer.
A recurring theme in all these scenarios is the need to answer critical questions: What are the expected outcomes? What constitutes healthy behavior? Depending on the answers to these questions, our test results become significantly more insightful, allowing us to pinpoint bottlenecks and disparities effectively.
In this EPIC, we provide a plan to address these questions for the network traffic rate.
Solution Plan
Setting a baseline for the expected traffic rate in a healthy network necessitates an understanding of the inner workings of the P2P layer within Celestia-Core (Tendermint) potentially by utilizing some low-level specification (which unfortunately is not available). However, our preliminary analysis has revealed that we are currently dealing with a limited number of reactors (channel IDs) and message types at the p2p layer. Thus, we can simplify this process by only focusing on extracting and documenting the flow of messages through their reactors and in relation to the number of connections and the state of the consensus. This would allow us to set an expected traffic rate per peer depending on the test scenario and network topology (and other factors that may come up as part of this EPIC)
Our approach involves an examination of the code associated with each message type, with a focus on understanding their life cycles. This entails:
Tasks
The following list categorizes message types based on their channel IDs (note that the message names are according to how they appear on the Prometheus metrics endpoint and may differ from their protobuf names). In this EPIC, we need to address questions outlined in the Solution Plan section for each of these message types and document the findings. Prioritization should be given to documenting message types that have contributed the most to overall traffic, as indicated by the results obtained in the previous issue. For reference, please find the screenshot of the results below:
Out of scope
The epic does not include the following items (decided to exclude), as they account for a smaller portion of the overall traffic relative to other message types.
The text was updated successfully, but these errors were encountered: