diff --git a/bitcoin-core-sv2/Cargo.toml b/bitcoin-core-sv2/Cargo.toml index d5d4a8bf3..040ef5508 100644 --- a/bitcoin-core-sv2/Cargo.toml +++ b/bitcoin-core-sv2/Cargo.toml @@ -21,6 +21,7 @@ async-channel = "1.5.1" # fetching from github enables synchronizing development workflows across sv2-apps and stratum repos # it MUST be changed before bitcoin-core-sv2 is published to crates.io # with the proper version of stratum-core being fetched from crates.io as well -stratum-core = { git = "https://github.com/stratum-mining/stratum", branch = "main" } +stratum-core = { git = "https://github.com/stratum-mining/stratum", branch = "fix/issue-2092-share-accounting" } bitcoin-capnp-types = "0.1.0" + diff --git a/integration-tests/Cargo.lock b/integration-tests/Cargo.lock index 7bf8a977c..09c3f9df8 100644 --- a/integration-tests/Cargo.lock +++ b/integration-tests/Cargo.lock @@ -292,7 +292,6 @@ dependencies = [ [[package]] name = "binary_sv2" version = "5.0.1" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "buffer_sv2 3.0.1", "derive_codec_sv2 1.1.2", @@ -462,7 +461,6 @@ dependencies = [ [[package]] name = "buffer_sv2" version = "3.0.1" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "aes-gcm", ] @@ -589,7 +587,6 @@ dependencies = [ [[package]] name = "channels_sv2" version = "4.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2 5.0.1", "bitcoin", @@ -666,7 +663,6 @@ dependencies = [ [[package]] name = "codec_sv2" version = "5.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2 5.0.1", "buffer_sv2 3.0.1", @@ -693,7 +689,6 @@ dependencies = [ [[package]] name = "common_messages_sv2" version = "7.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2 5.0.1", ] @@ -927,7 +922,6 @@ dependencies = [ [[package]] name = "derive_codec_sv2" version = "1.1.2" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" [[package]] name = "digest" @@ -1034,7 +1028,6 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "extensions_sv2" version = "0.1.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2 5.0.1", ] @@ -1101,7 +1094,6 @@ dependencies = [ [[package]] name = "framing_sv2" version = "6.0.1" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2 5.0.1", "buffer_sv2 3.0.1", @@ -1269,7 +1261,6 @@ dependencies = [ [[package]] name = "handlers_sv2" version = "0.2.2" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2 5.0.1", "common_messages_sv2 7.0.0", @@ -1704,7 +1695,6 @@ dependencies = [ [[package]] name = "job_declaration_sv2" version = "7.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2 5.0.1", ] @@ -1864,7 +1854,6 @@ dependencies = [ [[package]] name = "mining_sv2" version = "8.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2 5.0.1", ] @@ -1957,7 +1946,6 @@ dependencies = [ [[package]] name = "noise_sv2" version = "1.4.2" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "aes-gcm", "chacha20poly1305", @@ -2095,7 +2083,6 @@ dependencies = [ [[package]] name = "parsers_sv2" version = "0.2.2" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2 5.0.1", "common_messages_sv2 7.0.0", @@ -2820,7 +2807,6 @@ dependencies = [ [[package]] name = "stratum-core" version = "0.2.1" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2 5.0.1", "bitcoin", @@ -2843,7 +2829,6 @@ dependencies = [ [[package]] name = "stratum_translation" version = "0.1.3" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2 5.0.1", "bitcoin", @@ -2868,7 +2853,6 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "sv1_api" version = "3.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2 5.0.1", "bitcoin_hashes 0.3.2", @@ -2956,7 +2940,6 @@ dependencies = [ [[package]] name = "template_distribution_sv2" version = "5.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2 5.0.1", ] diff --git a/integration-tests/Cargo.toml b/integration-tests/Cargo.toml index 095580d06..d22109f61 100644 --- a/integration-tests/Cargo.toml +++ b/integration-tests/Cargo.toml @@ -29,3 +29,4 @@ hex = "0.4.3" [lib] path = "lib/mod.rs" + diff --git a/miner-apps/Cargo.lock b/miner-apps/Cargo.lock index 2e64eba04..b40318f71 100644 --- a/miner-apps/Cargo.lock +++ b/miner-apps/Cargo.lock @@ -273,7 +273,6 @@ checksum = "32637268377fc7b10a8c6d51de3e7fba1ce5dd371a96e342b34e6078db558e7f" [[package]] name = "binary_sv2" version = "5.0.1" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "buffer_sv2", "derive_codec_sv2", @@ -428,7 +427,6 @@ dependencies = [ [[package]] name = "buffer_sv2" version = "3.0.1" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "aes-gcm", ] @@ -540,7 +538,6 @@ dependencies = [ [[package]] name = "channels_sv2" version = "4.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2", "bitcoin", @@ -610,7 +607,6 @@ checksum = "3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831" [[package]] name = "codec_sv2" version = "5.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2", "buffer_sv2", @@ -638,7 +634,6 @@ dependencies = [ [[package]] name = "common_messages_sv2" version = "7.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2", ] @@ -806,7 +801,6 @@ dependencies = [ [[package]] name = "derive_codec_sv2" version = "1.1.2" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" [[package]] name = "digest" @@ -935,7 +929,6 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "extensions_sv2" version = "0.1.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2", ] @@ -996,7 +989,6 @@ dependencies = [ [[package]] name = "framing_sv2" version = "6.0.1" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2", "buffer_sv2", @@ -1131,7 +1123,6 @@ dependencies = [ [[package]] name = "handlers_sv2" version = "0.2.2" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2", "common_messages_sv2", @@ -1535,7 +1526,6 @@ dependencies = [ [[package]] name = "job_declaration_sv2" version = "7.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2", ] @@ -1656,7 +1646,6 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "mining_sv2" version = "8.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2", ] @@ -1696,7 +1685,6 @@ dependencies = [ [[package]] name = "noise_sv2" version = "1.4.2" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "aes-gcm", "chacha20poly1305", @@ -1820,7 +1808,6 @@ dependencies = [ [[package]] name = "parsers_sv2" version = "0.2.2" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2", "common_messages_sv2", @@ -2462,7 +2449,6 @@ dependencies = [ [[package]] name = "stratum-core" version = "0.2.1" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2", "bitcoin", @@ -2485,7 +2471,6 @@ dependencies = [ [[package]] name = "stratum_translation" version = "0.1.3" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2", "bitcoin", @@ -2510,7 +2495,6 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "sv1_api" version = "3.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2", "bitcoin_hashes 0.3.2", @@ -2557,7 +2541,6 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "template_distribution_sv2" version = "5.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2", ] diff --git a/miner-apps/Cargo.toml b/miner-apps/Cargo.toml index 431360926..56f218ae2 100644 --- a/miner-apps/Cargo.toml +++ b/miner-apps/Cargo.toml @@ -1,19 +1,14 @@ -[workspace] resolver="2" - members = [ "jd-client", "translator", ] - exclude = [ "mining-device" ] - [profile.dev] # Required by super_safe_lock opt-level = 1 - [profile.test] # Required by super_safe_lock -opt-level = 1 \ No newline at end of file +opt-level = 1 diff --git a/miner-apps/jd-client/src/lib/channel_manager/downstream_message_handler.rs b/miner-apps/jd-client/src/lib/channel_manager/downstream_message_handler.rs index d108d0dda..199ae89d1 100644 --- a/miner-apps/jd-client/src/lib/channel_manager/downstream_message_handler.rs +++ b/miner-apps/jd-client/src/lib/channel_manager/downstream_message_handler.rs @@ -989,7 +989,7 @@ impl HandleMiningMessagesFromClientAsync for ChannelManager { channel_id, last_sequence_number: share_accounting.get_last_share_sequence_number(), new_submits_accepted_count: share_accounting.get_last_batch_accepted(), - new_shares_sum: share_accounting.get_last_batch_work_sum() as u64, + new_shares_sum: share_accounting.get_last_batch_work_sum(), }; info!("SubmitSharesStandard on downstream channel: {} ✅", success); messages.push((downstream.downstream_id, Mining::SubmitSharesSuccess(success)).into()); @@ -1023,7 +1023,7 @@ impl HandleMiningMessagesFromClientAsync for ChannelManager { channel_id, last_sequence_number: share_accounting.get_last_share_sequence_number(), new_submits_accepted_count: share_accounting.get_last_batch_accepted(), - new_shares_sum: share_accounting.get_last_batch_work_sum() as u64, + new_shares_sum: share_accounting.get_last_batch_work_sum(), }; messages.push(( downstream.downstream_id, @@ -1240,7 +1240,7 @@ impl HandleMiningMessagesFromClientAsync for ChannelManager { channel_id, last_sequence_number: share_accounting.get_last_share_sequence_number(), new_submits_accepted_count: share_accounting.get_last_batch_accepted(), - new_shares_sum: share_accounting.get_last_batch_work_sum() as u64, + new_shares_sum: share_accounting.get_last_batch_work_sum(), }; info!("SubmitSharesExtended on downstream channel: {} ✅", success); messages.push((downstream.downstream_id, Mining::SubmitSharesSuccess(success)).into()); @@ -1272,7 +1272,7 @@ impl HandleMiningMessagesFromClientAsync for ChannelManager { channel_id, last_sequence_number: share_accounting.get_last_share_sequence_number(), new_submits_accepted_count: share_accounting.get_last_batch_accepted(), - new_shares_sum: share_accounting.get_last_batch_work_sum() as u64, + new_shares_sum: share_accounting.get_last_batch_work_sum(), }; is_downstream_share_valid = true; messages.push(( diff --git a/miner-apps/jd-client/src/lib/channel_manager/upstream_message_handler.rs b/miner-apps/jd-client/src/lib/channel_manager/upstream_message_handler.rs index 7c2932a4c..2a9b9d403 100644 --- a/miner-apps/jd-client/src/lib/channel_manager/upstream_message_handler.rs +++ b/miner-apps/jd-client/src/lib/channel_manager/upstream_message_handler.rs @@ -498,10 +498,8 @@ impl HandleMiningMessagesFromServerAsync for ChannelManager { self.channel_manager_data.super_safe_lock(|data| { if let Some(upstream_channel) = data.upstream_channel.as_mut() { - upstream_channel.on_share_acknowledgement( - msg.new_submits_accepted_count, - msg.new_shares_sum as f64, - ); + upstream_channel + .on_share_acknowledgement(msg.new_submits_accepted_count, msg.new_shares_sum); } }); diff --git a/miner-apps/mining-device/Cargo.toml b/miner-apps/mining-device/Cargo.toml index 11ddc452b..3d0468d85 100644 --- a/miner-apps/mining-device/Cargo.toml +++ b/miner-apps/mining-device/Cargo.toml @@ -10,15 +10,10 @@ homepage = "https://stratumprotocol.org" repository = "https://github.com/stratum-mining/stratum" license = "MIT OR Apache-2.0" keywords = ["stratum", "mining", "bitcoin", "protocol"] - - # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - [lib] name = "mining_device" path = "src/lib/mod.rs" - - [dependencies] stratum-common = { git = "https://github.com/stratum-mining/stratum", rev = "v1.5.0", features = ["with_network_helpers"] } async-channel = "1.5.1" @@ -31,21 +26,17 @@ sha2 = { version = "0.10.6", features = ["compress", "asm"] } tokio = "1.44.1" primitive-types = "0.13.1" num-format = "0.4" - [dev-dependencies] # Criterion 0.5 without default features; combined with a dev pin of `half = 2.3.1` to stay Rust 1.75-compatible. criterion = { version = "0.5", default-features = false, features = ["stable"] } half = "=2.3.1" num_cpus = "1" - [[bench]] name = "hasher_bench" harness = false - [[bench]] name = "microbatch_bench" harness = false - [[bench]] name = "scaling_bench" harness = false diff --git a/miner-apps/translator/src/lib/sv2/channel_manager/channel_manager.rs b/miner-apps/translator/src/lib/sv2/channel_manager/channel_manager.rs index a42b95d8c..205d9b852 100644 --- a/miner-apps/translator/src/lib/sv2/channel_manager/channel_manager.rs +++ b/miner-apps/translator/src/lib/sv2/channel_manager/channel_manager.rs @@ -817,7 +817,7 @@ mod tests { request_id: 1, user_identity: "test_user".as_bytes().to_vec().try_into().unwrap(), nominal_hash_rate: 1000.0, - max_target: vec![0xFFu8; 32].try_into().unwrap(), + max_target: [0xFFu8; 32].into(), min_extranonce_size: 4, }; @@ -880,7 +880,7 @@ mod tests { let update_channel = UpdateChannel { channel_id: 1, nominal_hash_rate: 2000.0, - maximum_target: [0xFFu8; 32].try_into().unwrap(), + maximum_target: [0xFFu8; 32].into(), }; // Test that the message can be handled diff --git a/miner-apps/translator/src/lib/sv2/channel_manager/mining_message_handler.rs b/miner-apps/translator/src/lib/sv2/channel_manager/mining_message_handler.rs index 2b88bcb69..d2261e85b 100644 --- a/miner-apps/translator/src/lib/sv2/channel_manager/mining_message_handler.rs +++ b/miner-apps/translator/src/lib/sv2/channel_manager/mining_message_handler.rs @@ -402,7 +402,7 @@ impl HandleMiningMessagesFromServerAsync for ChannelManager { }; if let Some(mut ch) = self.extended_channels.get_mut(&key) { - ch.on_share_acknowledgement(m.new_submits_accepted_count, m.new_shares_sum as f64); + ch.on_share_acknowledgement(m.new_submits_accepted_count, m.new_shares_sum); } Ok(()) diff --git a/pool-apps/Cargo.lock b/pool-apps/Cargo.lock index e3b322016..5c8bce95d 100644 --- a/pool-apps/Cargo.lock +++ b/pool-apps/Cargo.lock @@ -273,7 +273,6 @@ checksum = "32637268377fc7b10a8c6d51de3e7fba1ce5dd371a96e342b34e6078db558e7f" [[package]] name = "binary_sv2" version = "5.0.1" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "buffer_sv2", "derive_codec_sv2", @@ -419,7 +418,6 @@ dependencies = [ [[package]] name = "buffer_sv2" version = "3.0.1" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "aes-gcm", ] @@ -531,7 +529,6 @@ dependencies = [ [[package]] name = "channels_sv2" version = "4.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2", "bitcoin", @@ -601,7 +598,6 @@ checksum = "3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831" [[package]] name = "codec_sv2" version = "5.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2", "buffer_sv2", @@ -629,7 +625,6 @@ dependencies = [ [[package]] name = "common_messages_sv2" version = "7.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2", ] @@ -783,7 +778,6 @@ dependencies = [ [[package]] name = "derive_codec_sv2" version = "1.1.2" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" [[package]] name = "digest" @@ -912,7 +906,6 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "extensions_sv2" version = "0.1.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2", ] @@ -973,7 +966,6 @@ dependencies = [ [[package]] name = "framing_sv2" version = "6.0.1" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2", "buffer_sv2", @@ -1108,7 +1100,6 @@ dependencies = [ [[package]] name = "handlers_sv2" version = "0.2.2" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2", "common_messages_sv2", @@ -1496,7 +1487,6 @@ checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" [[package]] name = "job_declaration_sv2" version = "7.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2", ] @@ -1617,7 +1607,6 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "mining_sv2" version = "8.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2", ] @@ -1657,7 +1646,6 @@ dependencies = [ [[package]] name = "noise_sv2" version = "1.4.2" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "aes-gcm", "chacha20poly1305", @@ -1781,7 +1769,6 @@ dependencies = [ [[package]] name = "parsers_sv2" version = "0.2.2" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2", "common_messages_sv2", @@ -2439,7 +2426,6 @@ dependencies = [ [[package]] name = "stratum-core" version = "0.2.1" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2", "bitcoin", @@ -2506,7 +2492,6 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "template_distribution_sv2" version = "5.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#78585d7270c4f694bcbfa2b8dfbc4ee999fd3a66" dependencies = [ "binary_sv2", ] diff --git a/pool-apps/Cargo.toml b/pool-apps/Cargo.toml index 5956bdb12..bb2e8a6b8 100644 --- a/pool-apps/Cargo.toml +++ b/pool-apps/Cargo.toml @@ -1,18 +1,13 @@ -[workspace] resolver="2" - members = [ "pool" ] - exclude = [ "jd-server" ] - [profile.dev] # Required by super_safe_lock opt-level = 1 - [profile.test] # Required by super_safe_lock -opt-level = 1 \ No newline at end of file +opt-level = 1 diff --git a/pool-apps/jd-server/Cargo.toml b/pool-apps/jd-server/Cargo.toml index b4cd7961a..753349a87 100644 --- a/pool-apps/jd-server/Cargo.toml +++ b/pool-apps/jd-server/Cargo.toml @@ -10,12 +10,9 @@ homepage = "https://stratumprotocol.org" repository = "https://github.com/stratum-mining/stratum" license = "MIT OR Apache-2.0" keywords = ["stratum", "mining", "bitcoin", "protocol"] - - [lib] name = "jd_server" path = "src/lib/mod.rs" - [dependencies] stratum-common = { git = "https://github.com/stratum-mining/stratum", rev = "v1.5.0", features = ["with_network_helpers"] } async-channel = "1.5.1" diff --git a/pool-apps/pool/src/lib/channel_manager/mining_message_handler.rs b/pool-apps/pool/src/lib/channel_manager/mining_message_handler.rs index 643716fbc..1750d6939 100644 --- a/pool-apps/pool/src/lib/channel_manager/mining_message_handler.rs +++ b/pool-apps/pool/src/lib/channel_manager/mining_message_handler.rs @@ -564,7 +564,7 @@ impl HandleMiningMessagesFromClientAsync for ChannelManager { channel_id, last_sequence_number: share_accounting.get_last_share_sequence_number(), new_submits_accepted_count: share_accounting.get_last_batch_accepted(), - new_shares_sum: share_accounting.get_last_batch_work_sum() as u64, + new_shares_sum: share_accounting.get_last_batch_work_sum(), }; info!("SubmitSharesStandard: {} ✅", success); messages.push((downstream_id, Mining::SubmitSharesSuccess(success)).into()); @@ -597,7 +597,7 @@ impl HandleMiningMessagesFromClientAsync for ChannelManager { channel_id, last_sequence_number: share_accounting.get_last_share_sequence_number(), new_submits_accepted_count: share_accounting.get_last_batch_accepted(), - new_shares_sum: share_accounting.get_last_batch_work_sum() as u64, + new_shares_sum: share_accounting.get_last_batch_work_sum(), }; messages.push((downstream_id, Mining::SubmitSharesSuccess(success)).into()); } @@ -746,7 +746,7 @@ impl HandleMiningMessagesFromClientAsync for ChannelManager { channel_id, last_sequence_number: share_accounting.get_last_share_sequence_number(), new_submits_accepted_count: share_accounting.get_last_batch_accepted(), - new_shares_sum: share_accounting.get_last_batch_work_sum() as u64, + new_shares_sum: share_accounting.get_last_batch_work_sum(), }; info!("SubmitSharesExtended: {} ✅", success); messages.push((downstream_id, Mining::SubmitSharesSuccess(success)).into()); @@ -778,7 +778,7 @@ impl HandleMiningMessagesFromClientAsync for ChannelManager { channel_id, last_sequence_number: share_accounting.get_last_share_sequence_number(), new_submits_accepted_count: share_accounting.get_last_batch_accepted(), - new_shares_sum: share_accounting.get_last_batch_work_sum() as u64, + new_shares_sum: share_accounting.get_last_batch_work_sum(), }; messages.push((downstream_id, Mining::SubmitSharesSuccess(success)).into()); } diff --git a/stratum-apps/Cargo.toml b/stratum-apps/Cargo.toml index 5850c4b9e..e7cf61447 100644 --- a/stratum-apps/Cargo.toml +++ b/stratum-apps/Cargo.toml @@ -16,7 +16,7 @@ keywords = ["stratum", "mining", "bitcoin", "protocol", "sv2"] # fetching from github enables synchronizing development workflows across sv2-apps and stratum repos # it MUST be changed before stratum-apps is published to crates.io # with the proper version of stratum-core being fetched from crates.io as well -stratum-core = { git = "https://github.com/stratum-mining/stratum", branch = "main", optional = true } +stratum-core = { git = "https://github.com/stratum-mining/stratum", branch = "fix/issue-2092-share-accounting", optional = true } # External dependencies needed by the modules # Network helpers dependencies @@ -87,3 +87,5 @@ hyper = "1.1.0" [package.metadata.docs.rs] features = ["pool", "jd_client", "jd_server", "translator", "sv1", "rpc"] + + diff --git a/stratum-apps/src/monitoring/client.rs b/stratum-apps/src/monitoring/client.rs index 37b20d2db..3de02bc63 100644 --- a/stratum-apps/src/monitoring/client.rs +++ b/stratum-apps/src/monitoring/client.rs @@ -19,11 +19,11 @@ pub struct ExtendedChannelInfo { pub rollable_extranonce_size: u16, pub expected_shares_per_minute: f32, pub shares_accepted: u32, - pub share_work_sum: f64, + pub share_work_sum: u64, pub last_share_sequence_number: u32, - pub best_diff: f64, + pub best_diff: u64, pub last_batch_accepted: u32, - pub last_batch_work_sum: f64, + pub last_batch_work_sum: u64, pub share_batch_size: usize, pub blocks_found: u32, } @@ -39,11 +39,11 @@ pub struct StandardChannelInfo { pub extranonce_prefix_hex: String, pub expected_shares_per_minute: f32, pub shares_accepted: u32, - pub share_work_sum: f64, + pub share_work_sum: u64, pub last_share_sequence_number: u32, - pub best_diff: f64, + pub best_diff: u64, pub last_batch_accepted: u32, - pub last_batch_work_sum: f64, + pub last_batch_work_sum: u64, pub share_batch_size: usize, pub blocks_found: u32, } diff --git a/stratum-apps/src/monitoring/server.rs b/stratum-apps/src/monitoring/server.rs index 721cebf3c..87c275ec8 100644 --- a/stratum-apps/src/monitoring/server.rs +++ b/stratum-apps/src/monitoring/server.rs @@ -19,9 +19,9 @@ pub struct ServerExtendedChannelInfo { pub rollable_extranonce_size: u16, pub version_rolling: bool, pub shares_accepted: u32, - pub share_work_sum: f64, + pub share_work_sum: u64, pub shares_submitted: u32, - pub best_diff: f64, + pub best_diff: u64, pub blocks_found: u32, } @@ -35,9 +35,9 @@ pub struct ServerStandardChannelInfo { pub target_hex: String, pub extranonce_prefix_hex: String, pub shares_accepted: u32, - pub share_work_sum: f64, + pub share_work_sum: u64, pub shares_submitted: u32, - pub best_diff: f64, + pub best_diff: u64, pub blocks_found: u32, }