Skip to content

Releases: stratum-mining/stratum

v1.4.0

09 Jul 17:40
0b083ab
Compare
Choose a tag to compare

General release information

Highlights of this release:

  • Implemented recent Job Declaration (JD) spec changes in SRI
  • Introduced simplified and unified channel/job APIs in roles_logic_sv2, enabling correct SV2 behavior across all channel states without imposing architectural decisions on adopters. Pool migrated to use these APIs
  • Modularized vardiff logic to make it reusable across roles
  • Deprecated mining_proxy_sv2 and cleaned up roles_logic_sv2 internals
  • Simplified UX for configuring custom coinbase output with user-defined reward address
  • Added documentation for all roles: Pool, JDS, JDC, and tProxy

This release also includes internal refactors, documentation improvements, and CI/test enhancements.

Crate changes

const_sv2

this crate has been deprecated

roles_logic_sv2

some new modules were introduced, namely:

  • channels

some modules were refactored, namely:

  • handlers
  • channel_logic

it had the following modules removed, namely:

  • common_properties
  • job_dispatcher

crate version was bumped from 2.0.0 to 3.0.0

stratum_common

crate version was bumped from 2.0.0 to 3.0.0

network_helpers_sv2

crate version was bumped from 3.0.0 to 4.0.0

job_declaration_sv2

crate version was bumped from 3.0.0 to 4.0.0

mining_sv2

crate version was bumped from 3.0.0 to 4.0.0

common_messages_sv2

crate version was bumped from 4.0.0 to 5.0.0

framing_sv2

crate version was bumped from 4.0.0 to 5.0.0

noise_sv2

crate version was bumped from 1.3.0 to 1.4.0

template_distribution_sv2

crate version was bumped from 3.0.0 to 3.1.0

codec_sv2

crate version was bumped from 2.0.0 to 2.1.0

sv2_ffi

crate version was bumped from 2.0.0 to 2.1.0

PR List

Read more

v1.3.0

28 Mar 19:55
6a4874d
Compare
Choose a tag to compare

General release information

This release migrates the old CI system based on Message Generator into the new SRI Integration Tests Framework.

crate changes

noise_sv2

no_std compatibility was made optional

crate version was bumped from v1.2.1 to v1.3.0

codec_sv2

no_std compatibility was made optional

crate version was bumped from v1.3.1 to v2.0.0

key-utils

was made no_std-compatible (optionally)

crate version was bumped from v1.1.0 to v1.2.0

roles_logic_sv2

some modules were refactored, namely:

  • handlers
  • job_creator
  • job_dispatcher
  • channel_logic

it had the following modules removed:

  • routers
  • selectors

crate version was bumped from v1.2.3 to v2.0.0

network_helpers_sv2

the async_std flavors were removed, leaving only tokio flavor

Connection no longer returns AbortHandles

crate version was bumped from v2.0.2 to v3.0.0

framing_sv2

with_serde feature flag was removed

crate version was bumped from v3.0.0 to v4.0.0

common_messages_sv2

with_serde feature flag was removed

crate version was bumped from v3.0.0 to v4.0.0

job_declaration_sv2

with_serde feature flag was removed

crate version was bumped from v2.0.0 to v3.0.0

mining_sv2

with_serde feature flag was removed

ExtendedExtranonce was refactored

crate version was bumped from v2.0.0 to v3.0.0

template_distribution_sv2

with_serde feature flag was removed

crate version was bumped from v2.0.0 to v3.0.0

sv2-ffi

with_serde feature flag was removed

crate version was bumped from v1.0.2 to v2.0.0

buffer_sv2

with_serde feature flag was removed

crate version was bumped from v1.1.1 to v2.0.0

binary_sv2

serde-based functionality was deprecated

crate version was bumped from v1.2.1 to v2.0.0

PR list

Read more

v1.2.1

08 Jan 17:05
dbc349b
Compare
Choose a tag to compare

General release information

This is a PATCH release.

After v1.2.0 we identified a bug on roles_logic_sv2 crate, which is described in detail on #1324

The bug manifested while mining on testnet4. Originally, the non-future job creation logic on roles_logic_sv2 always used the system time for the header timestamp, instead of the timestamp defined by the SetNewPrevHash message sent by the Template Provider. This went un-noticed for a long time, until it was noticed while mining on testnet4 (where blocks are regularly mined with timestamps pushed into the future in order to exploit the difficulty adjustment mechanism).

Now, non-future jobs are always created by using the original timestamp defined by the Template Provider.

What's Changed

  • simplify [package.metadata.docs.rs] on protocols crates by @plebhash in #1318
  • Fix timestamp bug - min_ntime becomes always the one sent by TP by @GitGab19 in #1325

Full Changelog: v1.2.0...v1.2.1

v1.2.0

27 Dec 17:48
651f35a
Compare
Choose a tag to compare

General release information

This release adds new Rust Docs for the following crates:

  • buffer_sv2
  • binary_sv2
  • framing_sv2
  • template_distribution_sv2
  • mining_sv2
  • job_declaration_sv2
  • common_messages_sv2
  • binary_sv2
  • binary_codec_sv2
  • derive_codec_sv2

All the public APIs should now have documentation accessible easily for the library users through https://www.docs.rs/

no_std support was made into a default on the following crates:

  • buffer_sv2
  • framing_sv2
  • template_distribution_sv2
  • mining_sv2
  • job_declaration_sv2
  • common_messages_sv2
  • binary_sv2
  • binary_codec_sv2
  • derive_codec_sv2
  • serde_sv2

Finally, a Translator Proxy CI test that was based on the Message Generator was migrated into the new Integration Tests Framework

What's Changed

New Contributors

Full Changelog: v1.1.0...v1.2.0

v1.1.0

16 Oct 15:11
5bf3939
Compare
Choose a tag to compare

General release information:

This release is focused on improving the protocol crates documentation and adding more testing abilities to the project. Moreover, we have refined our release and git branching process.

noise-sv2 , codec-sv2, and const_sv2 crates documentation have been re-written. All the public functions should now have documentation accessible easily for the library users through https://www.docs.rs. Documentation was also added for non public functions to make it easier for developers to maintain the code-base. In addition to the documentation, example folder was added for both crates, demonstrating how to use library code in practice.

With a goal to improve our CI checks and code reliability, we developed a new integration test framework. This testing framework allows us to run multiple roles and intercept messages exchanged between them, giving us the ability to assert the roles behavior in different scenarios. While we are not going to remove the Message Generator testing framework completely, we aim to migrate most of the current Message Generator tests to the new testing framework.

We have also changed our release and contributing process. For the contributing process, we stopped using dev branch and now we are developing and making pull requests against main branch. and for the release we are tagging every release through Github and creating a specific branch for it. For more info about the release and contributing process please refer to RELEASE.md and CONTRIBUTING.md.

From this release we are stopping to release the following crates, as they are only in PoC phase. It is planned to stabilize and start releasing them again during Q1/Q2 2025.

  • pool_sv2
  • jd_client
  • jd_server
  • mining_proxy_sv2
  • translator_sv2

Breaking Changes

None

Fixed Bugs

None

Other Notable Changes

None

Changelog

New Contributors

Full Changelog: v1.0.2...v1.1.0

v1.0.2

20 Aug 17:28
bb0f5a3
Compare
Choose a tag to compare

Global Release v1.0.2

What's Changed

New Contributors

Full Changelog: v1.0.1...v1.0.2

v1.0.1

28 May 14:31
Compare
Choose a tag to compare

Global Release v1.0.1.

PR Changelog

Crate Version changes

protocols

  • framing-sv2: v1.0.0 β†’ v1.1.0
  • codec-sv2: v1.0.1 β†’ v1.1.0
  • roles-logic-sv2: v1.0.0 β†’ v1.1.0

roles

  • jd-client: v0.1.0 β†’ 0.1.1
  • jd-server: v0.1.0 β†’ v0.1.1
  • mining-proxy: v0.1.0 β†’ v0.1.1
  • pool: v0.1.0 β†’ v0.1.1
  • translator: v0.1.0 β†’ v0.1.1
  • roles-utils/network-helpers: v0.1.0 β†’ v2.0.0

utils

  • key-utils: v1.0.0 β†’ v1.1.0

v1.0.0

23 May 21:37
db994da
Compare
Choose a tag to compare

Please refer to https://stratumprotocol.org/blog/sri-1-0-0/ for notes on SRI release v1.0.0