General release information
Highlights of this release:
This release focuses on protocol correctness, share-accounting fixes, and stronger testing across the Stratum stack.
Notable highlights include:
channels_sv2received the biggest functional improvements in this release: client-side share accounting now defers accepted-share totals to upstream acknowledgements, server-side batch accounting was corrected, duplicate shares are rejected even for block-finding submissions, andblocks_foundmetrics were added.- Several SV2 protocol crates were aligned more closely with the specification, including fixes to
channel_bit/message_typedefinitions, movingCHANNEL_BIT_RECONNECTtocommon_messages_sv2, and renaming the Job Declaration channel-bit constant toCHANNEL_BIT_PUSH_SOLUTION. sv1_apiis safer and more robust: invalid Merkle-node conversions and invalid version-mask lengths now return errors instead of panicking.- Reliability and developer confidence improved with backend-agnostic codec encoding, new framing benchmarks, fuzz targets for SV2 datatypes and
noise_sv2, codec property tests, CI cleanup, and workspace-level dependency consolidation.
Crate changes
stratum-core
crate version was bumped from 0.2.0 to 0.2.1
buffer_sv2
crate version was bumped from 3.0.0 to 3.0.1
handlers_sv2
crate version was bumped from 0.2.1 to 0.2.2
noise_sv2
crate version was bumped from 1.4.1 to 1.4.2
parsers_sv2
crate version was bumped from 0.2.1 to 0.2.2
common_messages_sv2
crate version was bumped from 6.0.2 to 7.0.0
template_distribution_sv2
crate version was bumped from 4.0.2 to 5.0.0
channels_sv2
crate version was bumped from 3.0.0 to 4.0.0
stratum-translation
crate version was bumped from 0.1.2 to 0.1.3
mining_sv2
crate version was bumped from 7.0.0 to 8.0.0
job_declaration_sv2
crate version was bumped from 6.0.0 to 7.0.0
sv1_api
crate version was bumped from 2.1.3 to 3.0.0
codec_sv2
crate version was bumped from 4.0.1 to 5.0.0
What's Changed
- sv1: remove third-party hex crate dependency by @8144225309 in #2054
- Add btrust logo to readme by @pavlenex in #2061
- Add machete to CI by @Shourya742 in #2073
- feat(channels): add set_nominal_hashrate to client ExtendedChannel by @gimballock in #2077
- Fix ci by @Shourya742 in #2081
- move dependencies to workspace root by @Shourya742 in #2082
- Make encoder backend agnostic by @Shourya742 in #2052
- Add framing benches by @Shourya742 in #2051
- sv1: return errors instead of panicking in MerkleNode TryFrom by @ashishkrshaw in #2084
- defer
channels_sv2::clientshare acceptance to upstream acknowledgement by @plebhash in #2090 - feat(channels): add blocks_found metric to ShareAccounting by @gimballock in #2088
- Check for duplicate share on block found by @GitGab19 in #2097
- fix mismatches in
channel_bitandmessage_typeaccording to the specs by @lucasbalieiro in #2095 - clarify the reporting process in
SECURITY.mdby @lucasbalieiro in #2100 - prevent arithmetic overflow in certificate validity calculation by @lucasbalieiro in #2104
- fix
channels_sv2::server::ShareAccounting::update_share_accountingby @plebhash in #2102 - Fix version mask unvalid len by @exd02 in #2109
- Add fuzz targets for sv2 datatypes by @lucasbalieiro in #2074
- add fuzz target for the
noise_sv2crate. by @lucasbalieiro in #2106 - add codec prop test by @Shourya742 in #2087
channels-sv2: refine client share accounting counters by @plebhash in #2114
New Contributors
- @8144225309 made their first contribution in #2054
- @gimballock made their first contribution in #2077
- @ashishkrshaw made their first contribution in #2084
- @exd02 made their first contribution in #2109
Full Changelog: v1.7.0...v1.8.0