8000 Releases · stratum-mining/stratum · GitHub
[go: up one dir, main page]

Skip to content

Releases

v1.13.0

Choose a tag to compare

@plebhash plebhash released this 04 Nov 13:31
88c2ba3

General release information

Highlights of this release:

This release closes the buffer_sv2, codec_sv2 and framing_sv2 audit trackers with a hardening pass over the buffer pool and the codec, renames Mining and Template Distribution message fields to follow the spec cleanup, and lets channels_sv2 server channels serve application-supplied jobs. Every published crate that changed takes an incompatible version bump, except noise_sv2, which only gains a re-export.

Notable highlights include:

  • mining_sv2 and template_distribution_sv2 message fields were renamed to match the spec: SetTarget.maximum_target is now target, UpdateChannel.maximum_target is max_target, min_ntime is ntime_start on NewMiningJob, NewExtendedMiningJob, SetNewPrevHash and SetCustomMiningJob, and the TDP SetNewPrevHash / SubmitSolution header fields are ntime_start, ntime and nonce. The invalid-min-ntime error code became invalid-ntime-start. Nothing changes on the wire.
  • buffer_sv2 received an extensive hardening pass over the pool: slot bookkeeping and mode switches were fixed, pool memory is kept alive while a slice points into it, slices are copied on clone, capacities are checked without overflowing, and the API now separates reserving space from committing written bytes. get_writable, get_data_by_ref, danger_set_start, droppable and the Write trait were removed. A randomized model test exercises slice lifetimes against the pool.
  • codec_sv2 and framing_sv2 close their audit trackers: encoders reject frames whose encoded length a header cannot declare, MessageFrame::encode_into errors on a payload shorter than its header declares, and the noise decoder decrypts the header and each payload chunk as soon as it is buffered instead of holding up to 16 MiB of ciphertext. Decoded::Incomplete and Decrypted::Incomplete no longer carry a byte count, SerializedFrame::from_parts was removed, and every encoder and decoder gained a with_capacity constructor.
  • channels_sv2 server channels can now serve prebuilt jobs: a PrebuiltJob carrying the NewExtendedMiningJob wire fields (including its own ntime_start) goes into on_prebuilt_job on group, standard and extended channels, and activate_future_job(job_id, chain_tip) activates a future job without a Template Distribution message. Standard jobs now keep their coinbase bytes and expose get_origin instead of get_template.
  • channels_sv2 fixed several share and job defects: standard jobs installed from a group channel no longer duplicate the template's coinbase outputs, a reused job_id in add_future_job now releases the replaced job's extranonce prefixes and keeps the future-job cap honest, BlockFound work credit is capped at the difficulty the hash proved, a block-finding share now counts toward best_diff, set_target refuses a target above the channel's max_target, and get_job_target(job_id) exposes the per-job target a share is validated against.
  • channels_sv2 coinbase handling: the witness reserved value, marker and flag are only added when the template carries a witness commitment, so blocks found on templates without one are no longer rejected as unexpected-witness, and try_strip_bip141 refuses coinbases with more than one input.
  • binary_sv2 validates F32 values during serialization (NaN, infinities and negative values return Error::InvalidF32) and bounds the Debug output of Seq0255 and Seq064K.
  • parsers_sv2 rejects TLV values longer than the length field can declare: Tlv::new returns a Result, and TlvError gains ValueTooLong and LengthMismatch.
  • sv1_api serializes version-rolling.min-bit-count in mining.configure as a JSON integer, as BIP 310 requires.
  • noise_sv2 re-exports the aead Buffer trait as AeadBuffer.
  • Fuzzing: structured generators cover the SV2 data types and every common, job declaration, mining and template distribution message.

Crate changes

stratum-core
crate version was bumped from 0.6.0 to 0.7.0

channels_sv2
crate version was bumped from 8.0.0 to 9.0.0

binary_sv2
crate version was bumped from 7.0.0 to 8.0.0

buffer_sv2
crate version was bumped from 3.0.1 to 4.0.0

codec_sv2
crate version was bumped from 7.0.0 to 8.0.0

framing_sv2
crate version was bumped from 8.0.0 to 9.0.0

noise_sv2
crate version was bumped from 2.0.0 to 2.1.0

sv1_api
crate version was bumped from 6.0.0 to 7.0.0

stratum_translation
crate version was bumped from 0.5.0 to 0.6.0

parsers_sv2
crate version was bumped from 0.6.0 to 0.7.0

handlers_sv2
crate version was bumped from 0.6.0 to 0.7.0

extensions_sv2
crate version was bumped from 0.3.0 to 0.4.0

common_messages_sv2
crate version was bumped from 9.0.0 to 10.0.0

mining_sv2
crate version was bumped from 12.0.0 to 13.0.0

job_declaration_sv2
crate version was bumped from 10.0.0 to 11.0.0

template_distribution_sv2
crate version was bumped from 7.0.0 to 8.0.0

What's Changed

  • Patch stratum-core in the sv2-apps workspace root by @bit-aloo in #2401
  • rename message fields, aligning with spec cleanup by @plebhash in #2368
  • fix(sv1_api): serialize configure min-bit-count as integer by @cfilipescu in #2369
  • channels_sv2: fix group -> standard job creation by @plebhash in #2411
  • docs(agents): define a schema for issues triaged from audit findings by @plebhash in #2417
  • fix(channels_sv2): handle a reused job_id in add_future_job by @Jolah1 in #2420
  • docs(agents): keep the fix out of audit issues by @plebhash in #2423
  • buffer_sv2 hardening by @bit-aloo in #2408
  • fix(parsers-sv2)!: reject TLV values the length field cannot declare by @Christopherdominic in #2431
  • codec-sv2, framing-sv2: bound encoded frames and decrypt noise chunks as they arrive by @bit-aloo in #2427
  • fix(binary-sv2): bound sequence Debug output by @Chibey-max in #2428
  • add generators to fuzz target by @lucasbalieiro in #2350
  • feat(channels_sv2)!: serve prebuilt jobs on server channels by @plebhash in #2445
  • fix(channels-sv2): cap BlockFound work credit at proven difficulty by @plebhash in #2406
  • fix(mining_sv2, job_declaration_sv2): correct two Display format strings by @amartya1523 in #2449
  • docs: point example links at sv2/ and fix the channel_msg bit wording by @amartya1523 in #2450
  • feat(channels-sv2): add get_job_target to server channels by @plebhash in #2455
  • fix(channels-sv2): refuse set_target above the channel's max_target by @plebhash in #2456
  • docs(channels-sv2): clarify version rolling policy by @Christopherdominic in #2429
  • fix(channels_sv2): count a block-finding share toward best_diff by @amartya1523 in #2447
  • fix(channels_sv2)!: let a prebuilt job carry its own ntime_start by @plebhash in #2452
  • fix(channels_sv2)!: coinbase witness handling gaps by @Jolah1 in #2457
  • feat(binary-sv2)!: validate F32 values during serialization by @lucasbalieiro in #2436

New Contributors

Full Changelog: v1.12.0...v1.13.0

v1.12.0

Choose a tag to compare

@plebhash plebhash released this 17 Sep 13:22
e11881b

General release information

Highlights of this release:

This release is dominated by a deep hardening pass over channels_sv2, a breaking refactor of the codec and framing layer, BIP323 adaptations across the protocol stack, and the removal of AES-256-GCM from noise_sv2. Every published crate that changed takes an incompatible version bump, so downstream consumers should expect to adapt.

Notable highlights include:

  • channels_sv2 received an extensive correctness and hardening pass covering share validation, job lifecycle, and coinbase construction. Share validation now enforces min_ntime and nTime bounds across all channel types, share dedup and extranonce-prefix rotation were hardened, and several coinbase defects that could yield consensus-invalid coinbases were fixed, including undersized BIP141 parts and scriptSig size/serialization errors.
  • channels_sv2 job storage is now bounded on every axis: future templates, past jobs, replaced group jobs, client future jobs, rejected_shares, and seen_shares. The past-jobs cap is configurable per channel with a measured default.
  • channels_sv2 fixed several panics and state-machine gaps, including chain-tip transition handling, StandardChannel::on_new_group_channel_job on malformed upstream coinbases, an ExtranoncePrefix allocation released while live jobs still referenced its bytes, and arithmetic hardened against overflow, underflow, and division by zero.
  • BIP323 adaptations landed across the stack: the subprotocol crates, sv1_api, stratum_translation, and channels_sv2, with a supporting EllSwiftPubKey type alias added to binary_sv2.
  • codec_sv2 and framing_sv2 were refactored: the Frame<T, B> enum was removed and split into MessageFrame<T> and SerializedFrame<B>, HandShakeFrame became HandshakeMessage, and a SizeHint enum was introduced.
  • binary_sv2 split its inner representation into owned and reference variants, added B032 as an encodable field, made merkle-root computation return [u8; 32] without intermediate allocation, and bounded and redacted oversized values in error output.
  • noise_sv2 dropped its AES-256-GCM support and the aes-gcm dependency, leaving ChaCha20-Poly1305 as the sole cipher, alongside a broader hardening pass.
  • sv1_api exposed all message properties, gained an associated error type on its exposed trait, and now supports typed submit errors and extranonce prefix updates together with channels_sv2.
  • stratum_translation no longer produces rounded Stratum V1 difficulty targets.
  • New standardized error_code constants were added for protocol version mismatch in common_messages_sv2 and for channel capacity exhaustion in mining_sv2.
  • CI now enforces version bumps of modified crates against the highest version published on crates.io, integration tests were accelerated, and a false-green skip when no companion PR is present was fixed.

Crate changes

stratum-core
crate version was bumped from 0.5.1 to 0.6.0

channels_sv2
crate version was bumped from 7.0.0 to 8.0.0

binary_sv2
crate version was bumped from 6.0.0 to 7.0.0

derive_codec_sv2
crate version was bumped from 1.1.3 to 2.0.0

codec_sv2
crate version was bumped from 6.0.0 to 7.0.0

framing_sv2
crate version was bumped from 7.0.0 to 8.0.0

noise_sv2
crate version was bumped from 1.4.2 to 2.0.0

sv1_api
crate version was bumped from 5.0.0 to 6.0.0

stratum_translation
crate version was bumped from 0.4.1 to 0.5.0

parsers_sv2
crate version was bumped from 0.5.0 to 0.6.0

handlers_sv2
crate version was bumped from 0.5.0 to 0.6.0

extensions_sv2
crate version was bumped from 0.2.0 to 0.3.0

common_messages_sv2
crate version was bumped from 8.0.0 to 9.0.0

mining_sv2
crate version was bumped from 11.0.0 to 12.0.0

job_declaration_sv2
crate version was bumped from 9.0.0 to 10.0.0

template_distribution_sv2
crate version was bumped from 6.0.0 to 7.0.0

What's Changed

  • channels_sv2: keep failed group channel additions atomic by @par1ram in #2234
  • channels_sv2: reject undersized BIP141 coinbase parts by @par1ram in #2232
  • allow access to all sv1 message props by @coleFD in #2224
  • CONTRIBUTING.md: anchor dev calls on UTC instead of CET by @plebhash in #2245
  • split inner to owned and ref variants by @bit-aloo in #2225
  • channels_sv2: enforce min_ntime on validate_share (all channel types) by @plebhash in #2241
  • add BIP323 adaptations to subprotocol crates by @plebhash in #2235
  • Add assoc error type to sv1 exposed trait by @bit-aloo in #2268
  • sv1_api + stratum-translation: BIP323 adaptations by @plebhash in #2237
  • channels_sv2: BIP323 adaptations + fix version rolling validation by @plebhash in #2236
  • add Sv2 string to coinbase tag standard by @plebhash in #2226
  • channels_sv2: document why coinbase scriptSig length prefix is always 1 byte by @plebhash in #2244
  • channels_sv2: fix client set_target does not refresh targets of already-queued future jobs by @plebhash in #2257
  • Make merkle root from path return [u8; 32] by @bit-aloo in #2285
  • channels_sv2: drop future job superseded by reused template_id by @plebhash in #2267
  • Dont allocate vec for concat in merkle calculation by @bit-aloo in #2286
  • binary_sv2: hex encode only the displayed prefix of B016M by @bit-aloo in #2284
  • Remove aes256gcm from noise_sv2 by @bit-aloo in #2270
  • channels_sv2: harden arithmetic against overflow, underflow and division by zero by @plebhash in #2239
  • channels_sv2: bound future-job storage on client channels by @plebhash in #2266
  • channels_sv2: bound client rejected_shares map by @plebhash in #2263
  • channels_sv2: fix chain-tip transition correctness gaps in the job state machine by @plebhash in #2255
  • channels_sv2: fix client StandardChannel::on_new_group_channel_job panics on malformed upstream coinbase by @plebhash in #2259
  • channels_sv2: fix ExtranoncePrefix allocation released while live jobs still reference its bytes by @plebhash in #2261
  • channels_sv2: fix coinbase scriptSig size/serialization defects that yield consensus-invalid coinbases by @plebhash in #2243
  • common_messages_sv2: add protocol-version-mismatch SetupConnectionError error_code by @plebhash in #2287
  • speedup integration tests (on companion PRs) by @plebhash in #2293
  • fix rounded Sv1 difficulty target by @GitGab19 in #2291
  • Remove vec slice encodable binary sv2 by @bit-aloo in #2295
  • channels_sv2: bound job-storage retention (future templates, past jobs, replaced group jobs) by @plebhash in #2290
  • add B032 as encodable field by @bit-aloo in #2306
  • return unclaimed bytes and not remove them by @bit-aloo in #2305
  • Noise sv2 hardening by @bit-aloo in #2283
  • add ERROR_CODE_OPEN_MINING_CHANNEL_CHANNEL_CAPACITY_EXHAUSTED to mining_sv2 by @GitGab19 in #2308
  • Add Size hint enum by @bit-aloo in #2294
  • channels_sv2: enforce share nTime bounds, bound seen_shares, and fix job-ID/chain-tip/coinbase validation gaps (plus template_distribution_sv2 docs fix)) by @plebhash in #2303
  • fix(ci): prevent false green IT skip when no companion is present by @GitGab19 in #2320
  • binary-sv2: bound and redact the ValueExceedsMaxSize sample by @bit-aloo in #2316
  • Acknowledge field and struct visibility in parser by @bit-aloo in #2328
  • channels_sv2: make the past-jobs cap configurable w/ a 'good' default value by @gimballock in #2307
  • binary_sv2: add EllSwiftPubKey type alias by @plebhash in #2351
  • add AGENTS.md by @plebhash in #2366
  • channels_sv2: harden share dedup, extranonce-prefix rotation, BIP141 witness framing, and job/target validation by @plebhash in #2336
  • Reject non-finite input in hash_rate_to_target by @gimballock in #2221
  • Binary_sv2 combined loupe fixes by @bit-aloo...
Read more

v1.11.1

Choose a tag to compare

@GitGab19 GitGab19 released this 22 Jul 15:45
c1a7991

General release information

Highlights of this release:

This patch release focuses on improving Stratum V1 difficulty conversion correctness and maintaining crate version consistency.

Notable highlights include:

  • stratum_translation no longer rounds up Stratum V1 difficulty values during conversion, ensuring more accurate target calculations and better compatibility with existing Stratum V1 implementations.
  • stratum-core received a patch version bump to maintain version consistency across the workspace following the bug fix.

Crate changes

stratum-core
crate version was bumped from 0.5.0 to 0.5.1

stratum_translation
crate version was bumped from 0.4.0 to 0.4.1

What's Changed

New Contributors

Full Changelog: v1.11.0...v1.11.1

v1.11.0

Choose a tag to compare

@GitGab19 GitGab19 released this 08 Jul 16:00
3519557

General release information

Highlights of this release:

This release focuses on binary_sv2 reliability and cleanup, safer Sv1 parsing and conversion APIs, improved Sv1 difficulty handling, and expanded fuzz-testing coverage.

Notable highlights include:

  • binary_sv2 received several reliability and maintainability improvements, including absolute paths in procedural macro expansions, proper compile-time errors from proc macros, restored std build support, and broad cleanup of unused code and internal APIs.
  • sv1_api parsing and conversion paths were made safer by removing several unwrap calls, introducing the BadBytesConvert parsing error, and using bitcoin::hashes::hex for hexadecimal conversions.
  • HexBytes and HexU32Be now rely on their standard serialization and deserialization implementations instead of custom serde implementations, simplifying the Sv1 API and reducing duplicated conversion logic.
  • stratum-translation added integer power-of-two Sv1 difficulty conversion, improving difficulty and target conversion behavior between Stratum V1 and Stratum V2.
  • sv1_api gained dedicated fuzz targets, expanding automated coverage of parsing and protocol-handling edge cases.
  • channels_sv2::server::jobs::job_store::JobStore has been deprecated as part of the ongoing refinement and simplification of channel-management APIs.
  • CI execution was accelerated by adopting cargo binstall for tool installation.

Crate changes

binary_sv2
crate version was bumped from 5.0.0 to 6.0.0

parsers_sv2
crate version was bumped from 0.4.0 to 0.5.0

sv1_api
crate version was bumped from 4.0.0 to 5.0.0

stratum-core
crate version was bumped from 0.4.0 to 0.5.0

stratum_translation
crate version was bumped from 0.3.0 to 0.4.0

channels_sv2
crate version was bumped from 6.0.0 to 7.0.0

codec_sv2
crate version was bumped from 5.0.0 to 6.0.0

extensions_sv2
crate version was bumped from 0.1.0 to 0.2.0

framing_sv2
crate version was bumped from 6.0.1 to 7.0.0

handlers_sv2
crate version was bumped from 0.4.0 to 0.5.0

common_messages_sv2
crate version was bumped from 7.2.0 to 8.0.0

job_declaration_sv2
crate version was bumped from 8.0.0 to 9.0.0

mining_sv2
crate version was bumped from 10.0.0 to 11.0.0

template_distribution_sv2
crate version was bumped from 5.1.0 to 6.0.0

derive_codec_sv2
crate version was bumped from 1.1.2 to 1.1.3

What's Changed

Full Changelog: v1.10.0...v1.11.0

v1.10.0

Choose a tag to compare

@GitGab19 GitGab19 released this 03 Jun 14:30
f465e0a

General release information

This release focuses on share accounting improvements, channel-management API refinements, and protocol/specification alignment.

Notable highlights include:

  • channels_sv2::server::share_accounting now tracks rejected shares alongside accepted shares, while share-work accounting has been updated to use u64 where appropriate for improved correctness and scalability.
  • channels_sv2::server added a stable_hashrate flag, providing additional control over hashrate stability behavior.
  • Standardized error_code constants were introduced across the protocol implementation.
  • channels_sv2 replaced reference-based getters with accessor APIs, simplifying the public API and improving encapsulation.
  • Custom-work mining received stability improvements, fixing a share-validation panic after SetNewPrevHash and correcting chain-tip transition handling for custom mining jobs.
  • Specification compatibility was improved through protocol-alignment fixes, ensuring closer adherence to the latest Stratum V2 specifications.

Crate changes

stratum-core
crate version was bumped from 0.3.0 to 0.4.0

channels_sv2
crate version was bumped from 5.0.0 to 5.1.0

mining_sv2
crate version was bumped from 9.0.0 to 10.0.0

job_declaration_sv2
crate version was bumped from 7.0.0 to 8.0.0

template_distribution_sv2
crate version was bumped from 5.0.0 to 5.1.0

common_messages_sv2
crate version was bumped from 7.1.0 to 7.2.0

parsers_sv2
crate version was bumped from 0.3.0 to 0.4.0

handlers_sv2
crate version was bumped from 0.3.0 to 0.4.0

stratum_translation
crate version was bumped from 0.2.0 to 0.3.0

What's Changed

  • add stable_hashrate flag to channels_sv2::server by @plebhash in #2152
  • add error_code constants by @plebhash in #2151
  • represent share work as u64 (where appropriate) by @plebhash in #2138
  • channels_sv2::server::share_accounting keeps track of rejected shares by @plebhash in #2149
  • refine CONTRIBUTING.md with versioning exception to stratum-core by @plebhash in #2158
  • fix validate_share panic after on_set_new_prev_hash in custom-work mode by @rx18-eng in #2156
  • add ERROR_CODE_OPEN_MINING_CHANNEL_EXTENDED_CHANNELS_NOT_SUPPORTED_FOR_STANDARD_JOBS by @plebhash in #2162
  • Revert "refine CONTRIBUTING.md with versioning exception to stratum-core" by @plebhash in #2160
  • fix specs incompatibilities by @GitGab19 in #2165
  • Fix custom mining job chain-tip transitions by @0xjc65eth in #2164
  • channels_sv2: replace ref getters with accessor APIs by @plebhash in #2161

New Contributors

Full Changelog: v1.9.0...v1.10.0

v1.9.0

Choose a tag to compare

@GitGab19 GitGab19 released this 05 May 15:36
6ab03af

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_sv2 now clamps standard and extended channel targets to the declared max_target during channel creation and vardiff updates, fixing low-hashrate miners getting stuck when vardiff computed an easier target than allowed.
  • channels_sv2 added extranonce_manager, with ExtranonceAllocator and 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_api client/server trait methods now return Results across authorization, subscription, submit handling, extranonce/version-rolling state, status updates, and request-id tracking, allowing missing-state errors to propagate.
  • common_messages_sv2 added has_declare_tx_data(flags) for checking the Job Declaration DECLARE_TX_DATA setup flag.
  • Framing and codec coverage improved with quickcheck properties 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, dispatching stratum/main updates to sv2-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

New Contributors

Full Changelog: v1.8.0...v1.9.0

v1.8.0

Choose a tag to compare

@GitGab19 GitGab19 released this 19 Mar 12:46
9d9cc06

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_sv2 received 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, and blocks_found metrics were added.
  • Several SV2 protocol crates were aligned more closely with the specification, including fixes to channel_bit / message_type definitions, moving CHANNEL_BIT_RECONNECT to common_messages_sv2, and renaming the Job Declaration channel-bit constant to CHANNEL_BIT_PUSH_SOLUTION.
  • sv1_api is 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

New Contributors

Full Changelog: v1.7.0...v1.8.0

v1.7.0

Choose a tag to compare

@GitGab19 GitGab19 released this 22 Jan 13:35
ec0f2c5

General release information

Highlights of this release:

  • updated protocol crates to be aligned with latest breaking GROUP CHANNEL changes in the Sv2 specification (see stratum-mining/sv2-spec#162)
    • Extended Channels can now be grouped into Group Channels, bringing them in line with the long-standing behavior of Standard Channels
  • fuzzing coverage expanded to all Sv2 messages
  • multiple improvements on jobs management in channels_sv2
  • benchmarking fixed on buffer_sv2, and also added to noise_sv2, laying the groundwork for more systematic performance analysis

Crate changes

stratum-core

crate version was bumped from 0.1.0 to 0.2.0

channels_sv2

crate version was bumped from 2.0.0 to 3.0.0

codec_sv2

crate version was bumped from 4.0.0 to 4.0.1

handlers_sv2

crate version was bumped from 0.2.0 to 0.2.1

binary_sv2

crate version was bumped from 5.0.0 to 5.0.1

mining_sv2

crate version was bumped from 6.0.0 to 7.0.0

framing_sv2

crate version was bumped from 6.0.0 to 6.0.1

parsers_sv2

crate version was bumped from 0.2.0 to 0.2.1

stratum-translation

crate version was bumped from 0.1.1 to 0.1.2

noise_sv2

crate version was bumped from 1.4.0 to 1.4.1

job_declaration_sv2

crate version was bumped from 5.0.2 to 6.0.0

buffer_sv2

crate version was bumped from 2.0.0 to 3.0.0

sv1_api

crate version was bumped from 2.1.2 to 2.1.3

What's Changed

Full Changelog: v1.6.0...v1.7.0

v1.6.0

Choose a tag to compare

@plebhash plebhash released this 26 Nov 19:21
91ca49e

General release information

Highlights of this release:

  • added support for Sv2 Extensions via the introduction of extensions_sv2 crate, and some adaptations to handlers_sv2 and parsers_sv2
  • started actively fuzzing and performing regression tests against the fuzzing corpus
  • many crates were deprecated, namely:
    • binary_codec_sv2, with its functionality incorporated into binary_sv2
    • roles_logic_sv2, with some of its funcitonality inherited by crates like channels_sv2, handlers_sv2, parsers_sv2, and stratum-apps (on sv2-apps repo)
    • network_helpers_sv2, with some of its functionality inherited by stratum-apps crate (on sv2-apps repo)
    • rpc_sv2, with some of its functionality inherited by stratum-apps crate (on sv2-apps repo)
    • bip32_derivation
    • error_handling

⚠️ Most importantly, this is the first release where SRI is split across different repositories. Moving forward, this repository will carry library crates (and continue under the same global versioning scheme), and Sv2 applications (a.k.a. "roles") will live under https://github.com/stratum-mining/sv2-apps under a new global versioning scheme.

Crate changes

channels_sv2

crate version was bumped from 1.0.2 to 2.0.0

codec_sv2

crate version was bumped from 3.0.1 to 4.0.0

handlers_sv2

crate version was bumped from 0.1.0 to 0.2.0

binary_sv2

crate version was bumped from 4.0.0 to 5.0.0

mining_sv2

crate version was bumped from 5.0.1 to 6.0.0

framing_sv2

crate version was bumped from 5.0.2 to 6.0.0

parsers_sv2

crate version was bumped from 0.1.2 to 0.2.0

What's Changed

New Contributors

Full Changelog: v1.5.0...v1.6.0

v1.5.0

Choose a tag to compare

@GitGab19 GitGab19 released this 25 Sep 11:21
30405fa

General release information

Highlights of this release:

  • Translator Proxy was re-written with new functionality, namely:

    • aggregated and non-aggregated modes
    • optional vardiff
    • ability to fallback
  • Job Declarator Client was re-written with new functionality, namely:

    • allowing multiple downstream clients at the same time
    • allowing downstream clients to establish Standard Channels
  • new stratum-translation crate modularizes Sv1 ↔ Sv2 translation logic

  • BIP141 fields are now stripped from coinbase on Extended Jobs

  • new APIs added to network_helpers_sv2, expanding ways it can be used

⚠️ Most importantly, this is the last release where SRI is structured as a monorepo. Moving forward, this repository will carry library crates (and continue under the same global versioning scheme), and Sv2 applications (a.k.a. "roles") will live under https://github.com/stratum-mining/sv2-apps under a new global versioning scheme.

Crate changes

sv2_ffi

this crate was deprecated

roles_logic_sv2

crate version was bumped from 3.0.0 to 4.0.0

based on interactions with early adopters, some modules of roles_logic_sv2 were isolated into standalone crates, namely:

  • handlers_sv2
  • parsers_sv2
  • channels_sv2

handlers_sv2

new crate published at version 0.1.0

parsers_sv2

new crate published at version 0.1.1

channels_sv2

new crate published at version 0.1.0 and then bumped to 1.0.2

network_helpers_sv2

crate version was bumped from 4.0.0 to 4.0.1

stratum-common

crate version was bumped from 4.0.0 to 4.0.1

common_messages_sv2

crate version was bumped from 5.0.0 to 6.0.1

binary_codec_sv2

crate version was bumped from 2.0.0 to 3.0.0

binary_sv2

crate version was bumped from 3.0.0 to 4.0.0

framing_sv2

crate version was bumped from 5.0.0 to 5.0.1

codec_sv2

crate version was bumped from 2.1.0 to 3.0.1

mining_sv2

crate version was bumped from 4.0.0 to 5.0.1

job_declaration_sv2

crate version was bumped from 4.0.0 to 5.0.1

template_distribution_sv2

crate version was bumped from 3.0.0 to 4.0.1

sv1_api

crate version was bumped from 2.1.0 to 2.1.1

rpc_sv2

crate version was bumped from 1.1.0 to 1.1.1

PR List

New Contributors

Full Changelog: v1.4.0...v1.5.0

0