From cdc5b612abd252ede333eea5731e3aecc25841ab Mon Sep 17 00:00:00 2001 From: nkatha23 Date: Thu, 3 Sep 2026 13:18:26 +0300 Subject: [PATCH 1/5] feat(sv2): add braidpool-common and braidpool-template-provider crates MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit braidpool-common: introduces BraidpoolTemplate — a shared type boundary between the Braidpool node and sv2-apps. Carries the coinbase_tx (already built by template_creator with OP_RETURN commitment), merkle_path, prev_hash, nbits, version, height, and template_id. braidpool-template-provider: sv2_template_consumer receives BraidpoolTemplate via mpsc channel and converts to SV2 TemplateDistribution messages (NewTemplate + SetNewPrevHash). Uses braidpool_mode=true to include all coinbase outputs (reward + segwit + OP_RETURN) as required by Braidpool's coinbase structure. Key design decisions: - BraidpoolTemplate replaces direct node::ipc imports, keeping sv2-apps independent of node internals - height field explicitly required from ipc_template.components since BlockTemplate.height = Height::ZERO in ipc_template_consumer - RequestTransactionData returns error — Braidpool does not use TDP --- Cargo.lock | 3373 ++--------------- Cargo.toml | 4 + pool-apps/braidpool-common/Cargo.toml | 8 + pool-apps/braidpool-common/src/lib.rs | 1 + pool-apps/braidpool-common/src/template.rs | 33 + .../braidpool-template-provider/Cargo.toml | 15 + .../braidpool-template-provider/src/error.rs | 40 + .../braidpool-template-provider/src/lib.rs | 147 + .../src/sv2_messages.rs | 126 + 9 files changed, 741 insertions(+), 3006 deletions(-) create mode 100644 pool-apps/braidpool-common/Cargo.toml create mode 100644 pool-apps/braidpool-common/src/lib.rs create mode 100644 pool-apps/braidpool-common/src/template.rs create mode 100644 pool-apps/braidpool-template-provider/Cargo.toml create mode 100644 pool-apps/braidpool-template-provider/src/error.rs create mode 100644 pool-apps/braidpool-template-provider/src/lib.rs create mode 100644 pool-apps/braidpool-template-provider/src/sv2_messages.rs diff --git a/Cargo.lock b/Cargo.lock index b1bb47d38..cea7f03bb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -26,7 +26,21 @@ checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", "cipher", - "cpufeatures 0.2.17", + "cpufeatures", +] + +[[package]] +name = "aes-gcm" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "ghash", + "subtle", ] [[package]] @@ -56,21 +70,6 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "anes" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" - [[package]] name = "anstream" version = "1.0.0" @@ -80,817 +79,93 @@ dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" - -[[package]] -name = "anstyle-parse" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" -dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" -dependencies = [ - "anstyle", - "once_cell_polyfill", - "windows-sys 0.61.2", -] - -[[package]] -name = "anyhow" -version = "1.0.102" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" - -[[package]] -name = "arbitrary" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" -dependencies = [ - "derive_arbitrary", -] - -[[package]] -name = "arc-swap" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a07d1f37ff60921c83bdfc7407723bdefe89b44b98a9b772f225c8f9d67141a6" -dependencies = [ - "rustversion", -] - -[[package]] -name = "arraydeque" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d902e3d592a523def97af8f317b08ce16b7ab854c1985a0c671e6f15cebc236" - -[[package]] -name = "arrayvec" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" - -[[package]] -name = "ascii" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16" - -[[package]] -name = "asic-rs" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc00482ee6d0a0c0865e509e1b01d560d203683e3c273878462c7ac6433dc900" -dependencies = [ - "anyhow", - "asic-rs-core", - "asic-rs-firmwares-antminer", - "asic-rs-firmwares-auradine", - "asic-rs-firmwares-avalonminer", - "asic-rs-firmwares-bitaxe", - "asic-rs-firmwares-braiins", - "asic-rs-firmwares-epic", - "asic-rs-firmwares-futurebit", - "asic-rs-firmwares-luxminer", - "asic-rs-firmwares-marathon", - "asic-rs-firmwares-nerdaxe", - "asic-rs-firmwares-proto", - "asic-rs-firmwares-sealminer", - "asic-rs-firmwares-vnish", - "asic-rs-firmwares-whatsminer", - "asic-rs-makes-antminer", - "asic-rs-makes-auradine", - "asic-rs-makes-avalon", - "asic-rs-makes-bitaxe", - "asic-rs-makes-braiins", - "asic-rs-makes-epic", - "asic-rs-makes-futurebit", - "asic-rs-makes-marathon", - "asic-rs-makes-nerdaxe", - "asic-rs-makes-proto", - "asic-rs-makes-sealminer", - "asic-rs-makes-whatsminer", - "async-stream", - "futures", - "ipnet", - "measurements", - "pyo3-build-config", - "rand 0.10.1", - "rlimit", - "serde", - "serde_json", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "asic-rs-core" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2c8bab71c78559b2a274f346b93c432a86a765fdb1b89d67d840293a07d1da6" -dependencies = [ - "anyhow", - "async-trait", - "futures", - "macaddr", - "measurements", - "reqwest", - "secrecy", - "semver", - "serde", - "serde_json", - "strum", - "tokio", - "tracing", - "url", -] - -[[package]] -name = "asic-rs-firmwares-antminer" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c3da4344fd4c0d5a46a74b59a3b1434b67b97721d69c4455e8b577417af428" -dependencies = [ - "anyhow", - "asic-rs-core", - "asic-rs-makes-antminer", - "async-trait", - "chrono", - "crc32fast", - "diqwest", - "macaddr", - "measurements", - "once_cell", - "reqwest", - "semver", - "serde_json", - "tokio", -] - -[[package]] -name = "asic-rs-firmwares-auradine" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "714e4c1089c8c045f522f2a3dc158cb9d00af82e69fdec7c5e13f88a38671799" -dependencies = [ - "anyhow", - "asic-rs-core", - "asic-rs-makes-auradine", - "async-trait", - "macaddr", - "measurements", - "once_cell", - "reqwest", - "semver", - "serde_json", - "tokio", -] - -[[package]] -name = "asic-rs-firmwares-avalonminer" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "615ddfde0b49afcd65eaf9ff2d786cd28e8ac99629c9077a1e17801f40f3e2d9" -dependencies = [ - "anyhow", - "asic-rs-core", - "asic-rs-makes-avalon", - "async-trait", - "macaddr", - "measurements", - "regex", - "semver", - "serde_json", - "tokio", -] - -[[package]] -name = "asic-rs-firmwares-bitaxe" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c11a41114e4b1dabbacf6e9cdba40e3f1090ab0bfe57acc27ffdebe4362c9322" -dependencies = [ - "anyhow", - "asic-rs-core", - "asic-rs-makes-bitaxe", - "async-trait", - "macaddr", - "measurements", - "once_cell", - "reqwest", - "semver", - "serde_json", - "tokio", -] - -[[package]] -name = "asic-rs-firmwares-braiins" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f66adaab2657790181a9ca5bab133499d7876ffe862605cb002371313206f1c9" -dependencies = [ - "anyhow", - "asic-rs-core", - "asic-rs-makes-antminer", - "asic-rs-makes-braiins", - "async-trait", - "chrono", - "macaddr", - "measurements", - "once_cell", - "reqwest", - "semver", - "serde_json", - "tokio", -] - -[[package]] -name = "asic-rs-firmwares-epic" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1658b2f7b358af09f48f8e8711cfea77f0295d5bb20b09a49f5e40fc8d2c7bf2" -dependencies = [ - "anyhow", - "asic-rs-core", - "asic-rs-makes-antminer", - "asic-rs-makes-epic", - "asic-rs-makes-whatsminer", - "async-trait", - "macaddr", - "measurements", - "once_cell", - "reqwest", - "semver", - "serde_json", - "sha2 0.10.9", - "tokio", - "tracing", -] - -[[package]] -name = "asic-rs-firmwares-futurebit" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b8cf8eadf6dcf1a198a60682c586fecd279a5d8e98e62917d9bcb6d96dd4107" -dependencies = [ - "anyhow", - "asic-rs-core", - "asic-rs-makes-futurebit", - "async-trait", - "macaddr", - "measurements", - "once_cell", - "reqwest", - "semver", - "serde_json", - "tokio", -] - -[[package]] -name = "asic-rs-firmwares-luxminer" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fde4154b7467ca0224594aa53ad6ff41f1e7d2526604684c492c58d6ecb4157" -dependencies = [ - "anyhow", - "asic-rs-core", - "asic-rs-makes-antminer", - "async-trait", - "macaddr", - "measurements", - "semver", - "serde_json", - "tokio", -] - -[[package]] -name = "asic-rs-firmwares-marathon" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49611f22ce457dc6ad98a3b5307fd4167113520df1c4fde8e935ea2293a61c68" -dependencies = [ - "anyhow", - "asic-rs-core", - "asic-rs-makes-antminer", - "asic-rs-makes-marathon", - "async-trait", - "diqwest", - "macaddr", - "measurements", - "once_cell", - "reqwest", - "semver", - "serde_json", -] - -[[package]] -name = "asic-rs-firmwares-nerdaxe" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2a33d2d51beee25bb829a018f78c2d95b1aed5fd669ba83b33e2ca7fcb51096" -dependencies = [ - "anyhow", - "asic-rs-core", - "asic-rs-makes-nerdaxe", - "async-trait", - "macaddr", - "measurements", - "once_cell", - "reqwest", - "semver", - "serde_json", - "tokio", -] - -[[package]] -name = "asic-rs-firmwares-proto" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87d4718b79c5456bd718a83febc5d3e47147db7afa9183a5d6969ab288e7de43" -dependencies = [ - "anyhow", - "asic-rs-core", - "asic-rs-makes-proto", - "async-trait", - "macaddr", - "measurements", - "once_cell", - "reqwest", - "semver", - "serde_json", - "tokio", - "tracing", -] - -[[package]] -name = "asic-rs-firmwares-sealminer" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb7767f55bbe8c1488eba389c32e49a1cf55c5c7759e01f1ffa77818017fbf2f" -dependencies = [ - "anyhow", - "asic-rs-core", - "asic-rs-makes-sealminer", - "async-trait", - "macaddr", - "measurements", - "once_cell", - "reqwest", - "semver", - "serde_json", - "tokio", -] - -[[package]] -name = "asic-rs-firmwares-vnish" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ee24365b23a918effa41215dfbb5d48e9594ec248035d50ef7eaa1309ff2fa" -dependencies = [ - "anyhow", - "asic-rs-core", - "asic-rs-makes-antminer", - "async-trait", - "macaddr", - "measurements", - "once_cell", - "reqwest", - "semver", - "serde_json", - "tokio", -] - -[[package]] -name = "asic-rs-firmwares-whatsminer" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec8e7f78b593ddbbc700ad431877ba381598b1151c1ff6270dfc83db87184c6" -dependencies = [ - "aes", - "anyhow", - "asic-rs-core", - "asic-rs-makes-whatsminer", - "async-trait", - "base64 0.22.1", - "chrono", - "ecb", - "hex", - "macaddr", - "md5", - "md5crypt", - "measurements", - "semver", - "serde_json", - "sha2 0.10.9", - "tokio", - "tracing", -] - -[[package]] -name = "asic-rs-makes-antminer" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a29c91f048286e3e65c4b435d1598e0b30499df14bebf2238ce369474e2059e" -dependencies = [ - "asic-rs-core", - "serde", - "serde_json", - "strum", -] - -[[package]] -name = "asic-rs-makes-auradine" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86553407758b5c4081745ee465c13febfbcebd45233d809209d5ed492e5a890a" -dependencies = [ - "asic-rs-core", - "serde", - "serde_json", - "strum", -] - -[[package]] -name = "asic-rs-makes-avalon" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed457d4963c425039abe21987ff1d70e8d5f0e1fad8f0ae02a9ba77306c96f8e" -dependencies = [ - "asic-rs-core", - "serde", - "serde_json", - "strum", -] - -[[package]] -name = "asic-rs-makes-bitaxe" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9648961614946d9e5af27d7b54bdfcc5b18b85f26ff660af3ebef0e53f315496" -dependencies = [ - "asic-rs-core", - "serde", - "serde_json", - "strum", -] - -[[package]] -name = "asic-rs-makes-braiins" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f71017e0e12f2b8fddb023f0f2da25d09dcf46d49a4caf8117a6bd4c1a5ea4c" -dependencies = [ - "asic-rs-core", - "serde", - "serde_json", - "strum", -] - -[[package]] -name = "asic-rs-makes-epic" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0f9735452900e274a7eaaa9eb320daccf5c1680625295907171c9a8bf88986" -dependencies = [ - "asic-rs-core", - "serde", - "serde_json", - "strum", -] - -[[package]] -name = "asic-rs-makes-futurebit" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccedd3ba1806b43ef7841d66aa892aa6229be5752bf085cc7fa5f17647dd2e55" -dependencies = [ - "asic-rs-core", - "serde", - "serde_json", - "strum", -] - -[[package]] -name = "asic-rs-makes-marathon" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b00248ef815bc1f81d81fc0e1b2da9a57fd3413c543f2ed792e5b5783d99ddd7" -dependencies = [ - "asic-rs-core", - "serde", - "serde_json", - "strum", -] - -[[package]] -name = "asic-rs-makes-nerdaxe" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a53e275492085cbf0f6c7f6418caf598ff7c3e38cf204f2af77570e57974687b" -dependencies = [ - "asic-rs-core", - "serde", - "serde_json", - "strum", -] - -[[package]] -name = "asic-rs-makes-proto" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da6222dc810bf58744623e2420874bde2c3ce1d03c42389ed12f9cb3cc718ef" -dependencies = [ - "asic-rs-core", - "serde", - "serde_json", - "strum", -] - -[[package]] -name = "asic-rs-makes-sealminer" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ec972bdcafd3a52c86ffa39b60ae096488fc61aabb12af984b8b1964028112" -dependencies = [ - "asic-rs-core", - "serde", - "serde_json", - "strum", -] - -[[package]] -name = "asic-rs-makes-whatsminer" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f1c46481710544877ba044e0b5fa9ead3114051208918b1ef6a444d6590fca1" -dependencies = [ - "asic-rs-core", - "serde", - "serde_json", - "strum", -] - -[[package]] -name = "async-channel" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" -dependencies = [ - "concurrent-queue", - "event-listener 2.5.3", - "futures-core", -] - -[[package]] -name = "async-channel" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" -dependencies = [ - "concurrent-queue", - "event-listener-strategy", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-compression" -version = "0.4.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79b3f8a79cccc2898f31920fc69f304859b3bd567490f75ebf51ae1c792a9ac" -dependencies = [ - "compression-codecs", - "compression-core", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "async-executor" -version = "1.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c96bf972d85afc50bf5ab8fe2d54d1586b4e0b46c97c50a0c9e71e2f7bcd812a" -dependencies = [ - "async-task", - "concurrent-queue", - "fastrand 2.4.1", - "futures-lite 2.6.1", - "pin-project-lite", - "slab", -] - -[[package]] -name = "async-fs" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" -dependencies = [ - "async-lock 2.8.0", - "autocfg", - "blocking", - "futures-lite 1.13.0", -] - -[[package]] -name = "async-global-executor" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c" -dependencies = [ - "async-channel 2.5.0", - "async-executor", - "async-io 2.6.0", - "async-lock 3.4.2", - "blocking", - "futures-lite 2.6.1", - "once_cell", -] - -[[package]] -name = "async-io" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" -dependencies = [ - "async-lock 2.8.0", - "autocfg", - "cfg-if", - "concurrent-queue", - "futures-lite 1.13.0", - "log", - "parking", - "polling 2.8.0", - "rustix 0.37.28", - "slab", - "socket2 0.4.10", - "waker-fn", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", ] [[package]] -name = "async-io" -version = "2.6.0" +name = "anstyle" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" -dependencies = [ - "autocfg", - "cfg-if", - "concurrent-queue", - "futures-io", - "futures-lite 2.6.1", - "parking", - "polling 3.11.0", - "rustix 1.1.4", - "slab", - "windows-sys 0.61.2", -] +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" [[package]] -name = "async-lock" -version = "2.8.0" +name = "anstyle-parse" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" +checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" dependencies = [ - "event-listener 2.5.3", + "utf8parse", ] [[package]] -name = "async-lock" -version = "3.4.2" +name = "anstyle-query" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ - "event-listener 5.4.1", - "event-listener-strategy", - "pin-project-lite", + "windows-sys", ] [[package]] -name = "async-net" -version = "1.8.0" +name = "anstyle-wincon" +version = "3.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0434b1ed18ce1cf5769b8ac540e33f01fa9471058b5e89da9e06f3c882a8c12f" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ - "async-io 1.13.0", - "blocking", - "futures-lite 1.13.0", + "anstyle", + "once_cell_polyfill", + "windows-sys", ] [[package]] -name = "async-process" -version = "1.8.1" +name = "arbitrary" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" +checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" dependencies = [ - "async-io 1.13.0", - "async-lock 2.8.0", - "async-signal", - "blocking", - "cfg-if", - "event-listener 3.1.0", - "futures-lite 1.13.0", - "rustix 0.38.44", - "windows-sys 0.48.0", + "derive_arbitrary", ] [[package]] -name = "async-signal" -version = "0.2.14" +name = "arc-swap" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52b5aaafa020cf5053a01f2a60e8ff5dccf550f0f77ec54a4e47285ac2bab485" +checksum = "a07d1f37ff60921c83bdfc7407723bdefe89b44b98a9b772f225c8f9d67141a6" dependencies = [ - "async-io 2.6.0", - "async-lock 3.4.2", - "atomic-waker", - "cfg-if", - "futures-core", - "futures-io", - "rustix 1.1.4", - "signal-hook-registry", - "slab", - "windows-sys 0.61.2", + "rustversion", ] [[package]] -name = "async-std" -version = "1.13.2" +name = "arraydeque" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c8e079a4ab67ae52b7403632e4618815d6db36d2a010cfe41b02c1b1578f93b" -dependencies = [ - "async-channel 1.9.0", - "async-global-executor", - "async-io 2.6.0", - "async-lock 3.4.2", - "crossbeam-utils", - "futures-channel", - "futures-core", - "futures-io", - "futures-lite 2.6.1", - "gloo-timers", - "kv-log-macro", - "log", - "memchr", - "once_cell", - "pin-project-lite", - "pin-utils", - "slab", - "wasm-bindgen-futures", -] +checksum = "7d902e3d592a523def97af8f317b08ce16b7ab854c1985a0c671e6f15cebc236" [[package]] -name = "async-stream" -version = "0.3.6" +name = "arrayvec" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" -dependencies = [ - "async-stream-impl", - "futures-core", - "pin-project-lite", -] +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] -name = "async-stream-impl" -version = "0.3.6" +name = "ascii" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] +checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16" [[package]] -name = "async-task" -version = "4.7.1" +name = "async-channel" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" +checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" +dependencies = [ + "concurrent-queue", + "event-listener", + "futures-core", +] [[package]] name = "async-trait" @@ -915,33 +190,11 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" -[[package]] -name = "aws-lc-rs" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ec2f1fc3ec205783a5da9a7e6c1509cc69dedf09a1949e412c1e18469326d00" -dependencies = [ - "aws-lc-sys", - "zeroize", -] - -[[package]] -name = "aws-lc-sys" -version = "0.41.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a2f9779ce85b93ab6170dd940ad0169b5766ff848247aff13bb788b832fe3f4" -dependencies = [ - "cc", - "cmake", - "dunce", - "fs_extra", -] - [[package]] name = "axum" -version = "0.8.9" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31b698c5f9a010f6573133b09e0de5408834d0c82f8d7475a89fc1867a71cd90" +checksum = "8b52af3cb4058c895d37317bb27508dccc8e5f2d39454016b297bf4a400597b8" dependencies = [ "axum-core", "bytes", @@ -995,16 +248,10 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c8d66485a3a2ea485c1913c4572ce0256067a5377ac8c75c4960e1cda98605f" dependencies = [ - "bitcoin-internals", + "bitcoin-internals 0.3.0", "bitcoin_hashes 0.14.1", ] -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - [[package]] name = "base64" version = "0.21.7" @@ -1025,8 +272,8 @@ checksum = "32637268377fc7b10a8c6d51de3e7fba1ce5dd371a96e342b34e6078db558e7f" [[package]] name = "binary_sv2" -version = "8.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#4a716fa78aae1a69333da3b58932deeeda0e990d" +version = "7.0.0" +source = "git+https://github.com/stratum-mining/stratum?branch=main#ca3cc83af17c470caae2fa7ae39901957b27aee7" dependencies = [ "buffer_sv2", "derive_codec_sv2", @@ -1034,14 +281,13 @@ dependencies = [ [[package]] name = "bitcoin" -version = "0.32.9" +version = "0.32.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf93e61f2dbc3e3c41234ca26a65e2c0b0975c52e0f069ab9893ebbede584d3" +checksum = "1e499f9fc0407f50fe98af744ab44fa67d409f76b6772e1689ec8485eb0c0f66" dependencies = [ "base58ck", - "base64 0.21.7", "bech32", - "bitcoin-internals", + "bitcoin-internals 0.3.0", "bitcoin-io", "bitcoin-units", "bitcoin_hashes 0.14.1", @@ -1073,6 +319,12 @@ dependencies = [ "capnpc", ] +[[package]] +name = "bitcoin-internals" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9425c3bf7089c983facbae04de54513cce73b41c7f9ff8c845b54e7bc64ebbfb" + [[package]] name = "bitcoin-internals" version = "0.3.0" @@ -1090,19 +342,19 @@ checksum = "2dee39a0ee5b4095224a0cfc6bf4cc1baf0f9624b96b367e53b66d974e51d953" [[package]] name = "bitcoin-units" -version = "0.1.3" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "346568ebaab2918487cea76dd55dae13c27bb618cdb737c952e69eb2017c4118" +checksum = "5285c8bcaa25876d07f37e3d30c303f2609179716e11d688f51e8f1fe70063e2" dependencies = [ - "bitcoin-internals", + "bitcoin-internals 0.3.0", "serde", ] [[package]] name = "bitcoin_core_sv2" -version = "0.7.0" +version = "0.5.0" dependencies = [ - "async-channel 1.9.0", + "async-channel", "bitcoin-capnp-types 0.1.2", "bitcoin-capnp-types 0.2.1", "stratum-core", @@ -1114,10 +366,11 @@ dependencies = [ [[package]] name = "bitcoin_hashes" -version = "0.13.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "446819536d8121575eeb7e89efdbadb3f055e87e4bb66c6679a6d5cc2f4b64fd" +checksum = "1930a4dabfebb8d7d9992db18ebe3ae2876f0a305fab206fd168df931ede293b" dependencies = [ + "bitcoin-internals 0.2.0", "hex-conservative 0.1.2", ] @@ -1134,15 +387,9 @@ dependencies = [ [[package]] name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.11.1" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" +checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" dependencies = [ "serde_core", ] @@ -1178,25 +425,20 @@ dependencies = [ ] [[package]] -name = "block-padding" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" -dependencies = [ - "generic-array", -] +name = "braidpool-common" +version = "0.1.0" [[package]] -name = "blocking" -version = "1.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" +name = "braidpool-template-provider" +version = "0.1.0" dependencies = [ - "async-channel 2.5.0", - "async-task", - "futures-io", - "futures-lite 2.6.1", - "piper", + "async-channel", + "bitcoin", + "braidpool-common", + "stratum-apps", + "tokio", + "tokio-util", + "tracing", ] [[package]] @@ -1210,8 +452,11 @@ dependencies = [ [[package]] name = "buffer_sv2" -version = "4.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#4a716fa78aae1a69333da3b58932deeeda0e990d" +version = "3.0.1" +source = "git+https://github.com/stratum-mining/stratum?branch=main#ca3cc83af17c470caae2fa7ae39901957b27aee7" +dependencies = [ + "aes-gcm", +] [[package]] name = "bumpalo" @@ -1259,9 +504,9 @@ dependencies = [ [[package]] name = "capnp-rpc" -version = "0.25.1" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c74c337e87f75f3174ffb3513738ab0acc631c04f64cc33b867c60f84771da" +checksum = "07ccca6d26009f4d6c12b741994f33b421da613b5dcf461508e236b53ef862f1" dependencies = [ "capnp", "capnp-futures", @@ -1277,21 +522,13 @@ dependencies = [ "capnp", ] -[[package]] -name = "cast" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" - [[package]] name = "cc" -version = "1.2.62" +version = "1.2.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1dce859f0832a7d088c4f1119888ab94ef4b5d6795d1ce05afb7fe159d79f98" +checksum = "e1e928d4b69e3077709075a938a05ffbedfa53a84c8f766efbf8220bb1ff60e1" dependencies = [ "find-msvc-tools", - "jobserver", - "libc", "shlex", ] @@ -1301,12 +538,6 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" -[[package]] -name = "cfg_aliases" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" - [[package]] name = "chacha20" version = "0.9.1" @@ -1315,18 +546,7 @@ checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" dependencies = [ "cfg-if", "cipher", - "cpufeatures 0.2.17", -] - -[[package]] -name = "chacha20" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601" -dependencies = [ - "cfg-if", - "cpufeatures 0.3.0", - "rand_core 0.10.1", + "cpufeatures", ] [[package]] @@ -1336,7 +556,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" dependencies = [ "aead", - "chacha20 0.9.1", + "chacha20", "cipher", "poly1305", "zeroize", @@ -1344,8 +564,8 @@ dependencies = [ [[package]] name = "channels_sv2" -version = "9.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#4a716fa78aae1a69333da3b58932deeeda0e990d" +version = "8.0.0" +source = "git+https://github.com/stratum-mining/stratum?branch=main#ca3cc83af17c470caae2fa7ae39901957b27aee7" dependencies = [ "binary_sv2", "bitcoin", @@ -1355,52 +575,12 @@ dependencies = [ "tracing", ] -[[package]] -name = "chrono" -version = "0.4.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327" -dependencies = [ - "iana-time-zone", - "js-sys", - "num-traits", - "wasm-bindgen", - "windows-link", -] - [[package]] name = "chunked_transfer" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e4de3bc4ea267985becf712dc6d9eed8b04c953b3fcfb339ebc87acd9804901" -[[package]] -name = "ciborium" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" -dependencies = [ - "ciborium-io", - "ciborium-ll", - "serde", -] - -[[package]] -name = "ciborium-io" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" - -[[package]] -name = "ciborium-ll" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" -dependencies = [ - "ciborium-io", - "half", -] - [[package]] name = "cipher" version = "0.4.4" @@ -1414,9 +594,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.6.1" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51" +checksum = "b193af5b67834b676abd72466a96c1024e6a6ad978a1f484bd90b85c94041351" dependencies = [ "clap_builder", "clap_derive", @@ -1436,9 +616,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.6.1" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9" +checksum = "1110bd8a634a1ab8cb04345d8d878267d57c3cf1b38d91b71af6686408bbca6a" dependencies = [ "heck", "proc-macro2", @@ -1452,25 +632,17 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" -[[package]] -name = "cmake" -version = "0.1.58" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678" -dependencies = [ - "cc", -] - [[package]] name = "codec_sv2" -version = "8.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#4a716fa78aae1a69333da3b58932deeeda0e990d" +version = "7.0.0" +source = "git+https://github.com/stratum-mining/stratum?branch=main#ca3cc83af17c470caae2fa7ae39901957b27aee7" dependencies = [ "binary_sv2", "buffer_sv2", "framing_sv2", "noise_sv2", - "rand 0.8.6", + "rand", + "tracing", ] [[package]] @@ -1485,44 +657,17 @@ version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "faf9468729b8cbcea668e36183cb69d317348c2e08e994829fb56ebfdfbaac34" dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "combine" -version = "4.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" -dependencies = [ - "bytes", - "memchr", + "windows-sys", ] [[package]] name = "common_messages_sv2" -version = "10.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#4a716fa78aae1a69333da3b58932deeeda0e990d" +version = "9.0.0" +source = "git+https://github.com/stratum-mining/stratum?branch=main#ca3cc83af17c470caae2fa7ae39901957b27aee7" dependencies = [ "binary_sv2", ] -[[package]] -name = "compression-codecs" -version = "0.4.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce2548391e9c1929c21bf6aa2680af86fe4c1b33e6cea9ac1cfeec0bd11218cf" -dependencies = [ - "compression-core", - "flate2", - "memchr", -] - -[[package]] -name = "compression-core" -version = "0.4.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc14f565cf027a105f7a44ccf9e5b424348421a1d8952a8fc9d499d313107789" - [[package]] name = "concurrent-queue" version = "2.5.0" @@ -1547,7 +692,7 @@ dependencies = [ "rust-ini", "serde", "serde_json", - "toml 0.8.23", + "toml", "yaml-rust2", ] @@ -1561,115 +706,50 @@ dependencies = [ ] [[package]] -name = "const-random-macro" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" -dependencies = [ - "getrandom 0.2.17", - "once_cell", - "tiny-keccak", -] - -[[package]] -name = "const_format" -version = "0.2.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4481a617ad9a412be3b97c5d403fef8ed023103368908b9c50af598ff467cc1e" -dependencies = [ - "const_format_proc_macros", - "konst", -] - -[[package]] -name = "const_format_proc_macros" -version = "0.2.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" -dependencies = [ - "proc-macro2", - "quote", - "unicode-xid", -] - -[[package]] -name = "convert_case" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "core-foundation" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "corepc-client" -version = "0.7.0" +name = "const-random-macro" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c6b8eaeccd3df6c1f264cd6ff8cf5df7d056029473ce9551b2a6257832d38e0" +checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" dependencies = [ - "bitcoin", - "corepc-types", - "jsonrpc", - "log", - "serde", - "serde_json", + "getrandom", + "once_cell", + "tiny-keccak", ] [[package]] -name = "corepc-node" -version = "0.7.1" +name = "const_format" +version = "0.2.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2bcc6e09458f052024ec36e4728bd5619e248643da6175876eb3b10ca6d4d86" +checksum = "7faa7469a93a566e9ccc1c73fe783b4a65c274c5ace346038dca9c39fe0030ad" dependencies = [ - "anyhow", - "corepc-client", - "log", - "serde_json", - "tempfile", - "which", + "const_format_proc_macros", ] [[package]] -name = "corepc-types" -version = "0.7.0" +name = "const_format_proc_macros" +version = "0.2.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4bc664fdaeeae1eaf459edb88650af3009b758010fc69b423c5b38142446cfb" +checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" dependencies = [ - "bitcoin", - "serde", - "serde_json", + "proc-macro2", + "quote", + "unicode-xid", ] [[package]] -name = "cpufeatures" -version = "0.2.17" +name = "convert_case" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" dependencies = [ - "libc", + "unicode-segmentation", ] [[package]] name = "cpufeatures" -version = "0.3.0" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] @@ -1683,45 +763,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "criterion" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" -dependencies = [ - "anes", - "async-std", - "cast", - "ciborium", - "clap", - "criterion-plot", - "csv", - "futures", - "is-terminal", - "itertools", - "num-traits", - "once_cell", - "oorandom", - "regex", - "serde", - "serde_derive", - "serde_json", - "smol", - "tinytemplate", - "tokio", - "walkdir", -] - -[[package]] -name = "criterion-plot" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" -dependencies = [ - "cast", - "itertools", -] - [[package]] name = "crossbeam-channel" version = "0.5.15" @@ -1754,24 +795,12 @@ dependencies = [ ] [[package]] -name = "csv" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52cd9d68cf7efc6ddfaaee42e7288d3a99d613d4b50f76ce9827ae0c6e14f938" -dependencies = [ - "csv-core", - "itoa", - "ryu", - "serde_core", -] - -[[package]] -name = "csv-core" -version = "0.1.13" +name = "ctr" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "704a3c26996a80471189265814dbc2c257598b96b8a7feae2d31ace646bb9782" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" dependencies = [ - "memchr", + "cipher", ] [[package]] @@ -1802,7 +831,7 @@ dependencies = [ [[package]] name = "derive_codec_sv2" version = "2.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#4a716fa78aae1a69333da3b58932deeeda0e990d" +source = "git+https://github.com/stratum-mining/stratum?branch=main#ca3cc83af17c470caae2fa7ae39901957b27aee7" [[package]] name = "digest" @@ -1823,30 +852,6 @@ dependencies = [ "crypto-common", ] -[[package]] -name = "digest_auth" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3054f4e81d395e50822796c5e99ca522e6ba7be98947d6d4b0e5e61640bdb894" -dependencies = [ - "digest 0.10.7", - "hex", - "md-5", - "rand 0.8.6", - "sha2 0.10.9", -] - -[[package]] -name = "diqwest" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d10611d0d3ed31b33e13ec3e31329aa2053aa4f773eb082b597f39a97e68360" -dependencies = [ - "digest_auth", - "reqwest", - "url", -] - [[package]] name = "dirs" version = "6.0.0" @@ -1875,7 +880,7 @@ dependencies = [ "libc", "option-ext", "redox_users 0.5.2", - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -1891,9 +896,9 @@ dependencies = [ [[package]] name = "displaydoc" -version = "0.2.6" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ac70aa55017e108007fbaf5aa0f54b021c98f92ff8af59d42eda9da96e3dd4f" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", @@ -1909,27 +914,6 @@ dependencies = [ "const-random", ] -[[package]] -name = "dunce" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" - -[[package]] -name = "ecb" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a8bfa975b1aec2145850fcaa1c6fe269a16578c44705a532ae3edc92b8881c7" -dependencies = [ - "cipher", -] - -[[package]] -name = "either" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" - [[package]] name = "embedded-io" version = "0.7.1" @@ -1964,7 +948,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -1973,42 +957,10 @@ version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" -[[package]] -name = "event-listener" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - -[[package]] -name = "event-listener" -version = "5.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - -[[package]] -name = "event-listener-strategy" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" -dependencies = [ - "event-listener 5.4.1", - "pin-project-lite", -] - [[package]] name = "extensions_sv2" -version = "0.4.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#4a716fa78aae1a69333da3b58932deeeda0e990d" +version = "0.3.0" +source = "git+https://github.com/stratum-mining/stratum?branch=main#ca3cc83af17c470caae2fa7ae39901957b27aee7" dependencies = [ "binary_sv2", ] @@ -2023,21 +975,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "fastrand" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] - -[[package]] -name = "fastrand" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" - [[package]] name = "find-msvc-tools" version = "0.1.9" @@ -2051,7 +988,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ "byteorder", - "rand 0.8.6", + "rand", "rustc-hex", "static_assertions", ] @@ -2062,7 +999,6 @@ version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" dependencies = [ - "crc32fast", "miniz_oxide", "zlib-rs", ] @@ -2073,12 +1009,6 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" -[[package]] -name = "foldhash" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" - [[package]] name = "form_urlencoded" version = "1.2.2" @@ -2090,19 +1020,14 @@ dependencies = [ [[package]] name = "framing_sv2" -version = "9.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#4a716fa78aae1a69333da3b58932deeeda0e990d" +version = "8.0.0" +source = "git+https://github.com/stratum-mining/stratum?branch=main#ca3cc83af17c470caae2fa7ae39901957b27aee7" dependencies = [ "binary_sv2", "buffer_sv2", + "noise_sv2", ] -[[package]] -name = "fs_extra" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" - [[package]] name = "funty" version = "2.0.0" @@ -2157,34 +1082,6 @@ version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" -[[package]] -name = "futures-lite" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" -dependencies = [ - "fastrand 1.9.0", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", -] - -[[package]] -name = "futures-lite" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" -dependencies = [ - "fastrand 2.4.1", - "futures-core", - "futures-io", - "parking", - "pin-project-lite", -] - [[package]] name = "futures-macro" version = "0.3.32" @@ -2242,66 +1139,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" dependencies = [ "cfg-if", - "js-sys", "libc", "wasi", - "wasm-bindgen", -] - -[[package]] -name = "getrandom" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "r-efi 5.3.0", - "wasip2", - "wasm-bindgen", -] - -[[package]] -name = "getrandom" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" -dependencies = [ - "cfg-if", - "libc", - "r-efi 6.0.0", - "rand_core 0.10.1", - "wasip2", - "wasip3", -] - -[[package]] -name = "gloo-timers" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", ] [[package]] -name = "half" -version = "2.3.1" +name = "ghash" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" dependencies = [ - "cfg-if", - "crunchy", + "opaque-debug", + "polyval", ] [[package]] name = "handlers_sv2" -version = "0.7.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#4a716fa78aae1a69333da3b58932deeeda0e990d" +version = "0.6.0" +source = "git+https://github.com/stratum-mining/stratum?branch=main#ca3cc83af17c470caae2fa7ae39901957b27aee7" dependencies = [ "binary_sv2", "common_messages_sv2", @@ -2326,18 +1181,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.5" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" -dependencies = [ - "foldhash", -] - -[[package]] -name = "hashbrown" -version = "0.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" [[package]] name = "hashlink" @@ -2364,12 +1210,6 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - [[package]] name = "hermit-abi" version = "0.5.2" @@ -2399,12 +1239,9 @@ dependencies = [ [[package]] name = "hex-conservative" -version = "1.1.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7289f6b628ce69fb1a371d0fdcf8ff38cd93ec00e3010eb055d1e044998c8d1" -dependencies = [ - "arrayvec", -] +checksum = "366fa3443ac84474447710ec17bb00b05dfbd096137817981e86f992f21a2793" [[package]] name = "hex_lit" @@ -2497,9 +1334,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" -version = "1.9.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca" +checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" dependencies = [ "atomic-waker", "bytes", @@ -2511,24 +1348,9 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", + "pin-utils", "smallvec", "tokio", - "want", -] - -[[package]] -name = "hyper-rustls" -version = "0.27.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f" -dependencies = [ - "http", - "hyper", - "hyper-util", - "rustls 0.23.40", - "tokio", - "tokio-rustls", - "tower-service", ] [[package]] @@ -2537,56 +1359,23 @@ version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" dependencies = [ - "base64 0.22.1", "bytes", - "futures-channel", - "futures-util", - "http", - "http-body", - "hyper", - "ipnet", - "libc", - "percent-encoding", - "pin-project-lite", - "socket2 0.6.3", - "tokio", - "tower-service", - "tracing", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.65" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "log", - "wasm-bindgen", - "windows-core", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", + "http", + "http-body", + "hyper", + "pin-project-lite", + "tokio", + "tower-service", ] [[package]] name = "icu_collections" -version = "2.2.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" +checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" dependencies = [ "displaydoc", "potential_utf", - "utf8_iter", "yoke", "zerofrom", "zerovec", @@ -2594,9 +1383,9 @@ dependencies = [ [[package]] name = "icu_locale_core" -version = "2.2.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" +checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" dependencies = [ "displaydoc", "litemap", @@ -2607,9 +1396,9 @@ dependencies = [ [[package]] name = "icu_normalizer" -version = "2.2.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4" +checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" dependencies = [ "icu_collections", "icu_normalizer_data", @@ -2621,15 +1410,15 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "2.2.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38" +checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" [[package]] name = "icu_properties" -version = "2.2.0" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" +checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" dependencies = [ "icu_collections", "icu_locale_core", @@ -2641,15 +1430,15 @@ dependencies = [ [[package]] name = "icu_properties_data" -version = "2.2.0" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" +checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" [[package]] name = "icu_provider" -version = "2.2.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" +checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" dependencies = [ "displaydoc", "icu_locale_core", @@ -2660,12 +1449,6 @@ dependencies = [ "zerovec", ] -[[package]] -name = "id-arena" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" - [[package]] name = "idna" version = "1.1.0" @@ -2679,9 +1462,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.2" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" dependencies = [ "icu_normalizer", "icu_properties", @@ -2715,12 +1498,12 @@ checksum = "964de6e86d545b246d84badc0fef527924ace5134f30641c203ef52ba83f58d5" [[package]] name = "indexmap" -version = "2.14.0" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" dependencies = [ "equivalent", - "hashbrown 0.17.1", + "hashbrown 0.16.1", "serde", "serde_core", ] @@ -2731,75 +1514,18 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" dependencies = [ - "block-padding", "generic-array", ] -[[package]] -name = "instant" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "integration_tests_sv2" -version = "0.7.0" -dependencies = [ - "async-channel 1.9.0", - "clap", - "corepc-node", - "criterion", - "half", - "hex", - "jd_client_sv2", - "libc", - "minreq", - "num-format", - "num_cpus", - "once_cell", - "pool_sv2", - "primitive-types", - "rand 0.8.6", - "serde", - "serde_json", - "sha2 0.10.9", - "stratum-apps", - "tokio", - "tokio-util", - "tracing", - "tracing-subscriber", - "translator_sv2", -] - -[[package]] -name = "io-lifetimes" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi 0.3.9", - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "ipnet" -version = "2.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" - [[package]] name = "is-terminal" version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46" dependencies = [ - "hermit-abi 0.5.2", + "hermit-abi", "libc", - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -2808,42 +1534,17 @@ version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - [[package]] name = "itoa" version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" -[[package]] -name = "jd_client_sv2" -version = "0.7.0" -dependencies = [ - "async-channel 1.9.0", - "clap", - "config", - "hex", - "hotpath", - "serde", - "stratum-apps", - "tokio", - "toml 1.1.2+spec-1.1.0", - "tracing", -] - [[package]] name = "jd_server_sv2" -version = "0.7.0" +version = "0.6.0" dependencies = [ - "async-channel 1.9.0", + "async-channel", "async-trait", "hotpath", "serde", @@ -2852,81 +1553,20 @@ dependencies = [ "tracing", ] -[[package]] -name = "jni" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498" -dependencies = [ - "cfg-if", - "combine", - "jni-macros", - "jni-sys", - "log", - "simd_cesu8", - "thiserror 2.0.18", - "walkdir", - "windows-link", -] - -[[package]] -name = "jni-macros" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3" -dependencies = [ - "proc-macro2", - "quote", - "rustc_version", - "simd_cesu8", - "syn", -] - -[[package]] -name = "jni-sys" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" -dependencies = [ - "jni-sys-macros", -] - -[[package]] -name = "jni-sys-macros" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" -dependencies = [ - "quote", - "syn", -] - [[package]] name = "job_declaration_sv2" -version = "11.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#4a716fa78aae1a69333da3b58932deeeda0e990d" +version = "10.0.0" +source = "git+https://github.com/stratum-mining/stratum?branch=main#ca3cc83af17c470caae2fa7ae39901957b27aee7" dependencies = [ "binary_sv2", ] -[[package]] -name = "jobserver" -version = "0.1.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" -dependencies = [ - "getrandom 0.3.4", - "libc", -] - [[package]] name = "js-sys" -version = "0.3.98" +version = "0.3.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67df7112613f8bfd9150013a0314e196f4800d3201ae742489d999db2f979f08" +checksum = "cc4c90f45aa2e6eacbe8645f77fdea542ac97a494bcd117a67df9ff4d611f995" dependencies = [ - "cfg-if", - "futures-util", "once_cell", "wasm-bindgen", ] @@ -2942,98 +1582,32 @@ dependencies = [ "serde", ] -[[package]] -name = "jsonrpc" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3662a38d341d77efecb73caf01420cfa5aa63c0253fd7bc05289ef9f6616e1bf" -dependencies = [ - "base64 0.13.1", - "minreq", - "serde", - "serde_json", -] - -[[package]] -name = "konst" -version = "0.2.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "128133ed7824fcd73d6e7b17957c5eb7bacb885649bd8c69708b2331a10bcefb" -dependencies = [ - "konst_macro_rules", -] - -[[package]] -name = "konst_macro_rules" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4933f3f57a8e9d9da04db23fb153356ecaf00cbd14aee46279c33dc80925c37" - -[[package]] -name = "kv-log-macro" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" -dependencies = [ - "log", -] - [[package]] name = "lazy_static" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -[[package]] -name = "leb128fmt" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" - [[package]] name = "libc" -version = "0.2.186" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" - -[[package]] -name = "libm" -version = "0.2.16" +version = "0.2.183" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" +checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d" [[package]] name = "libredox" -version = "0.1.16" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e02f3bb43d335493c96bf3fd3a321600bf6bd07ed34bc64118e9293bdffea46c" +checksum = "7ddbf48fd451246b1f8c2610bd3b4ac0cc6e149d89832867093ab69a17194f08" dependencies = [ "libc", ] -[[package]] -name = "linux-raw-sys" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" - -[[package]] -name = "linux-raw-sys" -version = "0.4.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" - -[[package]] -name = "linux-raw-sys" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" - [[package]] name = "litemap" -version = "0.8.2" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" +checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" [[package]] name = "lock_api" @@ -3049,24 +1623,6 @@ name = "log" version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" -dependencies = [ - "value-bag", -] - -[[package]] -name = "lru-slab" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" - -[[package]] -name = "macaddr" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baee0bbc17ce759db233beb01648088061bf678383130602a298e6998eedb2d8" -dependencies = [ - "serde", -] [[package]] name = "mach2" @@ -3089,41 +1645,6 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" -[[package]] -name = "md-5" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" -dependencies = [ - "cfg-if", - "digest 0.10.7", -] - -[[package]] -name = "md5" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae960838283323069879657ca3de837e9f7bbb4c7bf6ea7f1b290d5e9476d2e0" - -[[package]] -name = "md5crypt" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8db1a978f99f584f2e72601860f68bb2cea9c09f4408f5e83f805db3434fb0" -dependencies = [ - "md5", -] - -[[package]] -name = "measurements" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f72b38901c571007811f0483e64a7e215ac9e6e3688e9f83705a717621d81513" -dependencies = [ - "libm", - "serde", -] - [[package]] name = "memchr" version = "2.8.0" @@ -3154,8 +1675,8 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "mining_sv2" -version = "13.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#4a716fa78aae1a69333da3b58932deeeda0e990d" +version = "12.0.0" +source = "git+https://github.com/stratum-mining/stratum?branch=main#ca3cc83af17c470caae2fa7ae39901957b27aee7" dependencies = [ "binary_sv2", ] @@ -3168,7 +1689,7 @@ checksum = "867b1f11e0545ad5ebbddd8a9f18756d9657a6758bf10d96cf15ddd0b726b650" dependencies = [ "bech32", "bitcoin", - "hex-conservative 1.1.0", + "hex-conservative 1.0.1", ] [[package]] @@ -3181,19 +1702,6 @@ dependencies = [ "simd-adler32", ] -[[package]] -name = "minreq" -version = "2.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05015102dad0f7d61691ca347e9d9d9006685a64aefb3d79eecf62665de2153d" -dependencies = [ - "rustls 0.21.12", - "rustls-webpki 0.101.7", - "serde", - "serde_json", - "webpki-roots", -] - [[package]] name = "mio" version = "1.2.0" @@ -3202,16 +1710,16 @@ checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" dependencies = [ "libc", "wasi", - "windows-sys 0.61.2", + "windows-sys", ] [[package]] name = "noise_sv2" -version = "2.1.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#4a716fa78aae1a69333da3b58932deeeda0e990d" +version = "2.0.0" +source = "git+https://github.com/stratum-mining/stratum?branch=main#ca3cc83af17c470caae2fa7ae39901957b27aee7" dependencies = [ "chacha20poly1305", - "rand 0.8.6", + "rand", "secp256k1 0.28.2", "zeroize", ] @@ -3232,17 +1740,7 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "num-format" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" -dependencies = [ - "arrayvec", - "itoa", + "windows-sys", ] [[package]] @@ -3254,16 +1752,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "num_cpus" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" -dependencies = [ - "hermit-abi 0.5.2", - "libc", -] - [[package]] name = "once_cell" version = "1.21.4" @@ -3276,24 +1764,12 @@ version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" -[[package]] -name = "oorandom" -version = "11.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" - [[package]] name = "opaque-debug" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" -[[package]] -name = "openssl-probe" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" - [[package]] name = "option-ext" version = "0.2.0" @@ -3338,12 +1814,6 @@ dependencies = [ "syn", ] -[[package]] -name = "parking" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" - [[package]] name = "parking_lot" version = "0.12.5" @@ -3369,8 +1839,8 @@ dependencies = [ [[package]] name = "parsers_sv2" -version = "0.7.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#4a716fa78aae1a69333da3b58932deeeda0e990d" +version = "0.6.0" +source = "git+https://github.com/stratum-mining/stratum?branch=main#ca3cc83af17c470caae2fa7ae39901957b27aee7" dependencies = [ "binary_sv2", "common_messages_sv2", @@ -3433,61 +1903,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89815c69d36021a140146f26659a81d6c2afa33d216d736dd4be5381a7362220" dependencies = [ "pest", - "sha2 0.10.9", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "piper" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c835479a4443ded371d6c535cbfd8d31ad92c5d23ae9770a61bc155e4992a3c1" -dependencies = [ - "atomic-waker", - "fastrand 2.4.1", - "futures-io", -] - -[[package]] -name = "polling" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" -dependencies = [ - "autocfg", - "bitflags 1.3.2", - "cfg-if", - "concurrent-queue", - "libc", - "log", - "pin-project-lite", - "windows-sys 0.48.0", + "sha2 0.10.9", ] [[package]] -name = "polling" -version = "3.11.0" +name = "pin-project-lite" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" -dependencies = [ - "cfg-if", - "concurrent-queue", - "hermit-abi 0.5.2", - "pin-project-lite", - "rustix 1.1.4", - "windows-sys 0.61.2", -] +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "poly1305" @@ -3495,16 +1924,28 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" dependencies = [ - "cpufeatures 0.2.17", + "cpufeatures", + "opaque-debug", + "universal-hash", +] + +[[package]] +name = "polyval" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" +dependencies = [ + "cfg-if", + "cpufeatures", "opaque-debug", "universal-hash", ] [[package]] name = "pool_sv2" -version = "0.8.0" +version = "0.7.0" dependencies = [ - "async-channel 1.9.0", + "async-channel", "clap", "hex", "hotpath", @@ -3517,9 +1958,9 @@ dependencies = [ [[package]] name = "potential_utf" -version = "0.1.5" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" +checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" dependencies = [ "zerovec", ] @@ -3533,16 +1974,6 @@ dependencies = [ "zerocopy", ] -[[package]] -name = "prettyplease" -version = "0.2.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" -dependencies = [ - "proc-macro2", - "syn", -] - [[package]] name = "prettytable-rs" version = "0.10.0" @@ -3573,7 +2004,7 @@ version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ - "toml_edit 0.25.11+spec-1.1.0", + "toml_edit 0.25.8+spec-1.1.0", ] [[package]] @@ -3606,15 +2037,6 @@ version = "2.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" -[[package]] -name = "pyo3-build-config" -version = "0.28.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e368e7ddfdeb98c9bca7f8383be1648fd84ab466bf2bc015e94008db6d35611e" -dependencies = [ - "target-lexicon", -] - [[package]] name = "quanta" version = "0.12.6" @@ -3630,62 +2052,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "quinn" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" -dependencies = [ - "bytes", - "cfg_aliases", - "pin-project-lite", - "quinn-proto", - "quinn-udp", - "rustc-hash", - "rustls 0.23.40", - "socket2 0.6.3", - "thiserror 2.0.18", - "tokio", - "tracing", - "web-time", -] - -[[package]] -name = "quinn-proto" -version = "0.11.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" -dependencies = [ - "aws-lc-rs", - "bytes", - "getrandom 0.3.4", - "lru-slab", - "rand 0.9.4", - "ring", - "rustc-hash", - "rustls 0.23.40", - "rustls-pki-types", - "slab", - "thiserror 2.0.18", - "tinyvec", - "tracing", - "web-time", -] - -[[package]] -name = "quinn-udp" -version = "0.5.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" -dependencies = [ - "cfg_aliases", - "libc", - "once_cell", - "socket2 0.6.3", - "tracing", - "windows-sys 0.52.0", -] - [[package]] name = "quote" version = "1.0.45" @@ -3695,18 +2061,6 @@ dependencies = [ "proc-macro2", ] -[[package]] -name = "r-efi" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" - -[[package]] -name = "r-efi" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" - [[package]] name = "radium" version = "0.7.0" @@ -3715,34 +2069,13 @@ checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" [[package]] name = "rand" -version = "0.8.6" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" -dependencies = [ - "rand_chacha 0.9.0", - "rand_core 0.9.5", -] - -[[package]] -name = "rand" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2e8e8bcc7961af1fdac401278c6a831614941f6164ee3bf4ce61b7edb162207" -dependencies = [ - "chacha20 0.10.0", - "getrandom 0.4.2", - "rand_core 0.10.1", + "rand_chacha", + "rand_core", ] [[package]] @@ -3752,17 +2085,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" -dependencies = [ - "ppv-lite86", - "rand_core 0.9.5", + "rand_core", ] [[package]] @@ -3771,31 +2094,16 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.17", -] - -[[package]] -name = "rand_core" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" -dependencies = [ - "getrandom 0.3.4", + "getrandom", ] -[[package]] -name = "rand_core" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" - [[package]] name = "raw-cpuid" version = "11.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" dependencies = [ - "bitflags 2.11.1", + "bitflags", ] [[package]] @@ -3804,7 +2112,7 @@ version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.11.1", + "bitflags", ] [[package]] @@ -3813,7 +2121,7 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ - "getrandom 0.2.17", + "getrandom", "libredox", "thiserror 1.0.69", ] @@ -3824,7 +2132,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" dependencies = [ - "getrandom 0.2.17", + "getrandom", "libredox", "thiserror 2.0.18", ] @@ -3858,283 +2166,67 @@ version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" -[[package]] -name = "reqwest" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3" -dependencies = [ - "base64 0.22.1", - "bytes", - "futures-core", - "futures-util", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-rustls", - "hyper-util", - "js-sys", - "log", - "mime_guess", - "percent-encoding", - "pin-project-lite", - "quinn", - "rustls 0.23.40", - "rustls-pki-types", - "rustls-platform-verifier", - "serde", - "serde_json", - "sync_wrapper", - "tokio", - "tokio-rustls", - "tokio-util", - "tower", - "tower-http", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "wasm-streams", - "web-sys", -] - -[[package]] -name = "ring" -version = "0.17.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" -dependencies = [ - "cc", - "cfg-if", - "getrandom 0.2.17", - "libc", - "untrusted", - "windows-sys 0.52.0", -] - -[[package]] -name = "rlimit" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f35ee2729c56bb610f6dba436bf78135f728b7373bdffae2ec815b2d3eb98cc3" -dependencies = [ - "libc", -] - [[package]] name = "ron" version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" -dependencies = [ - "base64 0.21.7", - "bitflags 2.11.1", - "serde", - "serde_derive", -] - -[[package]] -name = "rust-embed" -version = "8.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04113cb9355a377d83f06ef1f0a45b8ab8cd7d8b1288160717d66df5c7988d27" -dependencies = [ - "rust-embed-impl", - "rust-embed-utils", - "walkdir", -] - -[[package]] -name = "rust-embed-impl" -version = "8.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0902e4c7c8e997159ab384e6d0fc91c221375f6894346ae107f47dd0f3ccaa" -dependencies = [ - "proc-macro2", - "quote", - "rust-embed-utils", - "syn", - "walkdir", -] - -[[package]] -name = "rust-embed-utils" -version = "8.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bcdef0be6fe7f6fa333b1073c949729274b05f123a0ad7efcb8efd878e5c3b1" -dependencies = [ - "sha2 0.10.9", - "walkdir", -] - -[[package]] -name = "rust-ini" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e0698206bcb8882bf2a9ecb4c1e7785db57ff052297085a6efd4fe42302068a" -dependencies = [ - "cfg-if", - "ordered-multimap", -] - -[[package]] -name = "rustc-hash" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" - -[[package]] -name = "rustc-hex" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" - -[[package]] -name = "rustc_version" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" -dependencies = [ - "semver", -] - -[[package]] -name = "rustix" -version = "0.37.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "519165d378b97752ca44bbe15047d5d3409e875f39327546b42ac81d7e18c1b6" -dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys 0.3.8", - "windows-sys 0.48.0", -] - -[[package]] -name = "rustix" -version = "0.38.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" -dependencies = [ - "bitflags 2.11.1", - "errno", - "libc", - "linux-raw-sys 0.4.15", - "windows-sys 0.52.0", -] - -[[package]] -name = "rustix" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" -dependencies = [ - "bitflags 2.11.1", - "errno", - "libc", - "linux-raw-sys 0.12.1", - "windows-sys 0.61.2", -] - -[[package]] -name = "rustls" -version = "0.21.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" -dependencies = [ - "log", - "ring", - "rustls-webpki 0.101.7", - "sct", -] - -[[package]] -name = "rustls" -version = "0.23.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef86cd5876211988985292b91c96a8f2d298df24e75989a43a3c73f2d4d8168b" -dependencies = [ - "aws-lc-rs", - "once_cell", - "rustls-pki-types", - "rustls-webpki 0.103.13", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls-native-certs" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dab5152771c58876a2146916e53e35057e1a4dfa2b9df0f0305b07f611fdea4d" +checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" dependencies = [ - "openssl-probe", - "rustls-pki-types", - "schannel", - "security-framework", + "base64 0.21.7", + "bitflags", + "serde", + "serde_derive", ] [[package]] -name = "rustls-pki-types" -version = "1.14.1" +name = "rust-embed" +version = "8.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30a7197ae7eb376e574fe940d068c30fe0462554a3ddbe4eca7838e049c937a9" +checksum = "04113cb9355a377d83f06ef1f0a45b8ab8cd7d8b1288160717d66df5c7988d27" dependencies = [ - "web-time", - "zeroize", + "rust-embed-impl", + "rust-embed-utils", + "walkdir", ] [[package]] -name = "rustls-platform-verifier" -version = "0.7.0" +name = "rust-embed-impl" +version = "8.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d1e2536ce4f35f4846aa13bff16bd0ff40157cdb14cc056c7b14ba41233ba0" +checksum = "da0902e4c7c8e997159ab384e6d0fc91c221375f6894346ae107f47dd0f3ccaa" dependencies = [ - "core-foundation", - "core-foundation-sys", - "jni", - "log", - "once_cell", - "rustls 0.23.40", - "rustls-native-certs", - "rustls-platform-verifier-android", - "rustls-webpki 0.103.13", - "security-framework", - "security-framework-sys", - "webpki-root-certs", - "windows-sys 0.61.2", + "proc-macro2", + "quote", + "rust-embed-utils", + "syn", + "walkdir", ] [[package]] -name = "rustls-platform-verifier-android" -version = "0.1.1" +name = "rust-embed-utils" +version = "8.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" +checksum = "5bcdef0be6fe7f6fa333b1073c949729274b05f123a0ad7efcb8efd878e5c3b1" +dependencies = [ + "sha2 0.10.9", + "walkdir", +] [[package]] -name = "rustls-webpki" -version = "0.101.7" +name = "rust-ini" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +checksum = "3e0698206bcb8882bf2a9ecb4c1e7785db57ff052297085a6efd4fe42302068a" dependencies = [ - "ring", - "untrusted", + "cfg-if", + "ordered-multimap", ] [[package]] -name = "rustls-webpki" -version = "0.103.13" +name = "rustc-hex" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" -dependencies = [ - "aws-lc-rs", - "ring", - "rustls-pki-types", - "untrusted", -] +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" [[package]] name = "rustversion" @@ -4157,39 +2249,20 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "schannel" -version = "0.1.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" -dependencies = [ - "windows-sys 0.61.2", -] - [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "secp256k1" version = "0.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10" dependencies = [ - "bitcoin_hashes 0.13.1", - "rand 0.8.6", + "bitcoin_hashes 0.13.0", + "rand", "secp256k1-sys 0.9.2", ] @@ -4200,6 +2273,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9465315bc9d4566e1724f0fffcbcc446268cb522e60f9a27bcded6b19c108113" dependencies = [ "bitcoin_hashes 0.14.1", + "rand", "secp256k1-sys 0.10.1", "serde", ] @@ -4222,44 +2296,6 @@ dependencies = [ "cc", ] -[[package]] -name = "secrecy" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e891af845473308773346dc847b2c23ee78fe442e0472ac50e22a18a93d3ae5a" -dependencies = [ - "zeroize", -] - -[[package]] -name = "security-framework" -version = "3.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" -dependencies = [ - "bitflags 2.11.1", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "semver" -version = "1.0.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" - [[package]] name = "serde" version = "1.0.228" @@ -4323,15 +2359,6 @@ dependencies = [ "serde", ] -[[package]] -name = "serde_spanned" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" -dependencies = [ - "serde_core", -] - [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -4352,7 +2379,7 @@ checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" dependencies = [ "block-buffer 0.9.0", "cfg-if", - "cpufeatures 0.2.17", + "cpufeatures", "digest 0.9.0", "opaque-debug", ] @@ -4364,18 +2391,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", - "cpufeatures 0.2.17", + "cpufeatures", "digest 0.10.7", - "sha2-asm", -] - -[[package]] -name = "sha2-asm" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b845214d6175804686b2bd482bcffe96651bb2d1200742b712003504a2dac1ab" -dependencies = [ - "cc", ] [[package]] @@ -4418,22 +2435,6 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" -[[package]] -name = "simd_cesu8" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94f90157bb87cddf702797c5dadfa0be7d266cdf49e22da2fcaa32eff75b2c33" -dependencies = [ - "rustc_version", - "simdutf8", -] - -[[package]] -name = "simdutf8" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" - [[package]] name = "slab" version = "0.4.12" @@ -4446,33 +2447,6 @@ version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" -[[package]] -name = "smol" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13f2b548cd8447f8de0fdf1c592929f70f4fc7039a05e47404b0d096ec6987a1" -dependencies = [ - "async-channel 1.9.0", - "async-executor", - "async-fs", - "async-io 1.13.0", - "async-lock 2.8.0", - "async-net", - "async-process", - "blocking", - "futures-lite 1.13.0", -] - -[[package]] -name = "socket2" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" -dependencies = [ - "libc", - "winapi", -] - [[package]] name = "socket2" version = "0.6.3" @@ -4480,7 +2454,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -4497,10 +2471,9 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stratum-apps" -version = "0.9.0" +version = "0.8.0" dependencies = [ - "asic-rs", - "async-channel 1.9.0", + "async-channel", "axum", "bitcoin_core_sv2", "bs58", @@ -4508,11 +2481,9 @@ dependencies = [ "dashmap", "dirs", "futures", - "http-body-util", - "hyper", "miniscript", "prometheus", - "rand 0.8.6", + "rand", "rustversion", "secp256k1 0.28.2", "serde", @@ -4521,7 +2492,6 @@ dependencies = [ "stratum-core", "tokio", "tokio-util", - "tower", "tracing", "tracing-subscriber", "utoipa", @@ -4530,8 +2500,8 @@ dependencies = [ [[package]] name = "stratum-core" -version = "0.7.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#4a716fa78aae1a69333da3b58932deeeda0e990d" +version = "0.6.0" +source = "git+https://github.com/stratum-mining/stratum?branch=main#ca3cc83af17c470caae2fa7ae39901957b27aee7" dependencies = [ "binary_sv2", "bitcoin", @@ -4546,71 +2516,21 @@ dependencies = [ "mining_sv2", "noise_sv2", "parsers_sv2", - "stratum_translation", - "sv1_api", "template_distribution_sv2", ] -[[package]] -name = "stratum_translation" -version = "0.6.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#4a716fa78aae1a69333da3b58932deeeda0e990d" -dependencies = [ - "binary_sv2", - "bitcoin", - "channels_sv2", - "mining_sv2", - "serde_json", - "sv1_api", - "tracing", -] - [[package]] name = "strsim" version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" -[[package]] -name = "strum" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9628de9b8791db39ceda2b119bbe13134770b56c138ec1d3af810d045c04f9bd" -dependencies = [ - "strum_macros", -] - -[[package]] -name = "strum_macros" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "subtle" version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" -[[package]] -name = "sv1_api" -version = "7.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#4a716fa78aae1a69333da3b58932deeeda0e990d" -dependencies = [ - "binary_sv2", - "bitcoin", - "byteorder", - "serde", - "serde_json", - "tracing", -] - [[package]] name = "syn" version = "2.0.117" @@ -4627,9 +2547,6 @@ name = "sync_wrapper" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" -dependencies = [ - "futures-core", -] [[package]] name = "synstructure" @@ -4648,28 +2565,10 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" -[[package]] -name = "target-lexicon" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca" - -[[package]] -name = "tempfile" -version = "3.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" -dependencies = [ - "fastrand 2.4.1", - "once_cell", - "rustix 1.1.4", - "windows-sys 0.61.2", -] - [[package]] name = "template_distribution_sv2" -version = "8.0.0" -source = "git+https://github.com/stratum-mining/stratum?branch=main#4a716fa78aae1a69333da3b58932deeeda0e990d" +version = "7.0.0" +source = "git+https://github.com/stratum-mining/stratum?branch=main#ca3cc83af17c470caae2fa7ae39901957b27aee7" dependencies = [ "binary_sv2", ] @@ -4757,44 +2656,19 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.3" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" +checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" dependencies = [ "displaydoc", "zerovec", ] -[[package]] -name = "tinytemplate" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" -dependencies = [ - "serde", - "serde_json", -] - -[[package]] -name = "tinyvec" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - [[package]] name = "tokio" -version = "1.52.3" +version = "1.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe" +checksum = "27ad5e34374e03cfffefc301becb44e9dc3c17584f414349ebe29ed26661822d" dependencies = [ "bytes", "libc", @@ -4802,44 +2676,22 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.6.3", + "socket2", "tokio-macros", - "tracing", - "windows-sys 0.61.2", + "windows-sys", ] [[package]] name = "tokio-macros" -version = "2.7.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" +checksum = "5c55a2eff8b69ce66c84f85e1da1c233edc36ceb85a2058d11b0d6a3c7e7569c" dependencies = [ "proc-macro2", "quote", "syn", ] -[[package]] -name = "tokio-rustls" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" -dependencies = [ - "rustls 0.23.40", - "tokio", -] - -[[package]] -name = "tokio-stream" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" -dependencies = [ - "futures-core", - "pin-project-lite", - "tokio", -] - [[package]] name = "tokio-util" version = "0.7.18" @@ -4862,26 +2714,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", - "serde_spanned 0.6.9", + "serde_spanned", "toml_datetime 0.6.11", "toml_edit 0.22.27", ] -[[package]] -name = "toml" -version = "1.1.2+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81f3d15e84cbcd896376e6730314d59fb5a87f31e4b038454184435cd57defee" -dependencies = [ - "indexmap", - "serde_core", - "serde_spanned 1.1.1", - "toml_datetime 1.1.1+spec-1.1.0", - "toml_parser", - "toml_writer", - "winnow 1.0.3", -] - [[package]] name = "toml_datetime" version = "0.6.11" @@ -4893,9 +2730,9 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "1.1.1+spec-1.1.0" +version = "1.1.0+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +checksum = "97251a7c317e03ad83774a8752a7e81fb6067740609f75ea2b585b569a59198f" dependencies = [ "serde_core", ] @@ -4908,7 +2745,7 @@ checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ "indexmap", "serde", - "serde_spanned 0.6.9", + "serde_spanned", "toml_datetime 0.6.11", "toml_write", "winnow 0.7.15", @@ -4916,23 +2753,23 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.25.11+spec-1.1.0" +version = "0.25.8+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b" +checksum = "16bff38f1d86c47f9ff0647e6838d7bb362522bdf44006c7068c2b1e606f1f3c" dependencies = [ "indexmap", - "toml_datetime 1.1.1+spec-1.1.0", + "toml_datetime 1.1.0+spec-1.1.0", "toml_parser", - "winnow 1.0.3", + "winnow 1.0.0", ] [[package]] name = "toml_parser" -version = "1.1.2+spec-1.1.0" +version = "1.1.0+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" +checksum = "2334f11ee363607eb04df9b8fc8a13ca1715a72ba8662a26ac285c98aabb4011" dependencies = [ - "winnow 1.0.3", + "winnow 1.0.0", ] [[package]] @@ -4941,12 +2778,6 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" -[[package]] -name = "toml_writer" -version = "1.1.1+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db" - [[package]] name = "tower" version = "0.5.3" @@ -4963,29 +2794,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "tower-http" -version = "0.6.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" -dependencies = [ - "async-compression", - "bitflags 2.11.1", - "bytes", - "futures-core", - "futures-util", - "http", - "http-body", - "http-body-util", - "pin-project-lite", - "tokio", - "tokio-util", - "tower", - "tower-layer", - "tower-service", - "url", -] - [[package]] name = "tower-layer" version = "0.3.3" @@ -5067,40 +2875,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70977707304198400eb4835a78f6a9f928bf41bba420deb8fdb175cd965d77a7" dependencies = [ "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "translator_sv2" -version = "0.7.0" -dependencies = [ - "async-channel 1.9.0", - "clap", - "config", - "hex", - "hotpath", - "serde", - "serde_json", - "sha2 0.10.9", - "stratum-apps", - "tokio", - "tokio-util", - "toml 1.1.2+spec-1.1.0", - "tracing", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + "quote", + "syn", +] [[package]] name = "typenum" -version = "1.20.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" [[package]] name = "ucd-trie" @@ -5160,12 +2943,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - [[package]] name = "url" version = "2.5.8" @@ -5192,9 +2969,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "utoipa" -version = "5.5.0" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bde15df68e80b16c7d16b9616e80770ad158988daa56a27dccd1e55558b0160" +checksum = "2fcc29c80c21c31608227e0912b2d7fddba57ad76b606890627ba8ee7964e993" dependencies = [ "indexmap", "serde", @@ -5204,9 +2981,9 @@ dependencies = [ [[package]] name = "utoipa-gen" -version = "5.5.0" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ba0b99ee52df3028635d93840c797102da61f8a7bb3cf751032455895b52ef8" +checksum = "6d79d08d92ab8af4c5e8a6da20c47ae3f61a0f1dabc1997cdf2d082b757ca08b" dependencies = [ "proc-macro2", "quote", @@ -5245,24 +3022,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" -[[package]] -name = "value-bag" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ba6f5989077681266825251a52748b8c1d8a4ad098cc37e440103d0ea717fc0" - [[package]] name = "version_check" version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" -[[package]] -name = "waker-fn" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" - [[package]] name = "walkdir" version = "2.5.0" @@ -5273,44 +3038,17 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - [[package]] name = "wasi" version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" -[[package]] -name = "wasip2" -version = "1.0.3+wasi-0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" -dependencies = [ - "wit-bindgen 0.57.1", -] - -[[package]] -name = "wasip3" -version = "0.4.0+wasi-0.3.0-rc-2026-01-06" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" -dependencies = [ - "wit-bindgen 0.51.0", -] - [[package]] name = "wasm-bindgen" -version = "0.2.121" +version = "0.2.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49ace1d07c165b0864824eee619580c4689389afa9dc9ed3a4c75040d82e6790" +checksum = "6523d69017b7633e396a89c5efab138161ed5aafcbc8d3e5c5a42ae38f50495a" dependencies = [ "cfg-if", "once_cell", @@ -5319,21 +3057,11 @@ dependencies = [ "wasm-bindgen-shared", ] -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.71" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96492d0d3ffba25305a7dc88720d250b1401d7edca02cc3bcd50633b424673b8" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - [[package]] name = "wasm-bindgen-macro" -version = "0.2.121" +version = "0.2.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e68e6f4afd367a562002c05637acb8578ff2dea1943df76afb9e83d177c8578" +checksum = "4e3a6c758eb2f701ed3d052ff5737f5bfe6614326ea7f3bbac7156192dc32e67" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -5341,9 +3069,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.121" +version = "0.2.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95a9ec35c64b2a7cb35d3fead40c4238d0940c86d107136999567a4703259f2" +checksum = "921de2737904886b52bcbb237301552d05969a6f9c40d261eb0533c8b055fedf" dependencies = [ "bumpalo", "proc-macro2", @@ -5354,104 +3082,23 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.121" +version = "0.2.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4e0100b01e9f0d03189a92b96772a1fb998639d981193d7dbab487302513441" +checksum = "a93e946af942b58934c604527337bad9ae33ba1d5c6900bbb41c2c07c2364a93" dependencies = [ "unicode-ident", ] -[[package]] -name = "wasm-encoder" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" -dependencies = [ - "leb128fmt", - "wasmparser", -] - -[[package]] -name = "wasm-metadata" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" -dependencies = [ - "anyhow", - "indexmap", - "wasm-encoder", - "wasmparser", -] - -[[package]] -name = "wasm-streams" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb" -dependencies = [ - "futures-util", - "js-sys", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "wasmparser" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" -dependencies = [ - "bitflags 2.11.1", - "hashbrown 0.15.5", - "indexmap", - "semver", -] - [[package]] name = "web-sys" -version = "0.3.98" +version = "0.3.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b572dff8bcf38bad0fa19729c89bb5748b2b9b1d8be70cf90df697e3a8f32aa" +checksum = "84cde8507f4d7cfcb1185b8cb5890c494ffea65edbe1ba82cfd63661c805ed94" dependencies = [ "js-sys", "wasm-bindgen", ] -[[package]] -name = "web-time" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webpki-root-certs" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31141ce3fc3e300ae89b78c0dd67f9708061d1d2eda54b8209346fd6be9a92c" -dependencies = [ - "rustls-pki-types", -] - -[[package]] -name = "webpki-roots" -version = "0.25.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" - -[[package]] -name = "which" -version = "3.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724" -dependencies = [ - "libc", -] - [[package]] name = "winapi" version = "0.3.9" @@ -5474,7 +3121,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.61.2", + "windows-sys", ] [[package]] @@ -5483,83 +3130,12 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows-core" -version = "0.62.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" -dependencies = [ - "windows-implement", - "windows-interface", - "windows-link", - "windows-result", - "windows-strings", -] - -[[package]] -name = "windows-implement" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "windows-interface" -version = "0.59.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "windows-link" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" -[[package]] -name = "windows-result" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-strings" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - [[package]] name = "windows-sys" version = "0.61.2" @@ -5569,127 +3145,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - [[package]] name = "winnow" version = "0.7.15" @@ -5701,112 +3156,18 @@ dependencies = [ [[package]] name = "winnow" -version = "1.0.3" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1" +checksum = "a90e88e4667264a994d34e6d1ab2d26d398dcdca8b7f52bec8668957517fc7d8" dependencies = [ "memchr", ] -[[package]] -name = "wit-bindgen" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" -dependencies = [ - "wit-bindgen-rust-macro", -] - -[[package]] -name = "wit-bindgen" -version = "0.57.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" - -[[package]] -name = "wit-bindgen-core" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" -dependencies = [ - "anyhow", - "heck", - "wit-parser", -] - -[[package]] -name = "wit-bindgen-rust" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" -dependencies = [ - "anyhow", - "heck", - "indexmap", - "prettyplease", - "syn", - "wasm-metadata", - "wit-bindgen-core", - "wit-component", -] - -[[package]] -name = "wit-bindgen-rust-macro" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" -dependencies = [ - "anyhow", - "prettyplease", - "proc-macro2", - "quote", - "syn", - "wit-bindgen-core", - "wit-bindgen-rust", -] - -[[package]] -name = "wit-component" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" -dependencies = [ - "anyhow", - "bitflags 2.11.1", - "indexmap", - "log", - "serde", - "serde_derive", - "serde_json", - "wasm-encoder", - "wasm-metadata", - "wasmparser", - "wit-parser", -] - -[[package]] -name = "wit-parser" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" -dependencies = [ - "anyhow", - "id-arena", - "indexmap", - "log", - "semver", - "serde", - "serde_derive", - "serde_json", - "unicode-xid", - "wasmparser", -] - [[package]] name = "writeable" -version = "0.6.3" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" +checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" [[package]] name = "wyz" @@ -5830,9 +3191,9 @@ dependencies = [ [[package]] name = "yoke" -version = "0.8.3" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "709fe23a0424b6a435d82152b1bd3fdfb0833487d5fa90d05d42762a9891fef5" +checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" dependencies = [ "stable_deref_trait", "yoke-derive", @@ -5841,9 +3202,9 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.2" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" +checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", @@ -5853,18 +3214,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.48" +version = "0.8.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" +checksum = "efbb2a062be311f2ba113ce66f697a4dc589f85e78a4aea276200804cea0ed87" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.48" +version = "0.8.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" +checksum = "0e8bc7269b54418e7aeeef514aa68f8690b8c0489a06b0136e5f57c4c5ccab89" dependencies = [ "proc-macro2", "quote", @@ -5873,18 +3234,18 @@ dependencies = [ [[package]] name = "zerofrom" -version = "0.1.8" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.7" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", @@ -5900,9 +3261,9 @@ checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" [[package]] name = "zerotrie" -version = "0.2.4" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" +checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" dependencies = [ "displaydoc", "yoke", @@ -5911,9 +3272,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.6" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" +checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" dependencies = [ "yoke", "zerofrom", @@ -5922,9 +3283,9 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.3" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" +checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 180dcaea3..fe0dcc431 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,6 +6,8 @@ members = [ "stratum-apps", "pool-apps/pool", "pool-apps/jd-server", + "pool-apps/braidpool-common", + "pool-apps/braidpool-template-provider", "miner-apps/jd-client", "miner-apps/translator", "integration-tests", @@ -19,6 +21,8 @@ default-members = [ "stratum-apps", "pool-apps/pool", "pool-apps/jd-server", + "pool-apps/braidpool-common", + "pool-apps/braidpool-template-provider", "miner-apps/jd-client", "miner-apps/translator", ] diff --git a/pool-apps/braidpool-common/Cargo.toml b/pool-apps/braidpool-common/Cargo.toml new file mode 100644 index 000000000..47db3ead5 --- /dev/null +++ b/pool-apps/braidpool-common/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "braidpool-common" +version = "0.1.0" +edition = "2021" +description = "Common types shared between Braidpool node and sv2-apps" +license = "MIT OR Apache-2.0" + +[dependencies] diff --git a/pool-apps/braidpool-common/src/lib.rs b/pool-apps/braidpool-common/src/lib.rs new file mode 100644 index 000000000..612b5b95f --- /dev/null +++ b/pool-apps/braidpool-common/src/lib.rs @@ -0,0 +1 @@ +pub mod template; diff --git a/pool-apps/braidpool-common/src/template.rs b/pool-apps/braidpool-common/src/template.rs new file mode 100644 index 000000000..b62590a0b --- /dev/null +++ b/pool-apps/braidpool-common/src/template.rs @@ -0,0 +1,33 @@ +/// A block template produced by the Braidpool node, consumed by +/// braidpool-template-provider in sv2-apps. +/// +/// The node converts its internal BlockTemplate into this type before +/// sending it over the channel to the SV2 pool. This avoids a direct +/// dependency on node internals from sv2-apps. +#[derive(Debug, Clone)] +pub struct BraidpoolTemplate { + /// Full serialized coinbase transaction built by template_creator.rs. + /// Contains the Braidpool OP_RETURN commitment already embedded. + /// Used by build_new_template in braidpool_mode=true. + pub coinbase_tx: Vec, + + /// Merkle path from coinbase txid to merkle root. + pub merkle_path: Vec<[u8; 32]>, + + /// Previous block hash (32 bytes, little-endian). + pub prev_hash: [u8; 32], + + /// Compact difficulty target (nbits). + pub nbits: u32, + + /// Bitcoin block version. + pub version: i32, + + /// Block height — required for Future Job (NewExtendedMiningJob). + /// Must come from ipc_template.components, NOT BlockTemplate.height + /// which is Height::ZERO in ipc_template_consumer. + pub height: u32, + + /// Monotonically increasing template identifier from the node. + pub template_id: u64, +} diff --git a/pool-apps/braidpool-template-provider/Cargo.toml b/pool-apps/braidpool-template-provider/Cargo.toml new file mode 100644 index 000000000..63df1c168 --- /dev/null +++ b/pool-apps/braidpool-template-provider/Cargo.toml @@ -0,0 +1,15 @@ +[package] +name = "braidpool-template-provider" +version = "0.1.0" +edition = "2021" +description = "Converts Braidpool node templates to SV2 TemplateDistribution messages" +license = "MIT OR Apache-2.0" + +[dependencies] +braidpool-common = { path = "../braidpool-common" } +stratum-apps = { version = "0.8.0", path = "../../stratum-apps", features = ["pool"] } +async-channel = "1.5.1" +tokio = { version = "1.44.1", features = ["full"] } +tokio-util = { version = "0.7", features = ["rt"] } +tracing = "0.1" +bitcoin = { version = "0.32.5", features = ["serde", "std", "rand"] } diff --git a/pool-apps/braidpool-template-provider/src/error.rs b/pool-apps/braidpool-template-provider/src/error.rs new file mode 100644 index 000000000..60ce30e9a --- /dev/null +++ b/pool-apps/braidpool-template-provider/src/error.rs @@ -0,0 +1,40 @@ +#[derive(Debug)] +pub enum BraidpoolTemplateProviderError { + InvalidTemplateData(String), + InvalidCoinbaseTx(String), + InvalidBlockVersion, + InvalidCoinbaseTxVersion, + InvalidCoinbaseScriptSig, + CoinbaseOutputSerializationFailed, + BlockDeserializationFailed(String), + TemplateNotFound(u64), + ChannelSendError(String), + ChannelRecvError(String), + MerklePathError(String), +} + +/// Errors specific to building SV2 template messages +#[derive(Debug)] +pub enum TemplateDataError { + InvalidBlockVersion, + InvalidCoinbaseTxVersion, + InvalidCoinbaseScriptSig, + InvalidCoinbaseTx(String), + MerklePathError(String), + SerializationError(String), +} + +impl std::fmt::Display for BraidpoolTemplateProviderError { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{:?}", self) + } +} + +impl std::fmt::Display for TemplateDataError { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{:?}", self) + } +} + +impl std::error::Error for BraidpoolTemplateProviderError {} +impl std::error::Error for TemplateDataError {} diff --git a/pool-apps/braidpool-template-provider/src/lib.rs b/pool-apps/braidpool-template-provider/src/lib.rs new file mode 100644 index 000000000..09c20f1fa --- /dev/null +++ b/pool-apps/braidpool-template-provider/src/lib.rs @@ -0,0 +1,147 @@ +//! Braidpool Template Provider +//! +//! Converts BraidpoolTemplate (from braidpool-common) to SV2 +//! TemplateDistribution messages for the pool downstream channel manager. + + +use async_channel::{Receiver, Sender}; +use braidpool_common::template::BraidpoolTemplate; +use stratum_apps::stratum_core::{ + parsers_sv2::TemplateDistributionOwned, + template_distribution_sv2::RequestTransactionDataErrorOwned, +}; +pub use tokio_util::sync::CancellationToken; +use tracing::{debug, error, info, warn}; + +pub mod error; +pub mod sv2_messages; + +pub use error::BraidpoolTemplateProviderError; + +/// Consumes BraidpoolTemplates and converts to SV2 TemplateDistribution messages. +/// +/// Runs as a sibling task to ipc_template_consumer in the braidpool node. +/// Receives templates via a dedicated channel rather than sharing the node's +/// notification_tx (which is single-consumer). +/// +/// # Parameters +/// * `template_rx` - Receiver for BraidpoolTemplates from the node +/// * `sv2_outgoing_tx` - Sender for outgoing SV2 TemplateDistribution messages to pool +/// * `sv2_incoming_rx` - Receiver for incoming SV2 messages (SubmitSolution etc.) +/// * `cancellation_token` - Token for graceful shutdown +pub async fn sv2_template_consumer( + mut template_rx: tokio::sync::mpsc::Receiver, + sv2_outgoing_tx: Sender, + sv2_incoming_rx: Receiver, + cancellation_token: CancellationToken, +) -> Result<(), BraidpoolTemplateProviderError> { + info!("SV2 template consumer started"); + + let mut _current_template_id: Option = None; + + // Wait for CoinbaseOutputConstraints from pool before processing templates. + // The pool sends this on startup to tell us the max coinbase output size. + info!("Waiting for CoinbaseOutputConstraints from pool"); + loop { + tokio::select! { + _ = cancellation_token.cancelled() => { + warn!("Cancelled before receiving CoinbaseOutputConstraints"); + return Ok(()); + } + Ok(message) = sv2_incoming_rx.recv() => { + if let TemplateDistributionOwned::CoinbaseOutputConstraints(constraints) = message { + info!( + max_size = constraints.coinbase_output_max_additional_size, + "Received CoinbaseOutputConstraints from pool" + ); + break; + } + } + } + } + + // Main loop — receive BraidpoolTemplates and send SV2 messages + loop { + tokio::select! { + _ = cancellation_token.cancelled() => { + info!("SV2 template consumer shutting down"); + return Ok(()); + } + + Some(template) = template_rx.recv() => { + let template_id = template.template_id; + debug!(template_id, "Received BraidpoolTemplate"); + + // Send future job first (no prev_hash yet — miners prepare work) + match sv2_messages::build_new_template(&template, true) { + Ok(new_template) => { + if let Err(e) = sv2_outgoing_tx + .send(TemplateDistributionOwned::NewTemplate(new_template)) + .await + { + error!(error = %e, "Failed to send NewTemplate"); + return Err(BraidpoolTemplateProviderError::ChannelSendError( + e.to_string(), + )); + } + info!(template_id, "Sent NewTemplate (future job)"); + } + Err(e) => { + error!(template_id, error = %e, "Failed to build NewTemplate"); + continue; + } + } + + // Send SetNewPrevHash to activate the job + match sv2_messages::build_set_new_prev_hash(&template) { + Ok(set_new_prev_hash) => { + if let Err(e) = sv2_outgoing_tx + .send(TemplateDistributionOwned::SetNewPrevHash(set_new_prev_hash)) + .await + { + error!(error = %e, "Failed to send SetNewPrevHash"); + return Err(BraidpoolTemplateProviderError::ChannelSendError( + e.to_string(), + )); + } + info!(template_id, "Sent SetNewPrevHash"); + } + Err(e) => { + error!(template_id, error = %e, "Failed to build SetNewPrevHash"); + continue; + } + } + + _current_template_id = Some(template_id); + } + + Ok(message) = sv2_incoming_rx.recv() => { + match message { + TemplateDistributionOwned::SubmitSolution(_solution) => { + debug!("Received SubmitSolution — forwarding to node via bridge"); + // TODO(sv2-integration): forward to node's block submission channel + // This will be wired in PR 4 when the node bridge is added + } + TemplateDistributionOwned::RequestTransactionData(req) => { + debug!(template_id = req.template_id, "Received RequestTransactionData"); + // Braidpool does not use TDP transaction data requests + // Send error response per SV2 spec + let err = RequestTransactionDataErrorOwned { + template_id: req.template_id, + error_code: b"template-id-not-found" + .to_vec() + .try_into() + .expect("static ASCII fits Str0255"), + }; + let _ = sv2_outgoing_tx + .send(TemplateDistributionOwned::RequestTransactionDataError(err)) + .await; + } + _ => { + debug!("Ignoring unhandled incoming SV2 message"); + } + } + } + } + } +} diff --git a/pool-apps/braidpool-template-provider/src/sv2_messages.rs b/pool-apps/braidpool-template-provider/src/sv2_messages.rs new file mode 100644 index 000000000..aad6adebf --- /dev/null +++ b/pool-apps/braidpool-template-provider/src/sv2_messages.rs @@ -0,0 +1,126 @@ +//! SV2 message builders for TemplateDistribution protocol. +//! +//! Builds NewTemplate and SetNewPrevHash from BraidpoolTemplate. +//! Key difference from Sansh's version: uses BraidpoolTemplate.coinbase_tx +//! (already built by template_creator with OP_RETURN commitment) instead +//! of deserializing from processed_block_hex. + +use crate::error::TemplateDataError; +use bitcoin::{Transaction, consensus::deserialize}; +use braidpool_common::template::BraidpoolTemplate; +use stratum_apps::stratum_core::{ + binary_sv2::{B0255Owned, B064KOwned, Seq0255Owned, U256Owned}, + template_distribution_sv2::{NewTemplateOwned, SetNewPrevHashOwned}, +}; +use tracing::debug; + +/// Build a NewTemplate SV2 message from a BraidpoolTemplate. +/// +/// braidpool_mode=true: includes ALL coinbase outputs (reward + segwit + OP_RETURN). +/// This is the Braidpool-specific behavior — factory.rs uses these outputs +/// directly to construct the full coinbase for downstream miners. +/// +/// # Parameters +/// * `template` - The BraidpoolTemplate from the node +/// * `future_template` - true = send job without prev_hash (Future Job) +pub fn build_new_template( + template: &BraidpoolTemplate, + future_template: bool, +) -> Result { + // Deserialize the full coinbase built by template_creator.rs. + // This coinbase already contains the Braidpool OP_RETURN commitment. + let coinbase_tx: Transaction = deserialize(&template.coinbase_tx) + .map_err(|e| TemplateDataError::InvalidCoinbaseTx(format!( + "Failed to deserialize coinbase_tx: {}", e + )))?; + + let version: u32 = template.version + .try_into() + .map_err(|_| TemplateDataError::InvalidBlockVersion)?; + + let coinbase_tx_version: u32 = coinbase_tx.version.0 + .try_into() + .map_err(|_| TemplateDataError::InvalidCoinbaseTxVersion)?; + + // coinbase scriptSig becomes the coinbase_prefix in SV2 + let coinbase_prefix: B0255Owned = coinbase_tx.input[0] + .script_sig + .to_bytes() + .try_into() + .map_err(|_| TemplateDataError::InvalidCoinbaseScriptSig)?; + + let coinbase_tx_input_sequence = coinbase_tx.input[0].sequence.to_consensus_u32(); + + // Total value across all outputs + let coinbase_tx_value_remaining: u64 = coinbase_tx + .output + .iter() + .map(|o| o.value.to_sat()) + .sum(); + + // braidpool_mode=true: include ALL outputs (reward[0] + segwit[1] + OP_RETURN[2]) + // Standard SRI mode would only include output[0] + let outputs_to_include: Vec<_> = coinbase_tx.output.iter().cloned().collect(); + + let mut serialized_outputs = Vec::new(); + for output in &outputs_to_include { + serialized_outputs.extend_from_slice( + &bitcoin::consensus::serialize(output) + ); + } + + let coinbase_tx_outputs: B064KOwned = serialized_outputs + .try_into() + .map_err(|_| TemplateDataError::SerializationError( + "coinbase outputs too large for B064K".into() + ))?; + + let coinbase_tx_locktime = coinbase_tx.lock_time.to_consensus_u32(); + + // Build merkle path: each [u8; 32] branch → U256Owned + let merkle_path_vec: Vec = template.merkle_path.iter() + .map(|branch| U256Owned::from(*branch)) + .collect(); + + let merkle_path: Seq0255Owned = Seq0255Owned::new(merkle_path_vec) + .map_err(|_| TemplateDataError::MerklePathError( + "merkle path exceeds 255 elements".into() + ))?; + + debug!( + template_id = template.template_id, + future_template, + outputs = outputs_to_include.len(), + "Building NewTemplate (braidpool_mode=true)" + ); + + Ok(NewTemplateOwned { + template_id: template.template_id, + future_template, + version, + coinbase_tx_version, + coinbase_prefix, + coinbase_tx_input_sequence, + coinbase_tx_value_remaining, + coinbase_tx_outputs_count: outputs_to_include.len() as u32, + coinbase_tx_outputs, + coinbase_tx_locktime, + merkle_path, + }) +} + +/// Build a SetNewPrevHash SV2 message from a BraidpoolTemplate. +/// Activates the Future Job sent by build_new_template. +pub fn build_set_new_prev_hash( + template: &BraidpoolTemplate, +) -> Result { + let prev_hash = U256Owned::from(template.prev_hash); + + Ok(SetNewPrevHashOwned { + template_id: template.template_id, + prev_hash, + header_timestamp: 0, // miner uses current time + n_bits: template.nbits, + target: U256Owned::from([0u8; 32]), // pool sets target via SetTarget separately + }) +} From 4d681876063973ff121dd2028b6f46154610cb68 Mon Sep 17 00:00:00 2001 From: nkatha23 Date: Fri, 4 Sep 2026 17:08:17 +0300 Subject: [PATCH 2/5] ci: add sv2-integration-braidpool branch to CI triggers --- .github/workflows/ci.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 129829d88..fb5fa6886 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -4,9 +4,11 @@ on: pull_request: branches: - main + - sv2-integration-braidpool push: branches: - main + - sv2-integration-braidpool env: CARGO_TERM_COLOR: always From 743cd62a39270dab180b46303c70b77975db45cb Mon Sep 17 00:00:00 2001 From: nkatha23 Date: Sun, 6 Sep 2026 20:58:34 +0300 Subject: [PATCH 3/5] fixes - Add header_timestamp to BraidpoolTemplate (fixes invalid min_ntime=0) - Guard coinbase_tx.input[0] access against empty input vec - Handle closed channel in select! loops to prevent hot loop on Err - Fix clippy uninlined_format_args and iter_cloned_collect warnings - Scope CI clippy/fmt/machete to braidpool-common and braidpool-template-provider only - Pin machete install to avoid rustc 1.91 requirement on 1.88 toolchain --- .github/workflows/ci.yaml | 10 +++- pool-apps/braidpool-common/src/template.rs | 4 ++ .../braidpool-template-provider/src/error.rs | 4 +- .../braidpool-template-provider/src/lib.rs | 36 +++++++---- .../src/sv2_messages.rs | 60 +++++++++---------- 5 files changed, 66 insertions(+), 48 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index fb5fa6886..33370e1d7 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -49,7 +49,7 @@ jobs: - name: Clippy check run: | cargo clippy -p stratum-apps --all-features -- -D warnings - for crate in pool_sv2 jd_server_sv2 jd_client_sv2 translator_sv2 bitcoin_core_sv2 integration_tests_sv2; do + for crate in pool_sv2 jd_server_sv2 jd_client_sv2 translator_sv2 bitcoin_core_sv2 integration_tests_sv2 braidpool-common braidpool-template-provider; do cargo clippy -p "$crate" -- -D warnings done for crate in pool_sv2 jd_client_sv2 translator_sv2; do @@ -82,5 +82,9 @@ jobs: uses: actions/checkout@v4 - name: Install Rust uses: dtolnay/rust-toolchain@stable - - name: Run cargo-machete - uses: bnjbvr/cargo-machete@main + - name: Install cargo-machete + run: cargo install cargo-machete --locked + - name: Run cargo-machete (braidpool crates) + run: | + cargo machete pool-apps/braidpool-common + cargo machete pool-apps/braidpool-template-provider diff --git a/pool-apps/braidpool-common/src/template.rs b/pool-apps/braidpool-common/src/template.rs index b62590a0b..07c406f93 100644 --- a/pool-apps/braidpool-common/src/template.rs +++ b/pool-apps/braidpool-common/src/template.rs @@ -20,6 +20,10 @@ pub struct BraidpoolTemplate { /// Compact difficulty target (nbits). pub nbits: u32, + /// Block header timestamp (nTime), seconds since Unix epoch. + /// Used as min_ntime in SetNewPrevHash → NewExtendedMiningJob downstream. + pub header_timestamp: u32, + /// Bitcoin block version. pub version: i32, diff --git a/pool-apps/braidpool-template-provider/src/error.rs b/pool-apps/braidpool-template-provider/src/error.rs index 60ce30e9a..493b7db49 100644 --- a/pool-apps/braidpool-template-provider/src/error.rs +++ b/pool-apps/braidpool-template-provider/src/error.rs @@ -26,13 +26,13 @@ pub enum TemplateDataError { impl std::fmt::Display for BraidpoolTemplateProviderError { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(f, "{:?}", self) + write!(f, "{self:?}") } } impl std::fmt::Display for TemplateDataError { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(f, "{:?}", self) + write!(f, "{self:?}") } } diff --git a/pool-apps/braidpool-template-provider/src/lib.rs b/pool-apps/braidpool-template-provider/src/lib.rs index 09c20f1fa..f3729a469 100644 --- a/pool-apps/braidpool-template-provider/src/lib.rs +++ b/pool-apps/braidpool-template-provider/src/lib.rs @@ -3,7 +3,6 @@ //! Converts BraidpoolTemplate (from braidpool-common) to SV2 //! TemplateDistribution messages for the pool downstream channel manager. - use async_channel::{Receiver, Sender}; use braidpool_common::template::BraidpoolTemplate; use stratum_apps::stratum_core::{ @@ -48,13 +47,20 @@ pub async fn sv2_template_consumer( warn!("Cancelled before receiving CoinbaseOutputConstraints"); return Ok(()); } - Ok(message) = sv2_incoming_rx.recv() => { - if let TemplateDistributionOwned::CoinbaseOutputConstraints(constraints) = message { - info!( - max_size = constraints.coinbase_output_max_additional_size, - "Received CoinbaseOutputConstraints from pool" - ); - break; + result = sv2_incoming_rx.recv() => { + match result { + Ok(TemplateDistributionOwned::CoinbaseOutputConstraints(constraints)) => { + info!( + max_size = constraints.coinbase_output_max_additional_size, + "Received CoinbaseOutputConstraints from pool" + ); + break; + } + Ok(_) => {} + Err(e) => { + warn!(error = %e, "SV2 incoming channel closed while waiting for CoinbaseOutputConstraints"); + return Err(BraidpoolTemplateProviderError::ChannelRecvError(e.to_string())); + } } } } @@ -115,14 +121,14 @@ pub async fn sv2_template_consumer( _current_template_id = Some(template_id); } - Ok(message) = sv2_incoming_rx.recv() => { - match message { - TemplateDistributionOwned::SubmitSolution(_solution) => { + result = sv2_incoming_rx.recv() => { + match result { + Ok(TemplateDistributionOwned::SubmitSolution(_solution)) => { debug!("Received SubmitSolution — forwarding to node via bridge"); // TODO(sv2-integration): forward to node's block submission channel // This will be wired in PR 4 when the node bridge is added } - TemplateDistributionOwned::RequestTransactionData(req) => { + Ok(TemplateDistributionOwned::RequestTransactionData(req)) => { debug!(template_id = req.template_id, "Received RequestTransactionData"); // Braidpool does not use TDP transaction data requests // Send error response per SV2 spec @@ -137,9 +143,13 @@ pub async fn sv2_template_consumer( .send(TemplateDistributionOwned::RequestTransactionDataError(err)) .await; } - _ => { + Ok(_) => { debug!("Ignoring unhandled incoming SV2 message"); } + Err(e) => { + warn!(error = %e, "SV2 incoming channel closed"); + return Err(BraidpoolTemplateProviderError::ChannelRecvError(e.to_string())); + } } } } diff --git a/pool-apps/braidpool-template-provider/src/sv2_messages.rs b/pool-apps/braidpool-template-provider/src/sv2_messages.rs index aad6adebf..c95b07fb5 100644 --- a/pool-apps/braidpool-template-provider/src/sv2_messages.rs +++ b/pool-apps/braidpool-template-provider/src/sv2_messages.rs @@ -1,12 +1,9 @@ //! SV2 message builders for TemplateDistribution protocol. //! //! Builds NewTemplate and SetNewPrevHash from BraidpoolTemplate. -//! Key difference from Sansh's version: uses BraidpoolTemplate.coinbase_tx -//! (already built by template_creator with OP_RETURN commitment) instead -//! of deserializing from processed_block_hex. use crate::error::TemplateDataError; -use bitcoin::{Transaction, consensus::deserialize}; +use bitcoin::{consensus::deserialize, Transaction}; use braidpool_common::template::BraidpoolTemplate; use stratum_apps::stratum_core::{ binary_sv2::{B0255Owned, B064KOwned, Seq0255Owned, U256Owned}, @@ -29,16 +26,24 @@ pub fn build_new_template( ) -> Result { // Deserialize the full coinbase built by template_creator.rs. // This coinbase already contains the Braidpool OP_RETURN commitment. - let coinbase_tx: Transaction = deserialize(&template.coinbase_tx) - .map_err(|e| TemplateDataError::InvalidCoinbaseTx(format!( - "Failed to deserialize coinbase_tx: {}", e - )))?; + let coinbase_tx: Transaction = deserialize(&template.coinbase_tx).map_err(|e| { + TemplateDataError::InvalidCoinbaseTx(format!("Failed to deserialize coinbase_tx: {e}")) + })?; + + if coinbase_tx.input.is_empty() { + return Err(TemplateDataError::InvalidCoinbaseTx( + "coinbase transaction has no inputs".into(), + )); + } - let version: u32 = template.version + let version: u32 = template + .version .try_into() .map_err(|_| TemplateDataError::InvalidBlockVersion)?; - let coinbase_tx_version: u32 = coinbase_tx.version.0 + let coinbase_tx_version: u32 = coinbase_tx + .version + .0 .try_into() .map_err(|_| TemplateDataError::InvalidCoinbaseTxVersion)?; @@ -52,40 +57,35 @@ pub fn build_new_template( let coinbase_tx_input_sequence = coinbase_tx.input[0].sequence.to_consensus_u32(); // Total value across all outputs - let coinbase_tx_value_remaining: u64 = coinbase_tx - .output - .iter() - .map(|o| o.value.to_sat()) - .sum(); + let coinbase_tx_value_remaining: u64 = + coinbase_tx.output.iter().map(|o| o.value.to_sat()).sum(); // braidpool_mode=true: include ALL outputs (reward[0] + segwit[1] + OP_RETURN[2]) // Standard SRI mode would only include output[0] - let outputs_to_include: Vec<_> = coinbase_tx.output.iter().cloned().collect(); + let outputs_to_include = coinbase_tx.output.to_vec(); let mut serialized_outputs = Vec::new(); for output in &outputs_to_include { - serialized_outputs.extend_from_slice( - &bitcoin::consensus::serialize(output) - ); + serialized_outputs.extend_from_slice(&bitcoin::consensus::serialize(output)); } - let coinbase_tx_outputs: B064KOwned = serialized_outputs - .try_into() - .map_err(|_| TemplateDataError::SerializationError( - "coinbase outputs too large for B064K".into() - ))?; + let coinbase_tx_outputs: B064KOwned = serialized_outputs.try_into().map_err(|_| { + TemplateDataError::SerializationError("coinbase outputs too large for B064K".into()) + })?; let coinbase_tx_locktime = coinbase_tx.lock_time.to_consensus_u32(); // Build merkle path: each [u8; 32] branch → U256Owned - let merkle_path_vec: Vec = template.merkle_path.iter() + let merkle_path_vec: Vec = template + .merkle_path + .iter() .map(|branch| U256Owned::from(*branch)) .collect(); - let merkle_path: Seq0255Owned = Seq0255Owned::new(merkle_path_vec) - .map_err(|_| TemplateDataError::MerklePathError( - "merkle path exceeds 255 elements".into() - ))?; + let merkle_path: Seq0255Owned = + Seq0255Owned::new(merkle_path_vec).map_err(|_| { + TemplateDataError::MerklePathError("merkle path exceeds 255 elements".into()) + })?; debug!( template_id = template.template_id, @@ -119,7 +119,7 @@ pub fn build_set_new_prev_hash( Ok(SetNewPrevHashOwned { template_id: template.template_id, prev_hash, - header_timestamp: 0, // miner uses current time + header_timestamp: template.header_timestamp, n_bits: template.nbits, target: U256Owned::from([0u8; 32]), // pool sets target via SetTarget separately }) From 17c7d41e6f735eaa9798f95734557e1e6eedbcd2 Mon Sep 17 00:00:00 2001 From: nkatha23 Date: Wed, 9 Sep 2026 17:23:42 +0300 Subject: [PATCH 4/5] unit tests --- .../src/sv2_messages.rs | 104 ++++++++++++++++++ 1 file changed, 104 insertions(+) diff --git a/pool-apps/braidpool-template-provider/src/sv2_messages.rs b/pool-apps/braidpool-template-provider/src/sv2_messages.rs index c95b07fb5..65b1e19f9 100644 --- a/pool-apps/braidpool-template-provider/src/sv2_messages.rs +++ b/pool-apps/braidpool-template-provider/src/sv2_messages.rs @@ -109,6 +109,110 @@ pub fn build_new_template( }) } +#[cfg(test)] +mod tests { + use super::*; + use bitcoin::{ + consensus::serialize, locktime::absolute::LockTime, OutPoint, ScriptBuf, Sequence, + Transaction, TxIn, TxOut, Witness, + }; + use braidpool_common::template::BraidpoolTemplate; + + fn make_template(coinbase_tx: Transaction) -> BraidpoolTemplate { + BraidpoolTemplate { + coinbase_tx: serialize(&coinbase_tx), + merkle_path: vec![[2u8; 32]], + prev_hash: [1u8; 32], + nbits: 0x1d00ffff, + header_timestamp: 1_700_000_000, + version: 2, + height: 840_000, + template_id: 99, + } + } + + fn coinbase_tx(outputs: Vec) -> Transaction { + Transaction { + version: bitcoin::transaction::Version::TWO, + input: vec![TxIn { + previous_output: OutPoint::null(), + script_sig: ScriptBuf::from_bytes(vec![0x03, 0x01, 0x00, 0x00]), + sequence: Sequence::MAX, + witness: Witness::new(), + }], + output: outputs, + lock_time: LockTime::ZERO, + } + } + + fn dummy_output(sats: u64) -> TxOut { + TxOut { + value: bitcoin::Amount::from_sat(sats), + script_pubkey: ScriptBuf::new(), + } + } + + #[test] + fn test_build_new_template_maps_fields() { + let tx = coinbase_tx(vec![dummy_output(5_000_000_000), dummy_output(0)]); + let template = make_template(tx.clone()); + + let result = build_new_template(&template, true).unwrap(); + + assert_eq!(result.template_id, 99); + assert!(result.future_template); + assert_eq!(result.version, 2u32); + assert_eq!(result.coinbase_tx_value_remaining, 5_000_000_000); + assert_eq!(result.coinbase_tx_outputs_count, 2); + assert_eq!(result.coinbase_tx_locktime, 0); + assert_eq!(result.merkle_path.len(), 1); + } + + #[test] + fn test_build_new_template_empty_input_returns_error() { + let tx = Transaction { + version: bitcoin::transaction::Version::TWO, + input: vec![], + output: vec![dummy_output(0)], + lock_time: LockTime::ZERO, + }; + let template = make_template(tx); + + let err = build_new_template(&template, false).unwrap_err(); + assert!(matches!(err, TemplateDataError::InvalidCoinbaseTx(_))); + } + + #[test] + fn test_build_new_template_invalid_bytes_returns_error() { + let template = BraidpoolTemplate { + coinbase_tx: vec![0xde, 0xad, 0xbe, 0xef], + merkle_path: vec![], + prev_hash: [0u8; 32], + nbits: 0, + header_timestamp: 0, + version: 2, + height: 0, + template_id: 1, + }; + + let err = build_new_template(&template, false).unwrap_err(); + assert!(matches!(err, TemplateDataError::InvalidCoinbaseTx(_))); + } + + #[test] + fn test_build_set_new_prev_hash_maps_fields() { + let tx = coinbase_tx(vec![dummy_output(0)]); + let template = make_template(tx); + + let result = build_set_new_prev_hash(&template).unwrap(); + + assert_eq!(result.template_id, 99); + assert_eq!(result.header_timestamp, 1_700_000_000); + assert_eq!(result.n_bits, 0x1d00ffff); + assert_eq!(result.prev_hash.as_ref(), &[1u8; 32]); + } +} + /// Build a SetNewPrevHash SV2 message from a BraidpoolTemplate. /// Activates the Future Job sent by build_new_template. pub fn build_set_new_prev_hash( From 9c9db3347729a084a0b1e3770dc89d4438dcd49a Mon Sep 17 00:00:00 2001 From: nkatha23 Date: Fri, 23 Oct 2026 21:30:05 +0300 Subject: [PATCH 5/5] fix(template-provider): use stratum-core directly, drop stratum-apps dep stratum-apps features=[pool] transitively enables bitcoin_core_sv2, which currently fails to compile against stratum-core. Depend on stratum-core directly to sidestep the transitive dependency. --- Cargo.lock | 2595 ++++++++++++++++- .../braidpool-template-provider/Cargo.toml | 2 +- .../braidpool-template-provider/src/lib.rs | 2 +- .../src/sv2_messages.rs | 2 +- 4 files changed, 2543 insertions(+), 58 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index cea7f03bb..460626491 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -26,7 +26,7 @@ checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", "cipher", - "cpufeatures", + "cpufeatures 0.2.17", ] [[package]] @@ -70,6 +70,21 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" +[[package]] +name = "android_system_properties" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae221649c9976a6f6c56ae1facf410f3ddb33cc661c4b7b61020a912d4237fbc" +dependencies = [ + "libc", +] + +[[package]] +name = "anes" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" + [[package]] name = "anstream" version = "1.0.0" @@ -106,7 +121,7 @@ version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ - "windows-sys", + "windows-sys 0.61.2", ] [[package]] @@ -117,9 +132,15 @@ checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys", + "windows-sys 0.61.2", ] +[[package]] +name = "anyhow" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" + [[package]] name = "arbitrary" version = "1.4.2" @@ -156,6 +177,501 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16" +[[package]] +name = "asic-rs" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc00482ee6d0a0c0865e509e1b01d560d203683e3c273878462c7ac6433dc900" +dependencies = [ + "anyhow", + "asic-rs-core", + "asic-rs-firmwares-antminer", + "asic-rs-firmwares-auradine", + "asic-rs-firmwares-avalonminer", + "asic-rs-firmwares-bitaxe", + "asic-rs-firmwares-braiins", + "asic-rs-firmwares-epic", + "asic-rs-firmwares-futurebit", + "asic-rs-firmwares-luxminer", + "asic-rs-firmwares-marathon", + "asic-rs-firmwares-nerdaxe", + "asic-rs-firmwares-proto", + "asic-rs-firmwares-sealminer", + "asic-rs-firmwares-vnish", + "asic-rs-firmwares-whatsminer", + "asic-rs-makes-antminer", + "asic-rs-makes-auradine", + "asic-rs-makes-avalon", + "asic-rs-makes-bitaxe", + "asic-rs-makes-braiins", + "asic-rs-makes-epic", + "asic-rs-makes-futurebit", + "asic-rs-makes-marathon", + "asic-rs-makes-nerdaxe", + "asic-rs-makes-proto", + "asic-rs-makes-sealminer", + "asic-rs-makes-whatsminer", + "async-stream", + "futures", + "ipnet", + "measurements", + "pyo3-build-config", + "rand 0.10.3", + "rlimit", + "serde", + "serde_json", + "tokio", + "tokio-stream", + "tracing", +] + +[[package]] +name = "asic-rs-core" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2c8bab71c78559b2a274f346b93c432a86a765fdb1b89d67d840293a07d1da6" +dependencies = [ + "anyhow", + "async-trait", + "futures", + "macaddr", + "measurements", + "reqwest", + "secrecy", + "semver", + "serde", + "serde_json", + "strum", + "tokio", + "tracing", + "url", +] + +[[package]] +name = "asic-rs-firmwares-antminer" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c3da4344fd4c0d5a46a74b59a3b1434b67b97721d69c4455e8b577417af428" +dependencies = [ + "anyhow", + "asic-rs-core", + "asic-rs-makes-antminer", + "async-trait", + "chrono", + "crc32fast", + "diqwest", + "macaddr", + "measurements", + "once_cell", + "reqwest", + "semver", + "serde_json", + "tokio", +] + +[[package]] +name = "asic-rs-firmwares-auradine" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "714e4c1089c8c045f522f2a3dc158cb9d00af82e69fdec7c5e13f88a38671799" +dependencies = [ + "anyhow", + "asic-rs-core", + "asic-rs-makes-auradine", + "async-trait", + "macaddr", + "measurements", + "once_cell", + "reqwest", + "semver", + "serde_json", + "tokio", +] + +[[package]] +name = "asic-rs-firmwares-avalonminer" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "615ddfde0b49afcd65eaf9ff2d786cd28e8ac99629c9077a1e17801f40f3e2d9" +dependencies = [ + "anyhow", + "asic-rs-core", + "asic-rs-makes-avalon", + "async-trait", + "macaddr", + "measurements", + "regex", + "semver", + "serde_json", + "tokio", +] + +[[package]] +name = "asic-rs-firmwares-bitaxe" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c11a41114e4b1dabbacf6e9cdba40e3f1090ab0bfe57acc27ffdebe4362c9322" +dependencies = [ + "anyhow", + "asic-rs-core", + "asic-rs-makes-bitaxe", + "async-trait", + "macaddr", + "measurements", + "once_cell", + "reqwest", + "semver", + "serde_json", + "tokio", +] + +[[package]] +name = "asic-rs-firmwares-braiins" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f66adaab2657790181a9ca5bab133499d7876ffe862605cb002371313206f1c9" +dependencies = [ + "anyhow", + "asic-rs-core", + "asic-rs-makes-antminer", + "asic-rs-makes-braiins", + "async-trait", + "chrono", + "macaddr", + "measurements", + "once_cell", + "reqwest", + "semver", + "serde_json", + "tokio", +] + +[[package]] +name = "asic-rs-firmwares-epic" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1658b2f7b358af09f48f8e8711cfea77f0295d5bb20b09a49f5e40fc8d2c7bf2" +dependencies = [ + "anyhow", + "asic-rs-core", + "asic-rs-makes-antminer", + "asic-rs-makes-epic", + "asic-rs-makes-whatsminer", + "async-trait", + "macaddr", + "measurements", + "once_cell", + "reqwest", + "semver", + "serde_json", + "sha2 0.10.9", + "tokio", + "tracing", +] + +[[package]] +name = "asic-rs-firmwares-futurebit" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b8cf8eadf6dcf1a198a60682c586fecd279a5d8e98e62917d9bcb6d96dd4107" +dependencies = [ + "anyhow", + "asic-rs-core", + "asic-rs-makes-futurebit", + "async-trait", + "macaddr", + "measurements", + "once_cell", + "reqwest", + "semver", + "serde_json", + "tokio", +] + +[[package]] +name = "asic-rs-firmwares-luxminer" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fde4154b7467ca0224594aa53ad6ff41f1e7d2526604684c492c58d6ecb4157" +dependencies = [ + "anyhow", + "asic-rs-core", + "asic-rs-makes-antminer", + "async-trait", + "macaddr", + "measurements", + "semver", + "serde_json", + "tokio", +] + +[[package]] +name = "asic-rs-firmwares-marathon" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49611f22ce457dc6ad98a3b5307fd4167113520df1c4fde8e935ea2293a61c68" +dependencies = [ + "anyhow", + "asic-rs-core", + "asic-rs-makes-antminer", + "asic-rs-makes-marathon", + "async-trait", + "diqwest", + "macaddr", + "measurements", + "once_cell", + "reqwest", + "semver", + "serde_json", +] + +[[package]] +name = "asic-rs-firmwares-nerdaxe" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2a33d2d51beee25bb829a018f78c2d95b1aed5fd669ba83b33e2ca7fcb51096" +dependencies = [ + "anyhow", + "asic-rs-core", + "asic-rs-makes-nerdaxe", + "async-trait", + "macaddr", + "measurements", + "once_cell", + "reqwest", + "semver", + "serde_json", + "tokio", +] + +[[package]] +name = "asic-rs-firmwares-proto" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87d4718b79c5456bd718a83febc5d3e47147db7afa9183a5d6969ab288e7de43" +dependencies = [ + "anyhow", + "asic-rs-core", + "asic-rs-makes-proto", + "async-trait", + "macaddr", + "measurements", + "once_cell", + "reqwest", + "semver", + "serde_json", + "tokio", + "tracing", +] + +[[package]] +name = "asic-rs-firmwares-sealminer" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb7767f55bbe8c1488eba389c32e49a1cf55c5c7759e01f1ffa77818017fbf2f" +dependencies = [ + "anyhow", + "asic-rs-core", + "asic-rs-makes-sealminer", + "async-trait", + "macaddr", + "measurements", + "once_cell", + "reqwest", + "semver", + "serde_json", + "tokio", +] + +[[package]] +name = "asic-rs-firmwares-vnish" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ee24365b23a918effa41215dfbb5d48e9594ec248035d50ef7eaa1309ff2fa" +dependencies = [ + "anyhow", + "asic-rs-core", + "asic-rs-makes-antminer", + "async-trait", + "macaddr", + "measurements", + "once_cell", + "reqwest", + "semver", + "serde_json", + "tokio", +] + +[[package]] +name = "asic-rs-firmwares-whatsminer" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec8e7f78b593ddbbc700ad431877ba381598b1151c1ff6270dfc83db87184c6" +dependencies = [ + "aes", + "anyhow", + "asic-rs-core", + "asic-rs-makes-whatsminer", + "async-trait", + "base64 0.22.1", + "chrono", + "ecb", + "hex", + "macaddr", + "md5", + "md5crypt", + "measurements", + "semver", + "serde_json", + "sha2 0.10.9", + "tokio", + "tracing", +] + +[[package]] +name = "asic-rs-makes-antminer" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a29c91f048286e3e65c4b435d1598e0b30499df14bebf2238ce369474e2059e" +dependencies = [ + "asic-rs-core", + "serde", + "serde_json", + "strum", +] + +[[package]] +name = "asic-rs-makes-auradine" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86553407758b5c4081745ee465c13febfbcebd45233d809209d5ed492e5a890a" +dependencies = [ + "asic-rs-core", + "serde", + "serde_json", + "strum", +] + +[[package]] +name = "asic-rs-makes-avalon" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed457d4963c425039abe21987ff1d70e8d5f0e1fad8f0ae02a9ba77306c96f8e" +dependencies = [ + "asic-rs-core", + "serde", + "serde_json", + "strum", +] + +[[package]] +name = "asic-rs-makes-bitaxe" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9648961614946d9e5af27d7b54bdfcc5b18b85f26ff660af3ebef0e53f315496" +dependencies = [ + "asic-rs-core", + "serde", + "serde_json", + "strum", +] + +[[package]] +name = "asic-rs-makes-braiins" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f71017e0e12f2b8fddb023f0f2da25d09dcf46d49a4caf8117a6bd4c1a5ea4c" +dependencies = [ + "asic-rs-core", + "serde", + "serde_json", + "strum", +] + +[[package]] +name = "asic-rs-makes-epic" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0f9735452900e274a7eaaa9eb320daccf5c1680625295907171c9a8bf88986" +dependencies = [ + "asic-rs-core", + "serde", + "serde_json", + "strum", +] + +[[package]] +name = "asic-rs-makes-futurebit" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccedd3ba1806b43ef7841d66aa892aa6229be5752bf085cc7fa5f17647dd2e55" +dependencies = [ + "asic-rs-core", + "serde", + "serde_json", + "strum", +] + +[[package]] +name = "asic-rs-makes-marathon" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b00248ef815bc1f81d81fc0e1b2da9a57fd3413c543f2ed792e5b5783d99ddd7" +dependencies = [ + "asic-rs-core", + "serde", + "serde_json", + "strum", +] + +[[package]] +name = "asic-rs-makes-nerdaxe" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a53e275492085cbf0f6c7f6418caf598ff7c3e38cf204f2af77570e57974687b" +dependencies = [ + "asic-rs-core", + "serde", + "serde_json", + "strum", +] + +[[package]] +name = "asic-rs-makes-proto" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8da6222dc810bf58744623e2420874bde2c3ce1d03c42389ed12f9cb3cc718ef" +dependencies = [ + "asic-rs-core", + "serde", + "serde_json", + "strum", +] + +[[package]] +name = "asic-rs-makes-sealminer" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ec972bdcafd3a52c86ffa39b60ae096488fc61aabb12af984b8b1964028112" +dependencies = [ + "asic-rs-core", + "serde", + "serde_json", + "strum", +] + +[[package]] +name = "asic-rs-makes-whatsminer" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f1c46481710544877ba044e0b5fa9ead3114051208918b1ef6a444d6590fca1" +dependencies = [ + "asic-rs-core", + "serde", + "serde_json", + "strum", +] + [[package]] name = "async-channel" version = "1.9.0" @@ -163,10 +679,233 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" dependencies = [ "concurrent-queue", - "event-listener", + "event-listener 2.5.3", + "futures-core", +] + +[[package]] +name = "async-channel" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" +dependencies = [ + "concurrent-queue", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-compression" +version = "0.4.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d5755640120b24961f8231e05892e4a4f7e0d04e8aeca161508c9c397946970" +dependencies = [ + "compression-codecs", + "compression-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "async-executor" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c96bf972d85afc50bf5ab8fe2d54d1586b4e0b46c97c50a0c9e71e2f7bcd812a" +dependencies = [ + "async-task", + "concurrent-queue", + "fastrand 2.5.0", + "futures-lite 2.6.1", + "pin-project-lite", + "slab", +] + +[[package]] +name = "async-fs" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" +dependencies = [ + "async-lock 2.8.0", + "autocfg", + "blocking", + "futures-lite 1.13.0", +] + +[[package]] +name = "async-global-executor" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c" +dependencies = [ + "async-channel 2.5.0", + "async-executor", + "async-io 2.6.0", + "async-lock 3.4.2", + "blocking", + "futures-lite 2.6.1", + "once_cell", +] + +[[package]] +name = "async-io" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" +dependencies = [ + "async-lock 2.8.0", + "autocfg", + "cfg-if", + "concurrent-queue", + "futures-lite 1.13.0", + "log", + "parking", + "polling 2.8.0", + "rustix 0.37.28", + "slab", + "socket2 0.4.10", + "waker-fn", +] + +[[package]] +name = "async-io" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" +dependencies = [ + "autocfg", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite 2.6.1", + "parking", + "polling 3.11.0", + "rustix 1.1.5", + "slab", + "windows-sys 0.61.2", +] + +[[package]] +name = "async-lock" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" +dependencies = [ + "event-listener 2.5.3", +] + +[[package]] +name = "async-lock" +version = "3.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311" +dependencies = [ + "event-listener 5.4.2", + "event-listener-strategy", + "pin-project-lite", +] + +[[package]] +name = "async-net" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0434b1ed18ce1cf5769b8ac540e33f01fa9471058b5e89da9e06f3c882a8c12f" +dependencies = [ + "async-io 1.13.0", + "blocking", + "futures-lite 1.13.0", +] + +[[package]] +name = "async-process" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" +dependencies = [ + "async-io 1.13.0", + "async-lock 2.8.0", + "async-signal", + "blocking", + "cfg-if", + "event-listener 3.1.0", + "futures-lite 1.13.0", + "rustix 0.38.44", + "windows-sys 0.48.0", +] + +[[package]] +name = "async-signal" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52b5aaafa020cf5053a01f2a60e8ff5dccf550f0f77ec54a4e47285ac2bab485" +dependencies = [ + "async-io 2.6.0", + "async-lock 3.4.2", + "atomic-waker", + "cfg-if", "futures-core", + "futures-io", + "rustix 1.1.5", + "signal-hook-registry", + "slab", + "windows-sys 0.61.2", ] +[[package]] +name = "async-std" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c8e079a4ab67ae52b7403632e4618815d6db36d2a010cfe41b02c1b1578f93b" +dependencies = [ + "async-channel 1.9.0", + "async-global-executor", + "async-io 2.6.0", + "async-lock 3.4.2", + "crossbeam-utils", + "futures-channel", + "futures-core", + "futures-io", + "futures-lite 2.6.1", + "gloo-timers", + "kv-log-macro", + "log", + "memchr", + "once_cell", + "pin-project-lite", + "pin-utils", + "slab", + "wasm-bindgen-futures", +] + +[[package]] +name = "async-stream" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "async-task" +version = "4.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" + [[package]] name = "async-trait" version = "0.1.89" @@ -190,6 +929,29 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +[[package]] +name = "aws-lc-rs" +version = "1.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faac5829c2b74c28f830747e7818ccfb684261b5f48a1118b1e2a13d36dfab13" +dependencies = [ + "aws-lc-sys", + "zeroize", +] + +[[package]] +name = "aws-lc-sys" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1622d8446a2d4b2ce0c7eefc73dd43a99779028d5ee5c2dd8073a658ba8a2bc" +dependencies = [ + "cc", + "cmake", + "dunce", + "fs_extra", + "pkg-config", +] + [[package]] name = "axum" version = "0.8.8" @@ -252,6 +1014,12 @@ dependencies = [ "bitcoin_hashes 0.14.1", ] +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + [[package]] name = "base64" version = "0.21.7" @@ -264,6 +1032,12 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "base64" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" + [[package]] name = "bech32" version = "0.11.1" @@ -286,6 +1060,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e499f9fc0407f50fe98af744ab44fa67d409f76b6772e1689ec8485eb0c0f66" dependencies = [ "base58ck", + "base64 0.21.7", "bech32", "bitcoin-internals 0.3.0", "bitcoin-io", @@ -352,9 +1127,9 @@ dependencies = [ [[package]] name = "bitcoin_core_sv2" -version = "0.5.0" +version = "0.7.0" dependencies = [ - "async-channel", + "async-channel 1.9.0", "bitcoin-capnp-types 0.1.2", "bitcoin-capnp-types 0.2.1", "stratum-core", @@ -385,6 +1160,12 @@ dependencies = [ "serde", ] +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + [[package]] name = "bitflags" version = "2.11.0" @@ -424,6 +1205,28 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block-padding" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" +dependencies = [ + "generic-array", +] + +[[package]] +name = "blocking" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a70e4329df6cb94385eed412ec92375c3cdd8a6e502493d1229b6414e4036dfa" +dependencies = [ + "async-channel 2.5.0", + "async-task", + "futures-io", + "futures-lite 2.6.1", + "piper", +] + [[package]] name = "braidpool-common" version = "0.1.0" @@ -432,10 +1235,10 @@ version = "0.1.0" name = "braidpool-template-provider" version = "0.1.0" dependencies = [ - "async-channel", + "async-channel 1.9.0", "bitcoin", "braidpool-common", - "stratum-apps", + "stratum-core", "tokio", "tokio-util", "tracing", @@ -522,6 +1325,12 @@ dependencies = [ "capnp", ] +[[package]] +name = "cast" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" + [[package]] name = "cc" version = "1.2.58" @@ -529,6 +1338,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1e928d4b69e3077709075a938a05ffbedfa53a84c8f766efbf8220bb1ff60e1" dependencies = [ "find-msvc-tools", + "jobserver", + "libc", "shlex", ] @@ -538,6 +1349,12 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" +[[package]] +name = "cfg_aliases" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527" + [[package]] name = "chacha20" version = "0.9.1" @@ -546,7 +1363,18 @@ checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" dependencies = [ "cfg-if", "cipher", - "cpufeatures", + "cpufeatures 0.2.17", +] + +[[package]] +name = "chacha20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65c35e4b699c7e15ccbe7ee35c005e4fc0a278d22238a2857e6ce2dadeda1b06" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.1", + "rand_core 0.10.1", ] [[package]] @@ -556,7 +1384,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" dependencies = [ "aead", - "chacha20", + "chacha20 0.9.1", "cipher", "poly1305", "zeroize", @@ -575,11 +1403,51 @@ dependencies = [ "tracing", ] +[[package]] +name = "chrono" +version = "0.4.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327" +dependencies = [ + "iana-time-zone", + "js-sys", + "num-traits", + "wasm-bindgen", + "windows-link", +] + [[package]] name = "chunked_transfer" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e4de3bc4ea267985becf712dc6d9eed8b04c953b3fcfb339ebc87acd9804901" +checksum = "6e4de3bc4ea267985becf712dc6d9eed8b04c953b3fcfb339ebc87acd9804901" + +[[package]] +name = "ciborium" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde", +] + +[[package]] +name = "ciborium-io" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" + +[[package]] +name = "ciborium-ll" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" +dependencies = [ + "ciborium-io", + "half", +] [[package]] name = "cipher" @@ -632,6 +1500,15 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" +[[package]] +name = "cmake" +version = "0.1.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678" +dependencies = [ + "cc", +] + [[package]] name = "codec_sv2" version = "7.0.0" @@ -641,7 +1518,7 @@ dependencies = [ "buffer_sv2", "framing_sv2", "noise_sv2", - "rand", + "rand 0.8.5", "tracing", ] @@ -657,7 +1534,17 @@ version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "faf9468729b8cbcea668e36183cb69d317348c2e08e994829fb56ebfdfbaac34" dependencies = [ - "windows-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "combine" +version = "4.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4356eba6976435498d05a311ee9fc486da3bc81c200d3f0d7dd9703b41913f92" +dependencies = [ + "bytes", + "memchr", ] [[package]] @@ -668,6 +1555,23 @@ dependencies = [ "binary_sv2", ] +[[package]] +name = "compression-codecs" +version = "0.4.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cae36683101b2899f48bd31f8db9839437356188e3b1ff23096e73dab09ba8fe" +dependencies = [ + "compression-core", + "flate2", + "memchr", +] + +[[package]] +name = "compression-core" +version = "0.4.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ebdda89edc534bf8d5dd2857562633b6495557e5846552ade994b99ed13c36a" + [[package]] name = "concurrent-queue" version = "2.5.0" @@ -692,7 +1596,7 @@ dependencies = [ "rust-ini", "serde", "serde_json", - "toml", + "toml 0.8.23", "yaml-rust2", ] @@ -711,7 +1615,7 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" dependencies = [ - "getrandom", + "getrandom 0.2.17", "once_cell", "tiny-keccak", ] @@ -745,6 +1649,61 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "corepc-client" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c6b8eaeccd3df6c1f264cd6ff8cf5df7d056029473ce9551b2a6257832d38e0" +dependencies = [ + "bitcoin", + "corepc-types", + "jsonrpc", + "log", + "serde", + "serde_json", +] + +[[package]] +name = "corepc-node" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2bcc6e09458f052024ec36e4728bd5619e248643da6175876eb3b10ca6d4d86" +dependencies = [ + "anyhow", + "corepc-client", + "log", + "serde_json", + "tempfile", + "which", +] + +[[package]] +name = "corepc-types" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4bc664fdaeeae1eaf459edb88650af3009b758010fc69b423c5b38142446cfb" +dependencies = [ + "bitcoin", + "serde", + "serde_json", +] + [[package]] name = "cpufeatures" version = "0.2.17" @@ -754,6 +1713,15 @@ dependencies = [ "libc", ] +[[package]] +name = "cpufeatures" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca28b0ae3115b884660db4118d803791fd6756b6e88f39c0f3f7859060d7566" +dependencies = [ + "libc", +] + [[package]] name = "crc32fast" version = "1.5.0" @@ -763,6 +1731,45 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "criterion" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" +dependencies = [ + "anes", + "async-std", + "cast", + "ciborium", + "clap", + "criterion-plot", + "csv", + "futures", + "is-terminal", + "itertools", + "num-traits", + "once_cell", + "oorandom", + "regex", + "serde", + "serde_derive", + "serde_json", + "smol", + "tinytemplate", + "tokio", + "walkdir", +] + +[[package]] +name = "criterion-plot" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" +dependencies = [ + "cast", + "itertools", +] + [[package]] name = "crossbeam-channel" version = "0.5.15" @@ -794,6 +1801,27 @@ dependencies = [ "typenum", ] +[[package]] +name = "csv" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52cd9d68cf7efc6ddfaaee42e7288d3a99d613d4b50f76ce9827ae0c6e14f938" +dependencies = [ + "csv-core", + "itoa", + "ryu", + "serde_core", +] + +[[package]] +name = "csv-core" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "704a3c26996a80471189265814dbc2c257598b96b8a7feae2d31ace646bb9782" +dependencies = [ + "memchr", +] + [[package]] name = "ctr" version = "0.9.2" @@ -852,6 +1880,30 @@ dependencies = [ "crypto-common", ] +[[package]] +name = "digest_auth" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3054f4e81d395e50822796c5e99ca522e6ba7be98947d6d4b0e5e61640bdb894" +dependencies = [ + "digest 0.10.7", + "hex", + "md-5", + "rand 0.8.5", + "sha2 0.10.9", +] + +[[package]] +name = "diqwest" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d10611d0d3ed31b33e13ec3e31329aa2053aa4f773eb082b597f39a97e68360" +dependencies = [ + "digest_auth", + "reqwest", + "url", +] + [[package]] name = "dirs" version = "6.0.0" @@ -880,7 +1932,7 @@ dependencies = [ "libc", "option-ext", "redox_users 0.5.2", - "windows-sys", + "windows-sys 0.61.2", ] [[package]] @@ -914,6 +1966,27 @@ dependencies = [ "const-random", ] +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "ecb" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a8bfa975b1aec2145850fcaa1c6fe269a16578c44705a532ae3edc92b8881c7" +dependencies = [ + "cipher", +] + +[[package]] +name = "either" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e9c71c2167ca323c882b99918929403426e2373ea17242ff5653e0d5e1058be" + [[package]] name = "embedded-io" version = "0.7.1" @@ -948,7 +2021,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys", + "windows-sys 0.61.2", ] [[package]] @@ -957,6 +2030,37 @@ version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" +[[package]] +name = "event-listener" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener" +version = "5.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a23add41df1562121a9393cb065eab5146a1242410f23a644851e90cfd669d2" +dependencies = [ + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" +dependencies = [ + "event-listener 5.4.2", + "pin-project-lite", +] + [[package]] name = "extensions_sv2" version = "0.3.0" @@ -975,6 +2079,21 @@ dependencies = [ "once_cell", ] +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + +[[package]] +name = "fastrand" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223" + [[package]] name = "find-msvc-tools" version = "0.1.9" @@ -988,7 +2107,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ "byteorder", - "rand", + "rand 0.8.5", "rustc-hex", "static_assertions", ] @@ -999,6 +2118,7 @@ version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" dependencies = [ + "crc32fast", "miniz_oxide", "zlib-rs", ] @@ -1028,6 +2148,12 @@ dependencies = [ "noise_sv2", ] +[[package]] +name = "fs_extra" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" + [[package]] name = "funty" version = "2.0.0" @@ -1082,6 +2208,34 @@ version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" +[[package]] +name = "futures-lite" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" +dependencies = [ + "fastrand 1.9.0", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", +] + +[[package]] +name = "futures-lite" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" +dependencies = [ + "fastrand 2.5.0", + "futures-core", + "futures-io", + "parking", + "pin-project-lite", +] + [[package]] name = "futures-macro" version = "0.3.32" @@ -1139,8 +2293,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" dependencies = [ "cfg-if", + "js-sys", "libc", "wasi", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "r-efi", + "rand_core 0.10.1", + "wasm-bindgen", ] [[package]] @@ -1153,6 +2323,28 @@ dependencies = [ "polyval", ] +[[package]] +name = "gloo-timers" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "half" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872" +dependencies = [ + "cfg-if", + "crunchy", +] + [[package]] name = "handlers_sv2" version = "0.6.0" @@ -1210,6 +2402,12 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + [[package]] name = "hermit-abi" version = "0.5.2" @@ -1351,6 +2549,22 @@ dependencies = [ "pin-utils", "smallvec", "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfa8e654703247911e29c23fbeaa261834bd9bb74efba2f9acddc37bfb127f53" +dependencies = [ + "http", + "hyper", + "hyper-util", + "rustls 0.23.46", + "tokio", + "tokio-rustls", + "tower-service", ] [[package]] @@ -1359,13 +2573,45 @@ version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" dependencies = [ + "base64 0.22.1", "bytes", + "futures-channel", + "futures-util", "http", "http-body", "hyper", + "ipnet", + "libc", + "percent-encoding", "pin-project-lite", + "socket2 0.6.3", "tokio", "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", ] [[package]] @@ -1514,18 +2760,75 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" dependencies = [ + "block-padding", "generic-array", ] +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "integration_tests_sv2" +version = "0.7.0" +dependencies = [ + "async-channel 1.9.0", + "clap", + "corepc-node", + "criterion", + "half", + "hex", + "jd_client_sv2", + "libc", + "minreq", + "num-format", + "num_cpus", + "once_cell", + "pool_sv2", + "primitive-types", + "rand 0.8.5", + "serde", + "serde_json", + "sha2 0.10.9", + "stratum-apps", + "tokio", + "tokio-util", + "tracing", + "tracing-subscriber", + "translator_sv2", +] + +[[package]] +name = "io-lifetimes" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +dependencies = [ + "hermit-abi 0.3.9", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "ipnet" +version = "2.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "791930b43c0d5973160d90a8f3894509f2b273430f5c5c73b668636d0287c5c0" + [[package]] name = "is-terminal" version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46" dependencies = [ - "hermit-abi", + "hermit-abi 0.5.2", "libc", - "windows-sys", + "windows-sys 0.61.2", ] [[package]] @@ -1534,17 +2837,42 @@ version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" +[[package]] +name = "jd_client_sv2" +version = "0.7.0" +dependencies = [ + "async-channel 1.9.0", + "clap", + "config", + "hex", + "hotpath", + "serde", + "stratum-apps", + "tokio", + "toml 1.1.8+spec-1.1.0", + "tracing", +] + [[package]] name = "jd_server_sv2" -version = "0.6.0" +version = "0.7.0" dependencies = [ - "async-channel", + "async-channel 1.9.0", "async-trait", "hotpath", "serde", @@ -1553,6 +2881,55 @@ dependencies = [ "tracing", ] +[[package]] +name = "jni" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498" +dependencies = [ + "cfg-if", + "combine", + "jni-macros", + "jni-sys", + "log", + "simd_cesu8", + "thiserror 2.0.18", + "walkdir", + "windows-link", +] + +[[package]] +name = "jni-macros" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3" +dependencies = [ + "proc-macro2", + "quote", + "rustc_version", + "simd_cesu8", + "syn", +] + +[[package]] +name = "jni-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" +dependencies = [ + "jni-sys-macros", +] + +[[package]] +name = "jni-sys-macros" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" +dependencies = [ + "quote", + "syn", +] + [[package]] name = "job_declaration_sv2" version = "10.0.0" @@ -1561,12 +2938,24 @@ dependencies = [ "binary_sv2", ] +[[package]] +name = "jobserver" +version = "0.1.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c00acbd29eabad4a2392fa0e921c874934dbbf4194312ad20f04a0ed67a3cb3" +dependencies = [ + "getrandom 0.4.3", + "libc", +] + [[package]] name = "js-sys" version = "0.3.92" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc4c90f45aa2e6eacbe8645f77fdea542ac97a494bcd117a67df9ff4d611f995" dependencies = [ + "cfg-if", + "futures-util", "once_cell", "wasm-bindgen", ] @@ -1582,6 +2971,27 @@ dependencies = [ "serde", ] +[[package]] +name = "jsonrpc" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3662a38d341d77efecb73caf01420cfa5aa63c0253fd7bc05289ef9f6616e1bf" +dependencies = [ + "base64 0.13.1", + "minreq", + "serde", + "serde_json", +] + +[[package]] +name = "kv-log-macro" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" +dependencies = [ + "log", +] + [[package]] name = "lazy_static" version = "1.5.0" @@ -1594,6 +3004,12 @@ version = "0.2.183" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d" +[[package]] +name = "libm" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" + [[package]] name = "libredox" version = "0.1.15" @@ -1603,6 +3019,24 @@ dependencies = [ "libc", ] +[[package]] +name = "linux-raw-sys" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" + +[[package]] +name = "linux-raw-sys" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" + +[[package]] +name = "linux-raw-sys" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" + [[package]] name = "litemap" version = "0.8.1" @@ -1623,6 +3057,24 @@ name = "log" version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" +dependencies = [ + "value-bag", +] + +[[package]] +name = "lru-slab" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4050469837a6ff301cd14c1f8f24f88549e6d548f24f64e2148eb0f72cebc51f" + +[[package]] +name = "macaddr" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baee0bbc17ce759db233beb01648088061bf678383130602a298e6998eedb2d8" +dependencies = [ + "serde", +] [[package]] name = "mach2" @@ -1645,6 +3097,41 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest 0.10.7", +] + +[[package]] +name = "md5" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ebb8d8732c6a6df3d8f032a82911cfc747e00efb95cc46e8d0acd5b5b88570c" + +[[package]] +name = "md5crypt" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8db1a978f99f584f2e72601860f68bb2cea9c09f4408f5e83f805db3434fb0" +dependencies = [ + "md5", +] + +[[package]] +name = "measurements" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f72b38901c571007811f0483e64a7e215ac9e6e3688e9f83705a717621d81513" +dependencies = [ + "libm", + "serde", +] + [[package]] name = "memchr" version = "2.8.0" @@ -1702,6 +3189,19 @@ dependencies = [ "simd-adler32", ] +[[package]] +name = "minreq" +version = "2.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05015102dad0f7d61691ca347e9d9d9006685a64aefb3d79eecf62665de2153d" +dependencies = [ + "rustls 0.21.12", + "rustls-webpki 0.101.7", + "serde", + "serde_json", + "webpki-roots", +] + [[package]] name = "mio" version = "1.2.0" @@ -1710,7 +3210,7 @@ checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" dependencies = [ "libc", "wasi", - "windows-sys", + "windows-sys 0.61.2", ] [[package]] @@ -1719,7 +3219,7 @@ version = "2.0.0" source = "git+https://github.com/stratum-mining/stratum?branch=main#ca3cc83af17c470caae2fa7ae39901957b27aee7" dependencies = [ "chacha20poly1305", - "rand", + "rand 0.8.5", "secp256k1 0.28.2", "zeroize", ] @@ -1740,7 +3240,17 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "num-format" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" +dependencies = [ + "arrayvec", + "itoa", ] [[package]] @@ -1752,6 +3262,16 @@ dependencies = [ "autocfg", ] +[[package]] +name = "num_cpus" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" +dependencies = [ + "hermit-abi 0.5.2", + "libc", +] + [[package]] name = "once_cell" version = "1.21.4" @@ -1764,12 +3284,24 @@ version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" +[[package]] +name = "oorandom" +version = "11.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" + [[package]] name = "opaque-debug" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" +[[package]] +name = "openssl-probe" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" + [[package]] name = "option-ext" version = "0.2.0" @@ -1814,6 +3346,12 @@ dependencies = [ "syn", ] +[[package]] +name = "parking" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" + [[package]] name = "parking_lot" version = "0.12.5" @@ -1918,13 +3456,60 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "piper" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c835479a4443ded371d6c535cbfd8d31ad92c5d23ae9770a61bc155e4992a3c1" +dependencies = [ + "atomic-waker", + "fastrand 2.5.0", + "futures-io", +] + +[[package]] +name = "pkg-config" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548" + +[[package]] +name = "polling" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" +dependencies = [ + "autocfg", + "bitflags 1.3.2", + "cfg-if", + "concurrent-queue", + "libc", + "log", + "pin-project-lite", + "windows-sys 0.48.0", +] + +[[package]] +name = "polling" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" +dependencies = [ + "cfg-if", + "concurrent-queue", + "hermit-abi 0.5.2", + "pin-project-lite", + "rustix 1.1.5", + "windows-sys 0.61.2", +] + [[package]] name = "poly1305" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" dependencies = [ - "cpufeatures", + "cpufeatures 0.2.17", "opaque-debug", "universal-hash", ] @@ -1936,16 +3521,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "opaque-debug", "universal-hash", ] [[package]] name = "pool_sv2" -version = "0.7.0" +version = "0.8.0" dependencies = [ - "async-channel", + "async-channel 1.9.0", "clap", "hex", "hotpath", @@ -2037,6 +3622,15 @@ version = "2.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" +[[package]] +name = "pyo3-build-config" +version = "0.28.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e368e7ddfdeb98c9bca7f8383be1648fd84ab466bf2bc015e94008db6d35611e" +dependencies = [ + "target-lexicon", +] + [[package]] name = "quanta" version = "0.12.6" @@ -2052,6 +3646,63 @@ dependencies = [ "winapi", ] +[[package]] +name = "quinn" +version = "0.11.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4051e23e9185c255a7e33ef59cdbca87a22d359052eecd22fc6b901fb37d9d11" +dependencies = [ + "bytes", + "cfg_aliases", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls 0.23.46", + "socket2 0.6.3", + "thiserror 2.0.18", + "tokio", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-proto" +version = "0.11.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e750cca55fe4f0439a15d0bb529da9651e79993e8e72c61a899a36d462befbe" +dependencies = [ + "aws-lc-rs", + "bytes", + "getrandom 0.4.3", + "lru-slab", + "rand 0.10.3", + "rand_pcg", + "ring", + "rustc-hash", + "rustls 0.23.46", + "rustls-pki-types", + "slab", + "thiserror 2.0.18", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af66907df18639dcf4db56ca65490cabc4b27a97dbadd96f2926cca73298f016" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2 0.6.3", + "tracing", + "windows-sys 0.61.2", +] + [[package]] name = "quote" version = "1.0.45" @@ -2061,6 +3712,12 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + [[package]] name = "radium" version = "0.7.0" @@ -2075,7 +3732,18 @@ checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", "rand_chacha", - "rand_core", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65c9fb96cbc91e3478eaae79a69fcd3f1ae4ad052e471fe6732fff548984b4af" +dependencies = [ + "chacha20 0.10.2", + "getrandom 0.4.3", + "rand_core 0.10.1", ] [[package]] @@ -2085,7 +3753,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.6.4", ] [[package]] @@ -2094,7 +3762,22 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom", + "getrandom 0.2.17", +] + +[[package]] +name = "rand_core" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" + +[[package]] +name = "rand_pcg" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "caa0f4137e1c0a72f4c651489402276c8e8e1cf081f3b0ba156d2cbeef09e86a" +dependencies = [ + "rand_core 0.10.1", ] [[package]] @@ -2103,7 +3786,7 @@ version = "11.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" dependencies = [ - "bitflags", + "bitflags 2.11.0", ] [[package]] @@ -2112,7 +3795,7 @@ version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags", + "bitflags 2.11.0", ] [[package]] @@ -2121,7 +3804,7 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ - "getrandom", + "getrandom 0.2.17", "libredox", "thiserror 1.0.69", ] @@ -2132,7 +3815,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" dependencies = [ - "getrandom", + "getrandom 0.2.17", "libredox", "thiserror 2.0.18", ] @@ -2166,6 +3849,70 @@ version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" +[[package]] +name = "reqwest" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16a1cfa75cc186dd73d5818e510e042e40927bccc9c236b061cea97e1eb08029" +dependencies = [ + "base64 0.23.1", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-util", + "js-sys", + "log", + "mime_guess", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls 0.23.46", + "rustls-pki-types", + "rustls-platform-verifier", + "serde", + "serde_json", + "sync_wrapper", + "tokio", + "tokio-rustls", + "tokio-util", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", +] + +[[package]] +name = "ring" +version = "0.17.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.17", + "libc", + "untrusted", + "windows-sys 0.52.0", +] + +[[package]] +name = "rlimit" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f35ee2729c56bb610f6dba436bf78135f728b7373bdffae2ec815b2d3eb98cc3" +dependencies = [ + "libc", +] + [[package]] name = "ron" version = "0.8.1" @@ -2173,7 +3920,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" dependencies = [ "base64 0.21.7", - "bitflags", + "bitflags 2.11.0", "serde", "serde_derive", ] @@ -2222,12 +3969,164 @@ dependencies = [ "ordered-multimap", ] +[[package]] +name = "rustc-hash" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d" + [[package]] name = "rustc-hex" version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.37.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "519165d378b97752ca44bbe15047d5d3409e875f39327546b42ac81d7e18c1b6" +dependencies = [ + "bitflags 1.3.2", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys 0.3.8", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustix" +version = "0.38.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" +dependencies = [ + "bitflags 2.11.0", + "errno", + "libc", + "linux-raw-sys 0.4.15", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustix" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891efababe418670775f199f0d233d84843c227a0949a883ce15b37c78d6629d" +dependencies = [ + "bitflags 2.11.0", + "errno", + "libc", + "linux-raw-sys 0.12.1", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustls" +version = "0.21.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" +dependencies = [ + "log", + "ring", + "rustls-webpki 0.101.7", + "sct", +] + +[[package]] +name = "rustls" +version = "0.23.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48e13bd8c0e9365c43cfa5c9e8f9ad49d3c8444926c9aac819e0e4dc503c8fdf" +dependencies = [ + "aws-lc-rs", + "once_cell", + "rustls-pki-types", + "rustls-webpki 0.103.16", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-native-certs" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a073f5dc7469f984c52ad2752b63b0807745133b6de880b7b64c1ac4c48aec4" +dependencies = [ + "openssl-probe", + "rustls-pki-types", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pki-types" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f4925028c7eb5d1fcdaf196971378ed9d2c1c4efc7dc5d011256f76c99c0a96" +dependencies = [ + "web-time", + "zeroize", +] + +[[package]] +name = "rustls-platform-verifier" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1167586491e2b18b8bfbb293e8180ec17c201c4f076d7cb3070ca964e7598f98" +dependencies = [ + "core-foundation", + "core-foundation-sys", + "jni", + "log", + "once_cell", + "rustls 0.23.46", + "rustls-native-certs", + "rustls-platform-verifier-android", + "rustls-webpki 0.103.16", + "security-framework", + "security-framework-sys", + "webpki-root-certs", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustls-platform-verifier-android" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eec689c0bc40ff2458a5977b6619cb718087084a18e02a131c599b62d05e1a5f" + +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustls-webpki" +version = "0.103.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4443b1b6d39d7c663139942cc4558262562d2c84123bb6282ef177009ca8b281" +dependencies = [ + "aws-lc-rs", + "ring", + "rustls-pki-types", + "untrusted", +] + [[package]] name = "rustversion" version = "1.0.22" @@ -2249,12 +4148,31 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "schannel" +version = "0.1.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cb23c424d8ee841bb4d813677ca237e2a610067d594fec130f87d6093495ab5" +dependencies = [ + "windows-sys 0.61.2", +] + [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring", + "untrusted", +] + [[package]] name = "secp256k1" version = "0.28.2" @@ -2262,7 +4180,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10" dependencies = [ "bitcoin_hashes 0.13.0", - "rand", + "rand 0.8.5", "secp256k1-sys 0.9.2", ] @@ -2273,7 +4191,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9465315bc9d4566e1724f0fffcbcc446268cb522e60f9a27bcded6b19c108113" dependencies = [ "bitcoin_hashes 0.14.1", - "rand", + "rand 0.8.5", "secp256k1-sys 0.10.1", "serde", ] @@ -2296,6 +4214,44 @@ dependencies = [ "cc", ] +[[package]] +name = "secrecy" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e891af845473308773346dc847b2c23ee78fe442e0472ac50e22a18a93d3ae5a" +dependencies = [ + "zeroize", +] + +[[package]] +name = "security-framework" +version = "3.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" +dependencies = [ + "bitflags 2.11.0", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" + [[package]] name = "serde" version = "1.0.228" @@ -2359,6 +4315,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_spanned" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e7523beb55eece201a2356bee0bbca0d1ab466c14c07703b2e0ee6d42cb0c2c" +dependencies = [ + "serde_core", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -2379,7 +4344,7 @@ checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" dependencies = [ "block-buffer 0.9.0", "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest 0.9.0", "opaque-debug", ] @@ -2391,8 +4356,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest 0.10.7", + "sha2-asm", +] + +[[package]] +name = "sha2-asm" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b845214d6175804686b2bd482bcffe96651bb2d1200742b712003504a2dac1ab" +dependencies = [ + "cc", ] [[package]] @@ -2435,6 +4410,22 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" +[[package]] +name = "simd_cesu8" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11031e251abf8611c80f460e19dbdeb54a66db918e49c65a7065b46ac7aec520" +dependencies = [ + "rustc_version", + "simdutf8", +] + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + [[package]] name = "slab" version = "0.4.12" @@ -2447,6 +4438,33 @@ version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +[[package]] +name = "smol" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13f2b548cd8447f8de0fdf1c592929f70f4fc7039a05e47404b0d096ec6987a1" +dependencies = [ + "async-channel 1.9.0", + "async-executor", + "async-fs", + "async-io 1.13.0", + "async-lock 2.8.0", + "async-net", + "async-process", + "blocking", + "futures-lite 1.13.0", +] + +[[package]] +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "socket2" version = "0.6.3" @@ -2454,7 +4472,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" dependencies = [ "libc", - "windows-sys", + "windows-sys 0.61.2", ] [[package]] @@ -2471,9 +4489,10 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stratum-apps" -version = "0.8.0" +version = "0.9.0" dependencies = [ - "async-channel", + "asic-rs", + "async-channel 1.9.0", "axum", "bitcoin_core_sv2", "bs58", @@ -2481,9 +4500,11 @@ dependencies = [ "dashmap", "dirs", "futures", + "http-body-util", + "hyper", "miniscript", "prometheus", - "rand", + "rand 0.8.5", "rustversion", "secp256k1 0.28.2", "serde", @@ -2492,6 +4513,7 @@ dependencies = [ "stratum-core", "tokio", "tokio-util", + "tower", "tracing", "tracing-subscriber", "utoipa", @@ -2516,21 +4538,71 @@ dependencies = [ "mining_sv2", "noise_sv2", "parsers_sv2", + "stratum_translation", + "sv1_api", "template_distribution_sv2", ] +[[package]] +name = "stratum_translation" +version = "0.5.0" +source = "git+https://github.com/stratum-mining/stratum?branch=main#ca3cc83af17c470caae2fa7ae39901957b27aee7" +dependencies = [ + "binary_sv2", + "bitcoin", + "channels_sv2", + "mining_sv2", + "serde_json", + "sv1_api", + "tracing", +] + [[package]] name = "strsim" version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" +[[package]] +name = "strum" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9628de9b8791db39ceda2b119bbe13134770b56c138ec1d3af810d045c04f9bd" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "subtle" version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" +[[package]] +name = "sv1_api" +version = "6.0.0" +source = "git+https://github.com/stratum-mining/stratum?branch=main#ca3cc83af17c470caae2fa7ae39901957b27aee7" +dependencies = [ + "binary_sv2", + "bitcoin", + "byteorder", + "serde", + "serde_json", + "tracing", +] + [[package]] name = "syn" version = "2.0.117" @@ -2547,6 +4619,9 @@ name = "sync_wrapper" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] [[package]] name = "synstructure" @@ -2565,6 +4640,24 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" +[[package]] +name = "target-lexicon" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca" + +[[package]] +name = "tempfile" +version = "3.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" +dependencies = [ + "fastrand 2.5.0", + "once_cell", + "rustix 1.1.5", + "windows-sys 0.61.2", +] + [[package]] name = "template_distribution_sv2" version = "7.0.0" @@ -2664,6 +4757,22 @@ dependencies = [ "zerovec", ] +[[package]] +name = "tinytemplate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "tinyvec" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd3ca314f692efd6c868f8408f53fe444634a845f96c028b97d35f6a1f79f0ee" + [[package]] name = "tokio" version = "1.50.0" @@ -2676,9 +4785,10 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.6.3", "tokio-macros", - "windows-sys", + "tracing", + "windows-sys 0.61.2", ] [[package]] @@ -2692,6 +4802,27 @@ dependencies = [ "syn", ] +[[package]] +name = "tokio-rustls" +version = "0.26.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9cc2678c2cdd569ef8215e2afd7954ada2ae20b4fdd2c5fe6139a3b02d105db" +dependencies = [ + "rustls 0.23.46", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3d06f0b082ba57c26b79407372e57cf2a1e28124f78e9479fe80322cf53420b" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + [[package]] name = "tokio-util" version = "0.7.18" @@ -2714,11 +4845,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", - "serde_spanned", + "serde_spanned 0.6.9", "toml_datetime 0.6.11", "toml_edit 0.22.27", ] +[[package]] +name = "toml" +version = "1.1.8+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20489e00e4d8741d6be680764cc12e270655e375a20d1011e844a9c3379e678d" +dependencies = [ + "indexmap", + "serde_core", + "serde_spanned 1.1.2", + "toml_datetime 1.1.2+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 1.0.0", +] + [[package]] name = "toml_datetime" version = "0.6.11" @@ -2730,9 +4876,9 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "1.1.0+spec-1.1.0" +version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97251a7c317e03ad83774a8752a7e81fb6067740609f75ea2b585b569a59198f" +checksum = "2b86d767906c6c42421dcba507eb9d203e779497710a47782a224bb871653053" dependencies = [ "serde_core", ] @@ -2745,7 +4891,7 @@ checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ "indexmap", "serde", - "serde_spanned", + "serde_spanned 0.6.9", "toml_datetime 0.6.11", "toml_write", "winnow 0.7.15", @@ -2758,16 +4904,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16bff38f1d86c47f9ff0647e6838d7bb362522bdf44006c7068c2b1e606f1f3c" dependencies = [ "indexmap", - "toml_datetime 1.1.0+spec-1.1.0", + "toml_datetime 1.1.2+spec-1.1.0", "toml_parser", "winnow 1.0.0", ] [[package]] name = "toml_parser" -version = "1.1.0+spec-1.1.0" +version = "1.1.5+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2334f11ee363607eb04df9b8fc8a13ca1715a72ba8662a26ac285c98aabb4011" +checksum = "baa693a8032d7e1cada7d0041e96126df243179ff061456783ac7f12bda4744c" dependencies = [ "winnow 1.0.0", ] @@ -2778,6 +4924,12 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" +[[package]] +name = "toml_writer" +version = "1.1.3+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06bdbd8cfc056b8d2e2e85f29b56a3bdbecb527cef81eb39e3e7b98af4652770" + [[package]] name = "tower" version = "0.5.3" @@ -2794,6 +4946,29 @@ dependencies = [ "tracing", ] +[[package]] +name = "tower-http" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" +dependencies = [ + "async-compression", + "bitflags 2.11.0", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-body-util", + "pin-project-lite", + "tokio", + "tokio-util", + "tower", + "tower-layer", + "tower-service", + "url", +] + [[package]] name = "tower-layer" version = "0.3.3" @@ -2879,6 +5054,31 @@ dependencies = [ "syn", ] +[[package]] +name = "translator_sv2" +version = "0.7.0" +dependencies = [ + "async-channel 1.9.0", + "clap", + "config", + "hex", + "hotpath", + "serde", + "serde_json", + "sha2 0.10.9", + "stratum-apps", + "tokio", + "tokio-util", + "toml 1.1.8+spec-1.1.0", + "tracing", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + [[package]] name = "typenum" version = "1.19.0" @@ -2943,6 +5143,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + [[package]] name = "url" version = "2.5.8" @@ -3022,12 +5228,24 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" +[[package]] +name = "value-bag" +version = "1.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2799ffb329a792ecfd902b71306c8a815a6ef1c0470fa9953a6aa4d4cecbe511" + [[package]] name = "version_check" version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +[[package]] +name = "waker-fn" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" + [[package]] name = "walkdir" version = "2.5.0" @@ -3038,6 +5256,15 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "want" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec4cdd0dd910afe868b7ef477227d8d538b46b3075031afee8a9f2acb0a2ed0b" +dependencies = [ + "try-lock", +] + [[package]] name = "wasi" version = "0.11.1+wasi-snapshot-preview1" @@ -3057,6 +5284,16 @@ dependencies = [ "wasm-bindgen-shared", ] +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d1faf851e778dfa54db7cd438b70758eba9755cb47403f3496edd7c8fc212f0" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + [[package]] name = "wasm-bindgen-macro" version = "0.2.115" @@ -3089,6 +5326,19 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "wasm-streams" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + [[package]] name = "web-sys" version = "0.3.92" @@ -3099,6 +5349,40 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki-root-certs" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e49d0e65abc00c142e8f9428da991da9f1a250c39be97459901eb12b9b49f62a" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "webpki-roots" +version = "0.25.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" + +[[package]] +name = "which" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724" +dependencies = [ + "libc", +] + [[package]] name = "winapi" version = "0.3.9" @@ -3121,7 +5405,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys", + "windows-sys 0.61.2", ] [[package]] @@ -3130,12 +5414,92 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link", + "windows-result", + "windows-strings", +] + +[[package]] +name = "windows-implement" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-interface" +version = "0.59.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "windows-link" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + [[package]] name = "windows-sys" version = "0.61.2" @@ -3145,6 +5509,127 @@ dependencies = [ "windows-link", ] +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + [[package]] name = "winnow" version = "0.7.15" diff --git a/pool-apps/braidpool-template-provider/Cargo.toml b/pool-apps/braidpool-template-provider/Cargo.toml index 63df1c168..9fdfc709b 100644 --- a/pool-apps/braidpool-template-provider/Cargo.toml +++ b/pool-apps/braidpool-template-provider/Cargo.toml @@ -7,7 +7,7 @@ license = "MIT OR Apache-2.0" [dependencies] braidpool-common = { path = "../braidpool-common" } -stratum-apps = { version = "0.8.0", path = "../../stratum-apps", features = ["pool"] } +stratum-core = { git = "https://github.com/stratum-mining/stratum", branch = "main" } async-channel = "1.5.1" tokio = { version = "1.44.1", features = ["full"] } tokio-util = { version = "0.7", features = ["rt"] } diff --git a/pool-apps/braidpool-template-provider/src/lib.rs b/pool-apps/braidpool-template-provider/src/lib.rs index f3729a469..0575450d8 100644 --- a/pool-apps/braidpool-template-provider/src/lib.rs +++ b/pool-apps/braidpool-template-provider/src/lib.rs @@ -5,7 +5,7 @@ use async_channel::{Receiver, Sender}; use braidpool_common::template::BraidpoolTemplate; -use stratum_apps::stratum_core::{ +use stratum_core::{ parsers_sv2::TemplateDistributionOwned, template_distribution_sv2::RequestTransactionDataErrorOwned, }; diff --git a/pool-apps/braidpool-template-provider/src/sv2_messages.rs b/pool-apps/braidpool-template-provider/src/sv2_messages.rs index 65b1e19f9..7639953e1 100644 --- a/pool-apps/braidpool-template-provider/src/sv2_messages.rs +++ b/pool-apps/braidpool-template-provider/src/sv2_messages.rs @@ -5,7 +5,7 @@ use crate::error::TemplateDataError; use bitcoin::{consensus::deserialize, Transaction}; use braidpool_common::template::BraidpoolTemplate; -use stratum_apps::stratum_core::{ +use stratum_core::{ binary_sv2::{B0255Owned, B064KOwned, Seq0255Owned, U256Owned}, template_distribution_sv2::{NewTemplateOwned, SetNewPrevHashOwned}, };