General release information
Highlights of this release:
This release focuses on channels_sv2 extranonce and target improvements, fallible Sv1 APIs, and stronger framing/codec validation.
Notable highlights include:
channels_sv2now clamps standard and extended channel targets to the declaredmax_targetduring channel creation and vardiff updates, fixing low-hashrate miners getting stuck when vardiff computed an easier target than allowed.channels_sv2addedextranonce_manager, withExtranonceAllocatorand typed prefixes backed by a shared bitmap. It supports pool allocation and proxy sub-allocation from upstream prefixes, prevents standard/extended prefix overlap, and frees slots when prefixes are dropped.- Client share accounting now tracks rejected shares by upstream
error_code, rather than only keeping a single rejected-share count. sv1_apiclient/server trait methods now returnResults across authorization, subscription, submit handling, extranonce/version-rolling state, status updates, and request-id tracking, allowing missing-state errors to propagate.common_messages_sv2addedhas_declare_tx_data(flags)for checking the Job DeclarationDECLARE_TX_DATAsetup flag.- Framing and codec coverage improved with
quickcheckproperties for SV2 headers/frames/handshake framing, plus Criterion benchmarks for encoding, decoding, serialization, Noise paths, and buffer-pool behavior. - Maintenance improved by committing
Cargo.lock, dispatchingstratum/mainupdates tosv2-apps, and documenting crate versioning rules for SemVer and public dependency exposure.
Crate changes
stratum-core
crate version was bumped from 0.2.1 to 0.3.0
channels_sv2
crate version was bumped from 4.0.0 to 5.0.0
mining_sv2
crate version was bumped from 8.0.0 to 9.0.0
common_messages_sv2
crate version was bumped from 7.0.0 to 7.1.0
parsers_sv2
crate version was bumped from 0.2.2 to 0.3.0
handlers_sv2
crate version was bumped from 0.2.2 to 0.3.0
sv1_api
crate version was bumped from 3.0.0 to 4.0.0
stratum_translation
crate version was bumped from 0.1.3 to 0.2.0
What's Changed
- ci: dispatch stratum main updates to sv2-apps by @plebhash in #2121
- Fix CI by @GitGab19 in #2127
- Add prop test to framing by @Shourya742 in #2085
- contribution guidelines for crate versioning by @plebhash in #2133
- Make sv1 server trait methods return results by @Shourya742 in #2134
- bump sv1-api dependent crate by @Shourya742 in #2137
- channels_sv2: clamp target to max_target instead of erroring by @vnprc in #2118
- Add codec benches by @Shourya742 in #2058
- Add
extranonce_managermodule inchannels_sv2by @GitGab19 in #2098 - channels_sv2::client::share_accounting keeps track of
error_codefor rejected shares by @plebhash in #2139 - feat(common-messages): add has_declare_tx_data helper function by @wcqy-ye in #2129
- use rust 1.85 in
release-libsworkflow by @GitGab19 in #2144 - add override step to
release-libsworkflow by @GitGab19 in #2145 - update error handling in
release-libs.shby @GitGab19 in #2146
New Contributors
Full Changelog: v1.8.0...v1.9.0