Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
437 commits
Select commit Hold shift + click to select a range
0ac90d5
add yield to missing bytes case in read_frame
Shourya742 Jul 15, 2025
c8f17ec
Merge pull request #1792 from Shourya742/2025-06-08-noise-stream
GitGab19 Jul 30, 2025
76c20cc
add new handlers_sv2 crate with async trait feature
Shourya742 Jul 20, 2025
645db2f
update protocol crates for new handler crate
Shourya742 Jul 20, 2025
fcff781
update the corresponding lock files all dependent workspaces
Shourya742 Jul 20, 2025
4c60e19
feat: add `External` variant to `HandlerError` for user-defined errors
Shourya742 Jul 22, 2025
357b8da
remove unused generics
Shourya742 Jul 30, 2025
52626ca
remove downstream authorization from handlers and let downstream deci…
Shourya742 Jul 30, 2025
3505a73
follow client server analogy, and start traits with Handle and not parse
Shourya742 Jul 30, 2025
e0a5ff4
add close channel method Handle Mining message client side
Shourya742 Jul 31, 2025
402a0f2
Merge pull request #1806 from Shourya742/2025-07-08-handlers-refactor
GitGab19 Jul 31, 2025
b0357f6
upgrade roles to rust edition 2021
lucasbalieiro Jul 29, 2025
177bce9
upgrade protocols to rust edition 2021
lucasbalieiro Aug 1, 2025
a7db02b
upgrade stratum-common to rust edition 2021
lucasbalieiro Aug 4, 2025
feaf4c6
upgrade integration-tests to rust edition 2021
lucasbalieiro Aug 4, 2025
7ef818d
update buffer to rust edition 2021
lucasbalieiro Aug 4, 2025
3e5a325
Merge pull request #1818 from lucasbalieiro/update-rust-edition-2021
plebhash Aug 6, 2025
763f16e
take pool_tag and miner_tag as input for channel and job factory cons…
plebhash Aug 1, 2025
d79aaad
reframe additional_coinbase_script_data into static_prefix for Extend…
plebhash Aug 1, 2025
4f99764
adapt pool for new pool_tag strategy
plebhash Aug 1, 2025
e35db90
adapt jdc to avoid trying to write miner_tag into extranonce_prefix
plebhash Aug 1, 2025
3cfa510
rename mining_sv2::MAX_EXTRANONCE_LEN to FULL_EXTRANONCE_LEN
plebhash Aug 4, 2025
bd89959
bump mining_sv2 MAJOR
plebhash Aug 1, 2025
0d48334
bump channels_sv2 MAJOR
plebhash Aug 1, 2025
cd5c653
adapt JobFactory unit tests to cover pool and miner tags
plebhash Aug 4, 2025
435781f
add server_id config parameter to pool
plebhash Aug 5, 2025
fd01573
bump roles_logic_sv2 MAJOR
plebhash Aug 6, 2025
0ae5bd6
add comment about range_1 on Pool::start
plebhash Aug 6, 2025
9e22df0
Merge pull request #1824 from plebhash/2025-08-01-remove-pool-and-min…
plebhash Aug 6, 2025
f616716
run clippy and fmt across codebase
lucasbalieiro Aug 7, 2025
7fc7431
Merge pull request #1830 from lucasbalieiro/run-fmt-and-clippy
plebhash Aug 7, 2025
f658c93
allow channels_sv2::server::extended::ExtendedChannel::on_set_new_pre…
plebhash Aug 5, 2025
4dcca5b
correct comments and fix edge case validation for channels_sv2::serve…
plebhash Aug 5, 2025
410b679
fix SetupConnection::has_work_selection and SetupConnection::has_vers…
plebhash Aug 5, 2025
3e29ec6
print message type on sniffer timeout
plebhash Aug 5, 2025
5fb627e
adapt Pool to correctly parse SetupConnection.REQUIRES_WORK_SELECTION
plebhash Aug 5, 2025
60225f8
Merge pull request #1826 from plebhash/2025-08-05-overlooked-conseque…
plebhash Aug 9, 2025
869e477
allow updating Standard Channel Server state with Extended Job from G…
plebhash Aug 6, 2025
1a6dfcb
adapt Pool to allow updating Standard Channel Server state with Exten…
plebhash Aug 6, 2025
9a9be41
Merge pull request #1828 from plebhash/2025-08-06-update-standard-cha…
GitGab19 Aug 13, 2025
269ab79
add distinction to client and server common methods in common.rs
Shourya742 Aug 13, 2025
4002080
add distinction to client and server common methods in job_declaratio…
Shourya742 Aug 13, 2025
e4a3223
add distinction to client and server common methods in mining.rs
Shourya742 Aug 13, 2025
677bfe9
add distinction to client and server common methods in template_distr…
Shourya742 Aug 13, 2025
e55c49f
Apply suggestions from code review
Shourya742 Aug 13, 2025
87d514c
correct Client/Server trait order in mining.rs
Shourya742 Aug 13, 2025
c3b15a0
Merge pull request #1831 from Shourya742/2025-07-13-make-handle-metho…
plebhash Aug 13, 2025
5a57bf6
downgrade roles_logic_sv2 to 4.0.0
GitGab19 Aug 14, 2025
e59ba77
Merge pull request #1836 from GitGab19/downgrade-roles-logic-sv2
plebhash Aug 14, 2025
772aa1c
strip bip141 for Extended Jobs
plebhash Aug 12, 2025
a3bc94d
adapt translator to use try_strip_bip141
plebhash Aug 12, 2025
863f070
Merge pull request #1832 from plebhash/2025-08-12-strip-segwit-extend…
plebhash Aug 15, 2025
29b6be3
feat: add stratum-translation library for SV1↔SV2 protocol conversion
GitGab19 Aug 13, 2025
75cb7ea
ci: add stratum-translation to workflows
GitGab19 Aug 14, 2025
f82c280
Merge pull request #1833 from GitGab19/translation-lib
GitGab19 Aug 16, 2025
e5ba6ff
remove sv2-ffi crate
GitGab19 Aug 14, 2025
d32a449
remove examples/interop-cpp*
GitGab19 Aug 14, 2025
74430eb
remove C FFI layer from SV2 protocols
GitGab19 Aug 14, 2025
eae8094
major bump of binary_codec_sv2 because of FFI removal
GitGab19 Aug 14, 2025
aecbdf4
major bump of codec_sv2 because of FFI removal
GitGab19 Aug 14, 2025
497037c
major bump of common_messages_sv2 because of FFI removal
GitGab19 Aug 14, 2025
4c245aa
major bump of template_distribution_sv2 because of FFI removal
GitGab19 Aug 14, 2025
bd8a1f0
Merge pull request #1835 from GitGab19/deprecate-sv2-ffi
GitGab19 Aug 16, 2025
bac190b
fix sigops calculation for CoinbaseOutputContraints
plebhash Aug 15, 2025
3878f55
Merge pull request #1838 from plebhash/2025-08-15-fix-sigops-calculation
GitGab19 Aug 18, 2025
d10127d
feat: add set_chain_tip method to client channels' APIs
GitGab19 Aug 18, 2025
02a16ef
Merge pull request #1839 from GitGab19/add-set-chain-tip
plebhash Aug 18, 2025
4262b75
finishes rust docs for `protocols::v2::channels_sv2::client`
lucasbalieiro Jul 28, 2025
2de42aa
finishes rust docs for `protocols::v2::channels_sv2`
lucasbalieiro Jul 28, 2025
29e7de2
remove 'set_active_job' variant
lucasbalieiro Aug 12, 2025
c6a45f4
Merge pull request #1817 from lucasbalieiro/finishes-docs-channel-sv2
plebhash Aug 19, 2025
dfa29e6
add feature and adjust dependencies for no_std
lucasbalieiro Aug 18, 2025
361fa82
update Cargo.lock files across the codebase
lucasbalieiro Aug 18, 2025
a97faf0
mention the `channel_v2` compatibility with `no_std` in the readme an…
lucasbalieiro Aug 19, 2025
0004f01
Merge pull request #1840 from lucasbalieiro/channels_sv2_no_std
GitGab19 Aug 20, 2025
35e55de
adjusts `parser_sv2` to be `no_std` compatible
lucasbalieiro Aug 20, 2025
f7e31c1
mention `no_std` compatibility of `parsers_sv2`
lucasbalieiro Aug 22, 2025
a22cad8
Merge pull request #1842 from lucasbalieiro/parser_sv2_no_std
plebhash Aug 26, 2025
0c11ca9
SetCustomMiningJob updates ChainTip of ExtendedChannel
plebhash Aug 26, 2025
18f41e1
Pool: avoid sending SetNewPrevHash to Extended Channels that require …
plebhash Aug 26, 2025
606d6d9
Merge pull request #1845 from plebhash/2025-08-26-setcustommininjob-e…
GitGab19 Aug 27, 2025
88ada0b
rename JobFactory::new_custom_job to new_extended_job_from_custom_job…
plebhash Aug 28, 2025
ec9dc43
add channels_sv2::client::extended::ExtendedChannel::on_set_custom_mi…
plebhash Aug 28, 2025
cf8f4ed
remove ExtendedJob::into_custom_job
plebhash Aug 28, 2025
d5c061d
add JobFactory::new_coinbase_tx_prefix_and_suffix
plebhash Aug 28, 2025
ad6a15b
impl From SetNewPrevHash (Mp + Tdp) into ChainTip
plebhash Aug 28, 2025
633b16d
add on_chain_tip_update
plebhash Aug 28, 2025
789b52b
Merge pull request #1846 from plebhash/2025-08-28-channels-sv2-adapta…
GitGab19 Aug 28, 2025
865e54e
enforce full allocation of template revenue on JobFactory::new_coinba…
plebhash Aug 30, 2025
8e4cb26
Merge pull request #1849 from plebhash/2025-08-30-enforce-template-re…
GitGab19 Sep 1, 2025
137279e
improve sniffer logging data for forwarded messages
lucasbalieiro Sep 3, 2025
b54a889
implements Display trait for MessageDirection
lucasbalieiro Sep 3, 2025
7483de0
improve log of timeout message error on sniffer
lucasbalieiro Sep 3, 2025
10fcd24
Merge pull request #1855 from lucasbalieiro/improve-sniffer-logging
plebhash Sep 4, 2025
0eb9836
fix the divergence of field names between the DeclareMiningJob struct…
lucasbalieiro Sep 4, 2025
d6a0a87
Merge pull request #1856 from lucasbalieiro/fix-declare-mining-job-fi…
plebhash Sep 5, 2025
73db74f
revert 3cfa510d80db54972184fd1fc324559d60ea59fc
plebhash Sep 12, 2025
c419f94
Merge pull request #1864 from plebhash/2025-09-12-revert-max-extranon…
plebhash Sep 12, 2025
5d03084
impl `as_hex` function to `B0255` type
lucasbalieiro Sep 12, 2025
3376598
use the `B0255::as_hex` in the protocol messages
lucasbalieiro Sep 12, 2025
c220c0a
call `Str0255::as_utf8_or_hex()` where missed
lucasbalieiro Sep 12, 2025
1a45c57
drop `impl fmt::Display for B025`
lucasbalieiro Sep 12, 2025
c306790
Merge pull request #1865 from lucasbalieiro/fix-display-trait-for-str…
plebhash Sep 12, 2025
3cfb4db
remove unnecessary Cargo.lock and add to .gitignore
lucasbalieiro Sep 12, 2025
a69bdd5
Merge pull request #1868 from lucasbalieiro/rm-cargo-lock
plebhash Sep 12, 2025
668c43e
fix: replace unwrap with safe pattern matching in mempool transaction…
GitGab19 Sep 16, 2025
ebccc10
Merge pull request #1879 from GitGab19/remove-unwrap-in-jds
GitGab19 Sep 16, 2025
e938536
lock clippy check to 1.89
Shourya742 Sep 18, 2025
8728224
Merge pull request #1888 from Shourya742/clippy_update_1.90
plebhash Sep 18, 2025
df0df77
rename handle_*_message_from_* to handle_*_message_frame_from_*
Shourya742 Sep 18, 2025
3d81440
rename dispatch_*_message_from_* to handle_*_message_from_*
Shourya742 Sep 18, 2025
251403b
remove handler error and add handleError type
Shourya742 Sep 18, 2025
115ff1f
port handler traits to contain the associated error type
Shourya742 Sep 18, 2025
4bfdd6f
dont shadow the associated type
Shourya742 Sep 18, 2025
65556ec
expose handlerError type
Shourya742 Sep 18, 2025
ffdbda7
Merge pull request #1886 from Shourya742/improve_handlers
GitGab19 Sep 19, 2025
4263f61
add close channel method to ParseMiningMessagesFromDownstream
Shourya742 Sep 19, 2025
5f546c3
update JDC
Shourya742 Sep 19, 2025
bc11da3
update pool with close channel method
Shourya742 Sep 19, 2025
ba170ff
Merge pull request #1890 from Shourya742/add-close-channel-to-pool
GitGab19 Sep 19, 2025
d7e6878
JobStore as generic
plebhash Sep 17, 2025
089ba93
adapt pool to JobStore as generic
plebhash Sep 17, 2025
99b9db8
Merge pull request #1884 from plebhash/2025-09-17-remove-trait-objects-2
plebhash Sep 19, 2025
a8f32b6
implements display traits for sv1 messages to better visualize the lo…
lucasbalieiro Sep 19, 2025
037538b
switch order of printing on Sv1 Sniffer
plebhash Sep 19, 2025
386ad72
Merge pull request #1891 from lucasbalieiro/impl-display-for-sv1-mess…
plebhash Sep 19, 2025
f8da14f
make vardiff pool statically dispatch
Shourya742 Sep 20, 2025
52a9cf3
Merge pull request #1896 from Shourya742/vardiff-pool-static-dispatch
plebhash Sep 20, 2025
75bbc96
improve pool vardiff error logs
plebhash Sep 22, 2025
69128bf
Merge pull request #1900 from plebhash/2025-09-22-improve-vardiff-err…
GitGab19 Sep 23, 2025
1f2a641
Update Cargo.lock files
Sjors Sep 23, 2025
ac1c030
mining-device: accelerate with midstate + asm
Sjors Sep 23, 2025
4b77415
mining_device: in-place SHA256d + fast LE target compare
Sjors Sep 22, 2025
503525d
mining_device: reuse GA buffers; prefill SHA256d second block
Sjors Sep 22, 2025
da66619
microbatch bench: print MH/s, trim defaults, add env override
Sjors Sep 22, 2025
83b54b3
microbatch bench: print SHA CPU features
Sjors Sep 22, 2025
ede9829
bench(mining_device): auto-detect CPU count in scaling bench
Sjors Sep 22, 2025
edbc72a
Add --cores and default to N-1
Sjors Sep 22, 2025
8573783
Measure actual CPU pool at startup
Sjors Sep 22, 2025
4c5b279
fixup! formatting
Sjors Sep 23, 2025
17bdf67
ci(roles): pin pest stack to 2.7.10 for Rust 1.75 (pest, pest_derive,…
Sjors Sep 23, 2025
3c21721
ci(roles): pin minreq to 2.13.0 to avoid LazyLock on Rust 1.75
Sjors Sep 23, 2025
9affb14
Merge pull request #1901 from Sjors/2025/09/mine-faster
plebhash Sep 23, 2025
3ee4d48
Add new jdc
Shourya742 Sep 5, 2025
3161df6
adapt JDC to new_handler API
Shourya742 Sep 18, 2025
58da8d3
remove job store dynamic dispatch
Shourya742 Sep 20, 2025
0b67f98
make vardiff statically dispatch
Shourya742 Sep 20, 2025
328327e
make sequence not inter-leaved
Shourya742 Sep 20, 2025
31b4eed
remove vardiff update channel log ambiguity
Shourya742 Sep 23, 2025
a1cf42e
update (channel_id, job_id) -> template_id cache when the initial job…
Shourya742 Sep 23, 2025
2ebc142
Merge pull request #1843 from Shourya742/new-jdc
GitGab19 Sep 24, 2025
1518a0f
fix: correct typo 'Startum' to 'Stratum' in V1 protocol documentation
BRIGHTON-ASUMANI Sep 19, 2025
520b16b
Merge pull request #1893 from BRIGHTON-ASUMANI/fix/typo-startum-v1
GitGab19 Sep 24, 2025
73fcf86
feat(translator): new modular translator proxy with channel aggregati…
GitGab19 Aug 15, 2025
562c29e
feat: add translator search space allocation for non-aggregated mode
GitGab19 Sep 22, 2025
6d5c009
feat: defer SV2 channel opening until first SV1 message received
GitGab19 Sep 24, 2025
f0a69aa
fix HexError(OddLength)
average-gary Sep 12, 2025
503069d
Merge pull request #1791 from GitGab19/new-tproxy
GitGab19 Sep 24, 2025
7c11420
cover handlers_sv2 on release-libs.yaml
plebhash Sep 24, 2025
4b8d7c8
Merge pull request #1908 from plebhash/2025-09-24-release-libs-handle…
GitGab19 Sep 24, 2025
818cd36
deprecate channel_logic module from `roles_logic_sv2` crate
GitGab19 Sep 24, 2025
2312621
deprecate job_creator module from `roles_logic_sv2` crate
GitGab19 Sep 24, 2025
e3e9ab3
Merge pull request #1906 from GitGab19/deprecate-channel-logic
GitGab19 Sep 24, 2025
5fd6b22
ci(msrv): enforce locked builds in MSRV workflow
Sjors Sep 24, 2025
9285381
Merge pull request #1905 from Sjors/2025/09/msrv
plebhash Sep 24, 2025
816cfe7
bump PATCH of `binary_sv2` crate
GitGab19 Sep 24, 2025
54bd8ee
Merge pull request #1909 from GitGab19/bump-binary-sv2
GitGab19 Sep 24, 2025
6edb968
specify dependencies versions of `stratum_translation` crate
GitGab19 Sep 24, 2025
b4eecef
bump MAJOR for `stratum-common`
GitGab19 Sep 24, 2025
456236b
bump MAJOR of `binary_sv2` and PATCH of many crates that depend on it
GitGab19 Sep 24, 2025
fce6a99
Merge pull request #1910 from GitGab19/fix-stratum-translation-cargo-…
plebhash Sep 24, 2025
4a436e9
Fix stratum-common v4.0.0 version conflict
GitGab19 Sep 25, 2025
1d8ce31
Fix rpc_sv2 v1.1.0 version conflict
GitGab19 Sep 25, 2025
7647db0
Merge pull request #1913 from GitGab19/fix-stratum-common-crate
GitGab19 Sep 25, 2025
e68b53b
bump PATCH for codec_sv2 + framing_sv2 + parsers_sv2 + common_message…
plebhash Sep 24, 2025
ba72b11
remove reference to README.md on Cargo.toml for handlers_sv2
plebhash Sep 25, 2025
30405fa
Merge pull request #1912 from plebhash/bump-patches
GitGab19 Sep 25, 2025
f164b9a
Improve `Display` implementation to render u32 fields in hex where ap…
lucasbalieiro Sep 26, 2025
75b31a3
limit hex string to 500 characters in `Display` implementation for Se…
lucasbalieiro Sep 26, 2025
c9008a6
Merge pull request #1919 from lucasbalieiro/improve-display-for-u32
plebhash Sep 26, 2025
457dd76
utils: add PendingChannelRequest enum and close_channel_msg helper
Shourya742 Sep 26, 2025
fb3f38f
channel_manager: use VecDeque<PendingChannelRequest> for pending down…
Shourya742 Sep 26, 2025
296bfc0
upstream_message_handler: handle PendingChannelRequest and add channe…
Shourya742 Sep 26, 2025
dd04183
clippy'ed
Shourya742 Sep 26, 2025
b14968d
add review comments
Shourya742 Sep 26, 2025
7d30100
remove min_extranonce_size from Channel Manager
Shourya742 Sep 26, 2025
d1abdea
remove min_extranonce_size from JDCConfig
Shourya742 Sep 26, 2025
4c83854
update the config files
Shourya742 Sep 26, 2025
80011f4
update JDC initialization in IT after min_extranonce removal
Shourya742 Sep 26, 2025
9d53093
Merge pull request #1917 from Shourya742/enforce-upstream-channel-ope…
plebhash Sep 27, 2025
811f19e
add readme to handlers_sv2
Shourya742 Sep 27, 2025
7cb581f
point readme in cargo.toml
Shourya742 Sep 29, 2025
5c41449
Merge pull request #1920 from Shourya742/add-handlers-sv2-readme
plebhash Sep 29, 2025
f7f0c39
remove unused imports in integration test
Shourya742 Sep 29, 2025
7f93528
Merge pull request #1922 from Shourya742/remove-unused-imports-in-int…
plebhash Sep 29, 2025
22844b0
fix extranonce size during client side channel initialization
Shourya742 Sep 30, 2025
95192e0
Merge pull request #1923 from Shourya742/fix-extranonce-on-client-side
plebhash Sep 30, 2025
7634485
fix extranonce calculation when opening new extended mining channel w…
Shourya742 Sep 30, 2025
1f980a2
fix extranonce calculation when set_extranonce_prefix is intercepted
Shourya742 Sep 30, 2025
1aaeb03
Merge pull request #1925 from Shourya742/fix-extranonce-sizes-jdc
plebhash Sep 30, 2025
b806380
disable ascii for file
Shourya742 Oct 2, 2025
69e938e
clippy'ed
Shourya742 Oct 2, 2025
fdbf3ff
Merge pull request #1929 from Shourya742/remove-ascii-for-file-log-ou…
GitGab19 Oct 2, 2025
ced11f6
feat: improve Sv1Server messages received in downstream.rs
GitGab19 Oct 2, 2025
fa5138a
Merge pull request #1930 from GitGab19/improve-sv1-handshake-handling
GitGab19 Oct 2, 2025
a4a10b7
ci: migrate from deprecated macos-13 to macos-latest ARM64 runner
GitGab19 Oct 3, 2025
9c65db8
Merge pull request #1936 from GitGab19/fix-retiring-macos-13
GitGab19 Oct 3, 2025
d3a4bd3
generalize utility module for output deserialization on channels_sv2
plebhash Oct 2, 2025
bf24110
clippy
plebhash Oct 2, 2025
aadb9ed
remove jd_client::utils::deserialize_coinbase_outputs in favor of cha…
plebhash Oct 2, 2025
1116be5
bump channels_sv2 to 2.0.0
plebhash Oct 2, 2025
abcc79d
Merge pull request #1934 from plebhash/2025-10-02-channels-sv2-deseri…
plebhash Oct 6, 2025
57be4a3
make internal methods private on `roles_logic_sv2::utils`
lucasbalieiro Oct 1, 2025
aa2aef5
move `Id` to `channels_sv2::id_factory` and rename to `IdFactory`
lucasbalieiro Oct 1, 2025
0a18806
make roles retrive `merkle_root_from_path` and `u256_to_block_hash` f…
lucasbalieiro Oct 3, 2025
786ab1d
adapt `jd-server` to not rely on `roles_logic_sv2::utils`
lucasbalieiro Oct 3, 2025
4e1b6e6
remove unused functions from `roles_logic_sv2::utils`
lucasbalieiro Oct 3, 2025
ff00412
bump `roles_logic_sv2` major version
lucasbalieiro Oct 1, 2025
d787187
deprecate `IdFactory` in favor of `AtomicU32`
lucasbalieiro Oct 3, 2025
75d299c
drop `roles_logic_sv2::utils::bytes_to_hex` and replace with `channel…
lucasbalieiro Oct 6, 2025
2775934
drop unnecessary lockfile
lucasbalieiro Oct 6, 2025
9b7290e
drop `roles_logic_sv2::utils::target_to_difficulty`
lucasbalieiro Oct 6, 2025
2b8d08a
move `roles_logic_sv2::vardiff` to `channels_sv2::vardiff`
lucasbalieiro Oct 7, 2025
c885fc3
drops helper functions used by `roles_logic_sv2::vardiff` since it wa…
lucasbalieiro Oct 7, 2025
98cae05
clippy'ed and fmt'ed
lucasbalieiro Oct 7, 2025
447ab18
Merge pull request #1928 from lucasbalieiro/cleanup-roles-logic-sv2-u…
plebhash Oct 8, 2025
5e1377a
add sv1_minerd module to ITF
plebhash Aug 30, 2025
9ae0ac6
adapt start_sv2_translator for minerd usage
plebhash Aug 30, 2025
15c591f
replace mining_device_sv1 with minerd on ITF
plebhash Aug 30, 2025
c507a6a
deprecate mining_device_sv1
plebhash Oct 3, 2025
c3b16ef
fix: use system tar command to properly extract GNU sparse files
GitGab19 Oct 7, 2025
f8e8667
Merge pull request #1937 from plebhash/2025-10-03-minerd-itf
GitGab19 Oct 9, 2025
8370cdd
mining-device-sv1 removal from `coverage-roles.sh` script (follow-up …
GitGab19 Oct 9, 2025
e262b78
Merge pull request #1942 from GitGab19/remove-sv1-miner-from-script
GitGab19 Oct 9, 2025
945d79a
port common message handlers to be context aware
Shourya742 Oct 8, 2025
c6812a8
port job_declaration message handlers to be context aware
Shourya742 Oct 8, 2025
8a90e0a
port mining message handlers to be context aware
Shourya742 Oct 8, 2025
a2f04a2
port template distribution message handlers to be context aware
Shourya742 Oct 8, 2025
8fa7570
port jd-client to new handler context api's
Shourya742 Oct 8, 2025
e0d281d
port translator to new handler context api's
Shourya742 Oct 8, 2025
371eb91
make jd-client and translator to adhere to optional server_id/client_id
Shourya742 Oct 9, 2025
a7d62cc
add doc to each handler trait and explain the use of id
Shourya742 Oct 9, 2025
b368b80
add short description of handler traits
Shourya742 Oct 9, 2025
8e13c10
expand more on use of server_id/client_id in handler traits
Shourya742 Oct 9, 2025
7e24753
add cargo-semver check for handlers-sv2 in semver workflow
Shourya742 Oct 9, 2025
0a184c5
minor bumping handlers from 0.1.0 -> 0.2.0
Shourya742 Oct 9, 2025
779c69b
Merge pull request #1939 from Shourya742/make-handlers-context-aware
GitGab19 Oct 9, 2025
cbfc64d
Pin generic array to 0.14.7 in utils
Shourya742 Oct 13, 2025
ab05f93
add minerd to gitignore
Shourya742 Oct 13, 2025
060df0e
pin generic-array to 0.14.7 in noise-sv2
Shourya742 Oct 13, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/workflows/clippy-lint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
toolchain: 1.89
override: true
components: clippy
- name: Run Clippy on different workspaces and crates
Expand Down
26 changes: 17 additions & 9 deletions .github/workflows/coverage-protocols.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Protocol test Coverage

on:
pull_request:
push:
branches:
- main

Expand Down Expand Up @@ -53,6 +53,14 @@ jobs:
flags: codec_sv2-coverage
token: ${{ secrets.CODECOV_TOKEN }}

- name: Upload channels_sv2-coverage to codecov.io
uses: codecov/codecov-action@v4
with:
directory: ./protocols/target/tarpaulin-reports/channels-sv2-coverage
file: ./protocols/target/tarpaulin-reports/channels-sv2-coverage/cobertura.xml
flags: channels_sv2-coverage
token: ${{ secrets.CODECOV_TOKEN }}

- name: Upload common_messages_sv2-coverage to codecov.io
uses: codecov/codecov-action@v4
with:
Expand Down Expand Up @@ -85,6 +93,14 @@ jobs:
flags: noise_sv2-coverage
token: ${{ secrets.CODECOV_TOKEN }}

- name: Upload parsers_sv2-coverage to codecov.io
uses: codecov/codecov-action@v4
with:
directory: ./protocols/target/tarpaulin-reports/parsers-sv2-coverage
file: ./protocols/target/tarpaulin-reports/parsers-sv2-coverage/cobertura.xml
flags: parsers_sv2-coverage
token: ${{ secrets.CODECOV_TOKEN }}

- name: Upload roles_logic_sv2-coverage to codecov.io
uses: codecov/codecov-action@v4
with:
Expand All @@ -101,14 +117,6 @@ jobs:
flags: v1-coverage
token: ${{ secrets.CODECOV_TOKEN }}

- name: Upload sv2_ffi-coverage to codecov.io
uses: codecov/codecov-action@v4
with:
directory: ./protocols/target/tarpaulin-reports/sv2-ffi-coverage
file: ./protocols/target/tarpaulin-reports/sv2-ffi-coverage/cobertura.xml
flags: sv2_ffi-coverage
token: ${{ secrets.CODECOV_TOKEN }}

- name: Upload template_distribution_sv2-coverage to codecov.io
uses: codecov/codecov-action@v4
with:
Expand Down
10 changes: 1 addition & 9 deletions .github/workflows/coverage-roles.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Roles test Coverage

on:
pull_request:
push:
branches:
- main

Expand Down Expand Up @@ -53,14 +53,6 @@ jobs:
flags: mining_device-coverage
token: ${{ secrets.CODECOV_TOKEN }}

- name: Upload mining_proxy_sv2-coverage to codecov.io
uses: codecov/codecov-action@v4
with:
directory: ./roles/target/tarpaulin-reports/mining-proxy-coverage
file: ./roles/target/tarpaulin-reports/mining-proxy-coverage/cobertura.xml
flags: mining_proxy_sv2-coverage
token: ${{ secrets.CODECOV_TOKEN }}

- name: Upload pool_sv2-coverage to codecov.io
uses: codecov/codecov-action@v4
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/coverage-utils.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Util Test Coverage

on:
pull_request:
push:
branches:
- main

Expand Down
15 changes: 10 additions & 5 deletions .github/workflows/docs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,16 @@ jobs:
cd protocols/v2/binary-sv2
cargo doc --features with_buffer_pool

- name: Rust Docs crate channels_sv2
run: |
cd protocols/v2/channels-sv2
cargo doc

- name: Rust Docs crate parsers_sv2
run: |
cd protocols/v2/parsers-sv2
cargo doc

- name: Rust Docs crate framing_sv2
run: |
cd protocols/v2/framing-sv2
Expand Down Expand Up @@ -84,11 +94,6 @@ jobs:
cd protocols/v2/subprotocols/template-distribution
cargo doc

- name: Rust Docs crate sv2_ffi
run: |
cd protocols/v2/sv2-ffi
cargo doc

- name: Rust Docs crate roles_logic_sv2

run: |
Expand Down
9 changes: 4 additions & 5 deletions .github/workflows/integration-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,9 @@ jobs:
toolchain: stable
override: true

- name: Roles Integration Tests
run: |
RUST_BACKTRACE=1 RUST_LOG=debug cargo test --manifest-path=test/integration-tests/Cargo.toml --verbose --test '*' -- --nocapture
- name: Install cargo-nextest
run: cargo install cargo-nextest --locked

- name: SV1 Integration Tests
- name: Integration Tests
run: |
RUST_BACKTRACE=1 RUST_LOG=debug cargo test --manifest-path=test/integration-tests/Cargo.toml --verbose --test 'sv1' --features sv1 -- --nocapture
RUST_BACKTRACE=1 RUST_LOG=debug cargo nextest run --manifest-path=test/integration-tests/Cargo.toml --features sv1 --nocapture
74 changes: 52 additions & 22 deletions .github/workflows/release-libs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,38 +29,51 @@ jobs:
- name: Login
run: cargo login ${{ secrets.CRATES_IO_DEPLOY_KEY }}

- name: Publish crate common
# Base dependencies with no local dependencies
- name: Publish crate config_helpers_sv2
run: |
./scripts/release-libs.sh common

./scripts/release-libs.sh roles/roles-utils/config-helpers
- name: Publish crate buffer_sv2
run: |
./scripts/release-libs.sh utils/buffer

- name: Publish crate binary_sv2 derive_codec
- name: Publish crate error-handling
run: |
./scripts/release-libs.sh protocols/v2/binary-sv2/derive_codec
./scripts/release-libs.sh utils/error-handling

- name: Publish crate key-utils
run: |
./scripts/release-libs.sh utils/key-utils

- name: Publish crate noise_sv2
run: |
./scripts/release-libs.sh protocols/v2/noise-sv2

# binary_sv2 (depends on buffer_sv2)
- name: Publish crate binary_sv2 codec
run: |
./scripts/release-libs.sh protocols/v2/binary-sv2/codec

- name: Publish crate binary_sv2 derive_codec
run: |
./scripts/release-libs.sh protocols/v2/binary-sv2/derive_codec

- name: Publish crate binary_sv2
run: |
./scripts/release-libs.sh protocols/v2/binary-sv2

# framing_sv2(depends on binary_sv2, buffer_sv2, noise_sv2)
- name: Publish crate framing_sv2
run: |
./scripts/release-libs.sh protocols/v2/framing-sv2

- name: Publish crate noise_sv2
run: |
./scripts/release-libs.sh protocols/v2/noise-sv2

# codec_sv2 (depends on framing_sv2, noise_sv2, binary_sv2, buffer_sv2, key-utils)
- name: Publish crate codec_sv2
run: |
./scripts/release-libs.sh protocols/v2/codec-sv2

# Subprotocols (depend on binary_sv2)
- name: Publish crate common_messages
run: |
./scripts/release-libs.sh protocols/v2/subprotocols/common-messages
Expand All @@ -77,34 +90,51 @@ jobs:
run: |
./scripts/release-libs.sh protocols/v2/subprotocols/template-distribution

- name: Publish crate sv2_ffi
# channels_sv2 (depends on binary_sv2, common_messages_sv2, mining_sv2, template_distribution_sv2, job_declaration_sv2)
- name: Publish crate channels_sv2
run: |
./scripts/release-libs.sh protocols/v2/sv2-ffi
./scripts/release-libs.sh protocols/v2/channels-sv2

- name: Publish crate roles_logic_sv2
# parsers_sv2 (depends on binary_sv2, framing_sv2, common_messages, mining, template_distribution, job_declaration)
- name: Publish crate parsers_sv2
run: |
./scripts/release-libs.sh protocols/v2/roles-logic-sv2
./scripts/release-libs.sh protocols/v2/parsers-sv2

# sv1_api (depends on binary_sv2)
- name: Publish crate v1
run: |
./scripts/release-libs.sh protocols/v1

- name: Publish crate bip32-key-derivation
# stratum_translation (depends on binary_sv2, mining_sv2, channels_sv2, v1)
- name: Publish crate stratum_translation
run: |
./scripts/release-libs.sh utils/bip32-key-derivation
./scripts/release-libs.sh roles/roles-utils/stratum-translation

- name: Publish crate error-handling
run: |
./scripts/release-libs.sh utils/error-handling

- name: Publish crate key-utils
# Roles logic (depends on codec_sv2 and subprotocols)
- name: Publish crate roles_logic_sv2
run: |
./scripts/release-libs.sh utils/key-utils
./scripts/release-libs.sh protocols/v2/roles-logic-sv2

# Network helpers (depends on codec_sv2, sv1_api)
- name: Publish crate network_helpers_sv2
run: |
./scripts/release-libs.sh roles/roles-utils/network-helpers

# Common (depends on roles_logic_sv2 and network_helpers_sv2)
- name: Publish crate common
run: |
./scripts/release-libs.sh common

# handlers_sv2 (depends on parsers_sv2, binary_sv2, common_messages_sv2, mining_sv2, template_distribution_sv2, job_declaration_sv2)
- name: Publish crate handlers_sv2
run: |
./scripts/release-libs.sh protocols/v2/handlers-sv2

# Utilities that depend on stratum-common
- name: Publish crate bip32-key-derivation
run: |
./scripts/release-libs.sh utils/bip32-key-derivation

- name: Publish crate rpc_sv2
run: |
./scripts/release-libs.sh roles/roles-utils/rpc
./scripts/release-libs.sh roles/roles-utils/rpc
14 changes: 7 additions & 7 deletions .github/workflows/rust-msrv.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,20 +27,20 @@ jobs:
- name: Build Protocols
run: cargo build --manifest-path=protocols/Cargo.toml
- name: Build Roles
run: cargo build --manifest-path=roles/Cargo.toml
run: cargo build --locked --manifest-path=roles/Cargo.toml
- name: Build Utils
run: cargo build --manifest-path=utils/Cargo.toml
run: cargo build --locked --manifest-path=utils/Cargo.toml
- name: Build Integration Tests
run: cargo build --manifest-path=test/integration-tests/Cargo.toml
run: cargo build --locked --manifest-path=test/integration-tests/Cargo.toml

# also check test compilation without running tests
- name: Check Test Compilation for Benches
run: cargo test --manifest-path=benches/Cargo.toml --no-run
- name: Check Test Compilation for Protocols
run: cargo test --manifest-path=protocols/Cargo.toml --no-run
- name: Check Test Compilation for Roles
run: cargo test --manifest-path=roles/Cargo.toml --no-run
run: cargo test --locked --manifest-path=roles/Cargo.toml --no-run
- name: Check Test Compilation for Utils
run: cargo test --manifest-path=utils/Cargo.toml --no-run
run: cargo test --locked --manifest-path=utils/Cargo.toml --no-run
- name: Check Test Compilation for Integration Tests
run: cargo test --manifest-path=test/integration-tests/Cargo.toml --no-run
run: cargo test --locked --manifest-path=test/integration-tests/Cargo.toml --no-run
25 changes: 21 additions & 4 deletions .github/workflows/semver-check.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -85,14 +85,22 @@ jobs:
working-directory: protocols/v2/subprotocols/template-distribution
run: cargo semver-checks

- name: Run semver checks for protocols/v2/sv2-ffi
working-directory: protocols/v2/sv2-ffi
run: cargo semver-checks

- name: Run semver checks for protocols/v2/roles-logic-sv2
working-directory: protocols/v2/roles-logic-sv2
run: cargo semver-checks --default-features

- name: Run semver checks for protocols/v2/channels-sv2
working-directory: protocols/v2/channels-sv2
run: cargo semver-checks

- name: Run semver checks for protocols/v2/parsers-sv2
working-directory: protocols/v2/parsers-sv2
run: cargo semver-checks

- name: Run semver checks for protocols/v2/handlers-sv2
working-directory: protocols/v2/handlers-sv2
run: cargo semver-checks

- name: Run semver checks for protocols/v1
working-directory: protocols/v1
run: cargo semver-checks
Expand All @@ -109,10 +117,19 @@ jobs:
working-directory: utils/key-utils
run: cargo semver-checks

# TODO: Uncomment this when the stratum-translation crate is published to crates.io
#- name: Run semver checks for roles/roles-utils/stratum-translation
# working-directory: roles/roles-utils/stratum-translation
# run: cargo semver-checks

- name: Run semver checks for roles/roles-utils/network-helpers
working-directory: roles/roles-utils/network-helpers
run: cargo semver-checks

- name: Run semver checks for roles/roles-utils/rpc
working-directory: roles/roles-utils/rpc
run: cargo semver-checks

- name: Run semver checks for roles/roles-utils/config-helpers
working-directory: roles/roles-utils/config-helpers
run: cargo semver-checks
20 changes: 17 additions & 3 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ jobs:
strategy:
matrix:
os:
- macos-13
- macos-latest
- ubuntu-latest
include:
- os: macos-13
target: x86_64-apple-darwin
- os: macos-latest
target: aarch64-apple-darwin
- os: ubuntu-latest
target: x86_64-unknown-linux-musl

Expand Down Expand Up @@ -44,6 +44,19 @@ jobs:
run: |
cargo run --manifest-path=protocols/v2/framing-sv2/Cargo.toml --example sv2_frame

- name: Run codec-sv2 examples
run: |
cargo run --manifest-path=protocols/v2/codec-sv2/Cargo.toml --example unencrypted
cargo run --manifest-path=protocols/v2/codec-sv2/Cargo.toml --example encrypted --features=noise_sv2

- name: Run binary-sv2 examples
run: |
cargo run --manifest-path=protocols/v2/binary-sv2/Cargo.toml --example encode_decode

- name: Run noise-sv2 examples
run: |
cargo run --manifest-path=protocols/v2/noise-sv2/Cargo.toml --example handshake

- name: fuzz tests
run: |
if [ ${{ matrix.os }} == "ubuntu-latest" ]; then
Expand All @@ -62,6 +75,7 @@ jobs:
cargo test --manifest-path=utils/Cargo.toml
cargo test --manifest-path=roles/roles-utils/config-helpers/Cargo.toml
cargo test --manifest-path=roles/roles-utils/network-helpers/Cargo.toml sv1_connection::tests::test_sv1_connection --features sv1
cargo test --manifest-path=roles/roles-utils/stratum-translation/Cargo.toml

- name: Property based testing
run: |
Expand Down
Loading
Loading