Skip to content

Conversation

@Georges760
Copy link
Contributor

to better undersatnding of the current protocol/v2/dependancies

@Georges760 Georges760 marked this pull request as ready for review October 25, 2024 19:37
@codecov
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.

@github-actions
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

@github-actions
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

@github-actions
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

@github-actions
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

@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
Contributor 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
Collaborator

@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
Collaborator

@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?

@GitGab19
Copy link
Member

GitGab19 commented Feb 3, 2025

Moving this PR to draft status, as it makes sense to have a final graph after protocols crates refactoring.

@GitGab19 GitGab19 marked this pull request as draft February 3, 2025 10:57
@Shourya742
Copy link
Collaborator

@Georges760 Any plans to update this PR with new repo structure?

@Georges760
Copy link
Contributor Author

Georges760 commented Nov 5, 2025

@Georges760 Any plans to update this PR with new repo structure?

I would have to study the changes since my first shot. But why not !

Is the architecture stabilized now ?

@Shourya742
Copy link
Collaborator

@Georges760 Any plans to update this PR with new repo structure?

I would have to study the changes since my first shot. But why not !

Is the architecture stabilized now ?

No drastic changes in future comes to my mind, atleast regarding the dependencies.

@Georges760
Copy link
Contributor Author

I splitted it into 3 levels for clarity.

Wonder if removing the external crates wil make it even cleaner without removing usefull info...

@Georges760 Georges760 marked this pull request as ready for review November 6, 2025 10:15
@Georges760 Georges760 requested a review from plebhash November 6, 2025 10:15
@Shourya742
Copy link
Collaborator

I splitted it into 3 levels for clarity.

Wonder if removing the external crates wil make it even cleaner without removing usefull info...

Levels make sense. Regarding the external crates, that’s fine, since people might be interested in understanding how our protocol crates depend on external ones. One suggestion: maybe we could represent dev dependencies using a different edge type. Everything else looks great!

@Georges760
Copy link
Contributor Author

I splitted it into 3 levels for clarity.
Wonder if removing the external crates wil make it even cleaner without removing usefull info...

Levels make sense. Regarding the external crates, that’s fine, since people might be interested in understanding how our protocol crates depend on external ones. One suggestion: maybe we could represent dev dependencies using a different edge type. Everything else looks great!

currently dev-deps are not represented at all, i fear it will bloat the graphs without real value added.

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.

6 participants