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

draw a handy dependancy graph #1233

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

Georges760
Copy link

to better undersatnding of the current protocol/v2/dependancies

@Georges760 Georges760 marked this pull request as ready for review October 25, 2024 19:37
Copy link

codecov bot commented Oct 25, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 19.36%. Comparing base (b8e7715) to head (a3e38db).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1233   +/-   ##
=======================================
  Coverage   19.36%   19.36%           
=======================================
  Files         164      164           
  Lines       10811    10811           
=======================================
  Hits         2094     2094           
  Misses       8717     8717           
Flag Coverage Δ
binary_codec_sv2-coverage 0.00% <ø> (ø)
binary_serde_sv2-coverage 3.65% <ø> (ø)
binary_sv2-coverage 5.46% <ø> (ø)
bip32_derivation-coverage 0.00% <ø> (ø)
buffer_sv2-coverage 25.02% <ø> (ø)
codec_sv2-coverage 0.01% <ø> (ø)
common_messages_sv2-coverage 0.13% <ø> (ø)
const_sv2-coverage 0.00% <ø> (ø)
error_handling-coverage 0.00% <ø> (ø)
framing_sv2-coverage 0.29% <ø> (ø)
jd_client-coverage 0.00% <ø> (ø)
jd_server-coverage 8.13% <ø> (ø)
job_declaration_sv2-coverage 0.00% <ø> (ø)
key-utils-coverage 2.39% <ø> (ø)
mining-coverage 2.51% <ø> (ø)
mining_device-coverage 0.00% <ø> (ø)
mining_proxy_sv2-coverage 0.70% <ø> (ø)
noise_sv2-coverage 4.35% <ø> (ø)
pool_sv2-coverage 1.38% <ø> (ø)
protocols 24.72% <ø> (ø)
roles 6.63% <ø> (ø)
roles_logic_sv2-coverage 8.06% <ø> (ø)
sv1-mining-device-coverage 0.00% <ø> (ø)
sv2_ffi-coverage 0.00% <ø> (ø)
template_distribution_sv2-coverage 0.00% <ø> (ø)
translator_sv2-coverage 9.61% <ø> (ø)
utils 25.13% <ø> (ø)
v1-coverage 2.47% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link
Contributor

github-actions bot commented Oct 25, 2024

🐰 Bencher Report

Branch1233/merge
Testbedsv1

⚠️ WARNING: The following Measure does not have a Threshold. Without a Threshold, no Alerts will ever be generated!

Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the --ci-only-thresholds CLI flag.

Click to view all benchmark results
BenchmarkLatencynanoseconds (ns)
client-submit-serialize📈 view plot
⚠️ NO THRESHOLD
6,643.80
client-submit-serialize-deserialize📈 view plot
⚠️ NO THRESHOLD
7,473.70
client-submit-serialize-deserialize-handle/client-submit-serialize-deserialize-handle📈 view plot
⚠️ NO THRESHOLD
8,226.40
client-sv1-authorize-serialize-deserialize-handle/client-sv1-authorize-serialize-deserialize-handle📈 view plot
⚠️ NO THRESHOLD
874.05
client-sv1-authorize-serialize-deserialize/client-sv1-authorize-serialize-deserialize📈 view plot
⚠️ NO THRESHOLD
669.71
client-sv1-authorize-serialize/client-sv1-authorize-serialize📈 view plot
⚠️ NO THRESHOLD
247.43
client-sv1-get-authorize/client-sv1-get-authorize📈 view plot
⚠️ NO THRESHOLD
158.28
client-sv1-get-submit📈 view plot
⚠️ NO THRESHOLD
6,535.00
client-sv1-get-subscribe/client-sv1-get-subscribe📈 view plot
⚠️ NO THRESHOLD
280.46
client-sv1-subscribe-serialize-deserialize-handle/client-sv1-subscribe-serialize-deserialize-handle📈 view plot
⚠️ NO THRESHOLD
736.41
client-sv1-subscribe-serialize-deserialize/client-sv1-subscribe-serialize-deserialize📈 view plot
⚠️ NO THRESHOLD
601.82
client-sv1-subscribe-serialize/client-sv1-subscribe-serialize📈 view plot
⚠️ NO THRESHOLD
206.43
🐰 View full continuous benchmarking report in Bencher

Copy link
Contributor

github-actions bot commented Oct 25, 2024

🐰 Bencher Report

Branch1233/merge
Testbedsv1

⚠️ WARNING: The following Measures do not have a Threshold. Without a Threshold, no Alerts will ever be generated!

Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the --ci-only-thresholds CLI flag.

Click to view all benchmark results
BenchmarkEstimated Cyclesestimated cyclesInstructionsinstructionsL1 AccessesaccessesL2 AccessesaccessesRAM Accessesaccesses
get_authorize📈 view plot
⚠️ NO THRESHOLD
8,421.00📈 view plot
⚠️ NO THRESHOLD
3,689.00📈 view plot
⚠️ NO THRESHOLD
5,156.00📈 view plot
⚠️ NO THRESHOLD
9.00📈 view plot
⚠️ NO THRESHOLD
92.00
get_submit📈 view plot
⚠️ NO THRESHOLD
95,491.00📈 view plot
⚠️ NO THRESHOLD
59,346.00📈 view plot
⚠️ NO THRESHOLD
85,216.00📈 view plot
⚠️ NO THRESHOLD
46.00📈 view plot
⚠️ NO THRESHOLD
287.00
get_subscribe📈 view plot
⚠️ NO THRESHOLD
7,914.00📈 view plot
⚠️ NO THRESHOLD
2,765.00📈 view plot
⚠️ NO THRESHOLD
3,844.00📈 view plot
⚠️ NO THRESHOLD
16.00📈 view plot
⚠️ NO THRESHOLD
114.00
serialize_authorize📈 view plot
⚠️ NO THRESHOLD
12,256.00📈 view plot
⚠️ NO THRESHOLD
5,266.00📈 view plot
⚠️ NO THRESHOLD
7,321.00📈 view plot
⚠️ NO THRESHOLD
14.00📈 view plot
⚠️ NO THRESHOLD
139.00
serialize_deserialize_authorize📈 view plot
⚠️ NO THRESHOLD
24,436.00📈 view plot
⚠️ NO THRESHOLD
9,838.00📈 view plot
⚠️ NO THRESHOLD
13,881.00📈 view plot
⚠️ NO THRESHOLD
39.00📈 view plot
⚠️ NO THRESHOLD
296.00
serialize_deserialize_handle_authorize📈 view plot
⚠️ NO THRESHOLD
30,118.00📈 view plot
⚠️ NO THRESHOLD
12,015.00📈 view plot
⚠️ NO THRESHOLD
16,998.00📈 view plot
⚠️ NO THRESHOLD
62.00📈 view plot
⚠️ NO THRESHOLD
366.00
serialize_deserialize_handle_submit📈 view plot
⚠️ NO THRESHOLD
126,419.00📈 view plot
⚠️ NO THRESHOLD
73,200.00📈 view plot
⚠️ NO THRESHOLD
104,909.00📈 view plot
⚠️ NO THRESHOLD
109.00📈 view plot
⚠️ NO THRESHOLD
599.00
serialize_deserialize_handle_subscribe📈 view plot
⚠️ NO THRESHOLD
27,494.00📈 view plot
⚠️ NO THRESHOLD
9,584.00📈 view plot
⚠️ NO THRESHOLD
13,544.00📈 view plot
⚠️ NO THRESHOLD
67.00📈 view plot
⚠️ NO THRESHOLD
389.00
serialize_deserialize_submit📈 view plot
⚠️ NO THRESHOLD
115,167.00📈 view plot
⚠️ NO THRESHOLD
68,060.00📈 view plot
⚠️ NO THRESHOLD
97,652.00📈 view plot
⚠️ NO THRESHOLD
66.00📈 view plot
⚠️ NO THRESHOLD
491.00
serialize_deserialize_subscribe📈 view plot
⚠️ NO THRESHOLD
22,934.00📈 view plot
⚠️ NO THRESHOLD
8,143.00📈 view plot
⚠️ NO THRESHOLD
11,459.00📈 view plot
⚠️ NO THRESHOLD
41.00📈 view plot
⚠️ NO THRESHOLD
322.00
serialize_submit📈 view plot
⚠️ NO THRESHOLD
99,880.00📈 view plot
⚠️ NO THRESHOLD
61,408.00📈 view plot
⚠️ NO THRESHOLD
88,075.00📈 view plot
⚠️ NO THRESHOLD
51.00📈 view plot
⚠️ NO THRESHOLD
330.00
serialize_subscribe📈 view plot
⚠️ NO THRESHOLD
11,363.00📈 view plot
⚠️ NO THRESHOLD
4,118.00📈 view plot
⚠️ NO THRESHOLD
5,703.00📈 view plot
⚠️ NO THRESHOLD
19.00📈 view plot
⚠️ NO THRESHOLD
159.00
🐰 View full continuous benchmarking report in Bencher

Copy link
Contributor

github-actions bot commented Oct 25, 2024

🐰 Bencher Report

Branch1233/merge
Testbedsv2

⚠️ WARNING: The following Measure does not have a Threshold. Without a Threshold, no Alerts will ever be generated!

Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the --ci-only-thresholds CLI flag.

Click to view all benchmark results
BenchmarkLatencynanoseconds (ns)
client_sv2_handle_message_common📈 view plot
⚠️ NO THRESHOLD
45.20
client_sv2_handle_message_mining📈 view plot
⚠️ NO THRESHOLD
72.70
client_sv2_mining_message_submit_standard📈 view plot
⚠️ NO THRESHOLD
14.66
client_sv2_mining_message_submit_standard_serialize📈 view plot
⚠️ NO THRESHOLD
260.78
client_sv2_mining_message_submit_standard_serialize_deserialize📈 view plot
⚠️ NO THRESHOLD
586.47
client_sv2_open_channel📈 view plot
⚠️ NO THRESHOLD
146.53
client_sv2_open_channel_serialize📈 view plot
⚠️ NO THRESHOLD
283.50
client_sv2_open_channel_serialize_deserialize📈 view plot
⚠️ NO THRESHOLD
370.05
client_sv2_setup_connection📈 view plot
⚠️ NO THRESHOLD
162.80
client_sv2_setup_connection_serialize📈 view plot
⚠️ NO THRESHOLD
496.39
client_sv2_setup_connection_serialize_deserialize📈 view plot
⚠️ NO THRESHOLD
953.20
🐰 View full continuous benchmarking report in Bencher

Copy link
Contributor

github-actions bot commented Oct 25, 2024

🐰 Bencher Report

Branch1233/merge
Testbedsv2

⚠️ WARNING: The following Measures do not have a Threshold. Without a Threshold, no Alerts will ever be generated!

Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the --ci-only-thresholds CLI flag.

Click to view all benchmark results
BenchmarkEstimated Cyclesestimated cyclesInstructionsinstructionsL1 AccessesaccessesL2 AccessesaccessesRAM Accessesaccesses
client_sv2_handle_message_common📈 view plot
⚠️ NO THRESHOLD
2,095.00📈 view plot
⚠️ NO THRESHOLD
473.00📈 view plot
⚠️ NO THRESHOLD
735.00📈 view plot
⚠️ NO THRESHOLD
6.00📈 view plot
⚠️ NO THRESHOLD
38.00
client_sv2_handle_message_mining📈 view plot
⚠️ NO THRESHOLD
8,208.00📈 view plot
⚠️ NO THRESHOLD
2,137.00📈 view plot
⚠️ NO THRESHOLD
3,158.00📈 view plot
⚠️ NO THRESHOLD
37.00📈 view plot
⚠️ NO THRESHOLD
139.00
client_sv2_mining_message_submit_standard📈 view plot
⚠️ NO THRESHOLD
6,297.00📈 view plot
⚠️ NO THRESHOLD
1,750.00📈 view plot
⚠️ NO THRESHOLD
2,547.00📈 view plot
⚠️ NO THRESHOLD
22.00📈 view plot
⚠️ NO THRESHOLD
104.00
client_sv2_mining_message_submit_standard_serialize📈 view plot
⚠️ NO THRESHOLD
14,648.00📈 view plot
⚠️ NO THRESHOLD
4,694.00📈 view plot
⚠️ NO THRESHOLD
6,758.00📈 view plot
⚠️ NO THRESHOLD
45.00📈 view plot
⚠️ NO THRESHOLD
219.00
client_sv2_mining_message_submit_standard_serialize_deserialize📈 view plot
⚠️ NO THRESHOLD
27,472.00📈 view plot
⚠️ NO THRESHOLD
10,585.00📈 view plot
⚠️ NO THRESHOLD
15,402.00📈 view plot
⚠️ NO THRESHOLD
83.00📈 view plot
⚠️ NO THRESHOLD
333.00
client_sv2_open_channel📈 view plot
⚠️ NO THRESHOLD
4,333.00📈 view plot
⚠️ NO THRESHOLD
1,461.00📈 view plot
⚠️ NO THRESHOLD
2,163.00📈 view plot
⚠️ NO THRESHOLD
7.00📈 view plot
⚠️ NO THRESHOLD
61.00
client_sv2_open_channel_serialize📈 view plot
⚠️ NO THRESHOLD
13,940.00📈 view plot
⚠️ NO THRESHOLD
5,064.00📈 view plot
⚠️ NO THRESHOLD
7,330.00📈 view plot
⚠️ NO THRESHOLD
34.00📈 view plot
⚠️ NO THRESHOLD
184.00
client_sv2_open_channel_serialize_deserialize📈 view plot
⚠️ NO THRESHOLD
22,575.00📈 view plot
⚠️ NO THRESHOLD
8,027.00📈 view plot
⚠️ NO THRESHOLD
11,675.00📈 view plot
⚠️ NO THRESHOLD
80.00📈 view plot
⚠️ NO THRESHOLD
300.00
client_sv2_setup_connection📈 view plot
⚠️ NO THRESHOLD
4,669.00📈 view plot
⚠️ NO THRESHOLD
1,502.00📈 view plot
⚠️ NO THRESHOLD
2,279.00📈 view plot
⚠️ NO THRESHOLD
9.00📈 view plot
⚠️ NO THRESHOLD
67.00
client_sv2_setup_connection_serialize📈 view plot
⚠️ NO THRESHOLD
16,098.00📈 view plot
⚠️ NO THRESHOLD
5,963.00📈 view plot
⚠️ NO THRESHOLD
8,668.00📈 view plot
⚠️ NO THRESHOLD
37.00📈 view plot
⚠️ NO THRESHOLD
207.00
client_sv2_setup_connection_serialize_deserialize📈 view plot
⚠️ NO THRESHOLD
35,454.00📈 view plot
⚠️ NO THRESHOLD
14,855.00📈 view plot
⚠️ NO THRESHOLD
21,824.00📈 view plot
⚠️ NO THRESHOLD
94.00📈 view plot
⚠️ NO THRESHOLD
376.00
🐰 View full continuous benchmarking report in Bencher

protocols/DEPENDANCIES.md Outdated Show resolved Hide resolved
@jbesraa
Copy link
Contributor

jbesraa commented Oct 28, 2024

Thanks for working on this.
Why is this good? in which scenarios we can use it?

@Georges760
Copy link
Author

Thanks for working on this. Why is this good? in which scenarios we can use it?

It draws a dependencies graph with features propagation, for better understanding of the relations between crates : https://github.com/GPTechinno/stratum/blob/dep-graph/protocols/DEPENDENCIES.md

@Shourya742
Copy link
Contributor

@rrybarczyk, in this context, the dependency curve considers the individual flavors of our crates. For someone new to our protocol crates, they might appear as separate entities. For example, the binary_sv2 crate has two variations: one with serde support and one without. Encapsulating both the serde and non-serde versions within a single binary_sv2 block could make it less confusing, instead of representing them as separate crates. Let me know your thoughts on this. Based on your feedback, we can ask @Georges760 to make the necessary adjustments, and then we’ll be ready to proceed with this PR.

@Fi3
Copy link
Collaborator

Fi3 commented Nov 18, 2024

@rrybarczyk, in this context, the dependency curve considers the individual flavors of our crates. For someone new to our protocol crates, they might appear as separate entities. For example, the binary_sv2 crate has two variations: one with serde support and one without. Encapsulating both the serde and non-serde versions within a single binary_sv2 block could make it less confusing, instead of representing them as separate crates. Let me know your thoughts on this. Based on your feedback, we can ask @Georges760 to make the necessary adjustments, and then we’ll be ready to proceed with this PR.

nack since we are going to drop the one with serde eventually

@Shourya742
Copy link
Contributor

@rrybarczyk, in this context, the dependency curve considers the individual flavors of our crates. For someone new to our protocol crates, they might appear as separate entities. For example, the binary_sv2 crate has two variations: one with serde support and one without. Encapsulating both the serde and non-serde versions within a single binary_sv2 block could make it less confusing, instead of representing them as separate crates. Let me know your thoughts on this. Based on your feedback, we can ask @Georges760 to make the necessary adjustments, and then we’ll be ready to proceed with this PR.

nack since we are going to drop the one with serde eventually

Does it make sense to have this dependency graph after we complete the refactor?

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

Successfully merging this pull request may close these issues.

5 participants