Skip to content

Releases: stratum-mining/sv2-apps

v0.3.4

14 Apr 17:53
bcf246a

Choose a tag to compare

This is a PATCH release.

After v0.3.1 we started a group of early testers. This release is fixing issues reported by them.

What's Changed

Full Changelog: v0.3.3...v0.3.4

v0.3.3

07 Apr 17:37
a80a483

Choose a tag to compare

This is a PATCH release.

After v0.3.1 we started a group of early testers. This release is fixing issues reported by them.

What's Changed

  • remove high_diff_chain from workspace and make it downloadable by @lucasbalieiro in #401
  • (Tproxy): add hotpath to sv1 server impl by @Shourya742 in #405
  • Remove no-op retain from handle set custom mining job success by @Shourya742 in #406
  • reintroduce mining_device bin by @plebhash in #408
  • add config option to start JDC in solo mining mode by @xyephy in #398
  • bump jd_client_sv2; update integration_tests_sv2 dependency versions by @plebhash in #411
  • Aggregate monitoring data for internal extended channels in tproxy in aggregated mode by @Shourya742 in #410

Full Changelog: v0.3.2...v0.3.3

v0.3.2

01 Apr 13:27
76b919f

Choose a tag to compare

This is a PATCH release.

After v0.3.1 we started a group of early testers. This release is fixing issues reported by them.

What's Changed

  • Add panic hook to pass panic and backtrace as a tracing event by @Shourya742 in #393
  • Fix translator handshake flow by @Shourya742 in #387
  • Truncate user_identity to 32 bytes. by @Shourya742 in #395
  • JDC doesn't fallback if SetCustomMiningJob.Error.error_code == stale-chain-tip by @plebhash in #385

Full Changelog: v0.3.1...v0.3.2

v0.3.1

27 Mar 13:20
3a52bac

Choose a tag to compare

General release information

This is a PATCH release.

After v0.3.0 we noticed some race conditions on JD message flow (see #364) arising from the JDS refactor carried via #299

These race conditions arise due to the current bitcoin_core_sv2::job_declaration_protocol design, which relies on a MempoolMirror (which is arguably suboptimal).

This was addressed via #365 + #372 + #375. On the long term (ideally Bitcoin Core v32), we expect bitcoin/bitcoin#34020 to allow us to simplify bitcoin_core_sv2 design, reducing the need for all the workarounds on the suboptimal MempoolMirror design.

Moreover, #375 also addressed a small bug on jd_server_sv2::job_declarator::token_management::TokenManager (via 7b1d763).

What's Changed

  • Remove one keyword in tProxy Cargo.toml by @GitGab19 in #348
  • Add solution subdirectory to solution_block_dir by @Shourya742 in #350
  • remove verbose debug log from bitcoin_core_sv2::job_declaration_protocol by @plebhash in #361
  • JDC asks for token when none is available for RequestTransactionData.Success handler by @plebhash in #363
  • update hotpath and increase UI limit to max by @Shourya742 in #357
  • Adapt tproxy user_identity manipulation to SRI pool patterns by @GitGab19 in #370
  • fix JD chain tip race by @plebhash in #365
  • ci: replace stratum freshness check with event-driven stratum-core sync by @plebhash in #353
  • refine how JDS handles downstream disconnections by @plebhash in #352
  • refine JD race patch by @plebhash in #372
  • make mining_device into submodule of integration_tests_sv2 crate by @plebhash in #355
  • chore(deps): update stratum-core to 47b9f92 by @SV2-bot in #374
  • further refine JD race patch + refine TokenManager by @plebhash in #375

Full Changelog: v0.3.0...v0.3.1

v0.3.0

19 Mar 18:30
36562ad

Choose a tag to compare

General release information

Highlights of this release:

  • added solo mining mode to pool_sv2, allowing payout routing directly from user_identity patterns
  • major refactor of jd-server (JDS), together with multiple jd_client_sv2 improvements around configurable JD mode, token allocation
  • expanded and hardened translator_sv2 / tProxy with a new tproxy mode, better concurrent channel handling, more robust no-upstream behavior, and improved hashrate reporting
  • improved operational tooling across the apps with shutdown APIs, broader monitoring feature support, a better global endpoint, and new blocks_found Prometheus metrics
  • hardened monitoring with fixes for snapshot-cache DoS risk, redundant metrics removal, and cleaner behavior when vardiff is disabled
  • upstream connections now support hostname resolution with timeouts, and the Docker setup now relies on Docker DNS instead of static IPs
  • improved protocol correctness and shutdown flow across pool_sv2, jd_client_sv2, and translator_sv2, including share acceptance on upstream acknowledgement and cancellation-token-based shutdown coordination
  • expanded test and release coverage with new monitoring/integration tests, a dedicated tests.yaml workflow, stratum-core freshness checks, and improved publishing of app crates

What's Changed

  • Get bitcoin-capnp-types from crates.io and publish apps on release by @GitGab19 in #208
  • Remove check alive check from spawn job keepalive loop method by @Shourya742 in #213
  • Add btrust logo to readme by @pavlenex in #218
  • (Tproxy): log on no upstream channel instead of shutdown by @Shourya742 in #217
  • add SHUTDOWN_BROADCAST_CAPACITY constant by @plebhash in #214
  • Initialize downstream channel with eventual future_jobs in AGGREGATED mode by @GitGab19 in #231
  • Add tproxy mode by @Shourya742 in #229
  • Add machete to CI by @Shourya742 in #233
  • Add clean_queue method to Sniffer by @xyephy in #226
  • fix(channels): Update channel nominal hashrate from downstream vardiff estimate by @gimballock in #245
  • Migrate tproxy to dashmap by @Shourya742 in #228
  • remove channel from extended channels in ChannelManager after it receives a CloseChannel from the Sv1Server by @GitGab19 in #244
  • remove upstream_extended_channel from tProxy's ChannelManager and use AGGREGATED_CHANNEL_ID by @GitGab19 in #246
  • add .dockerignore by @lucasbalieiro in #250
  • fix shares_submitted tracking in server monitoring for tProxy and JDC by @GitGab19 in #254
  • fix(monitoring): remove redundant sv2_client_channel_shares_per_minute metric by @gimballock in #252
  • Move test suite to tests.yaml workflow (Fixes #235) by @therohityadav in #251
  • Add implicit SetupConnection handling to MockDownstream and MockUpstream by @xyephy in #191
  • update downstream_channel_id_and_job_id_to_template_id mappings in handle_new_template by @GitGab19 in #259
  • fix(monitoring): Eliminate DoS vulnerability via snapshot cache by @gimballock in #193
  • Fix: JDC sends bad SetupConnection.Success.flags (#266) by @therohityadav in #270
  • fix(monitoring): make nominal_hashrate Optional and omit metrics when vardiff disabled by @gimballock in #263
  • replace tokio::sync::broadcast as the main shutdown notification system by @plebhash in #225
  • improve global/ API endpoint by @GitGab19 in #277
  • JDC + tProxy defer channels_sv2::client share acceptance to upstream acknowledgement by @plebhash in #283
  • feat(monitoring): expose blocks_found metric via Prometheus by @gimballock in #278
  • fix JDC extranonce ranges by @plebhash in #284
  • fix(pool): set correct SetupConnection.Success.flags instead of echoing client flags by @average-gary in #296
  • fix(tproxy): report SV1 downstream hashrate when vardiff is disabled by @gimballock in #291
  • Make the server not hang the application when the handshake is incomplete. by @Shourya742 in #290
  • Set JD Mode from config by @Shourya742 in #180
  • add retry police to the integration test pool_does_not_hang_on_no_handshake by @lucasbalieiro in #306
  • add monitoring feature to jd-client, translator, and pool by @GitGab19 in #307
  • remove time sensitive assertion from snapshot_cache::tests::test_snapshot_refresh by @lucasbalieiro in #302
  • Cache shares JDC by @Shourya742 in #174
  • feat: add hostname resolution for upstream connections by @average-gary in #286
  • make the docker setup rely on docker DNS instead of using static IPs by @lucasbalieiro in #316
  • fix(config): make server_id, supported_extensions, required_extensions optional by @average-gary in #294
  • Add shutdown apis to apps by @Shourya742 in #315
  • improve JDC token allocation by @plebhash in #314
  • sniffer: add assert_message_not_present_for for reliable negative assertions by @xyephy in #253
  • Make concurrent Open channel request handling in Tproxy better by @Shourya742 in #312
  • add stratum-freshness job to lockfiles workflow by @GitGab19 in #327
  • JDC start_downstream_server breaks loop on fallback by @plebhash in #334
  • Add unit and integration tests for monitoring module by @gimballock in #281
  • refresh stratum-core lockfiles by @plebhash in #339
  • add solo mining mode to the pool app by @lucasbalieiro in #321
  • refresh stratum-core lockfiles by @Shourya742 in #341
  • JDS refactor by @plebhash in #299
  • re-enable publishing of JDS after refactor by @plebhash in #344
  • client share accounting refinement by @plebhash in #328
  • Install capnp in release-apps workflow and remove jd-server from binary-release workflow by @GitGab19 in #346
  • Fix versions by @GitGab19 in #347
  • Remove one keyword in tProxy Cargo.toml by @GitGab19 in #348

New Contributors

Full Changelog: v0.2.0...v0.3.0

v0.2.0

22 Jan 15:58
76408ca

Choose a tag to compare

General release information

Highlights of this release:

  • updated pool_sv2, jd_client_sv2 and translator_sv2 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
    • now pool_sv2 and jd_client_sv2 always treat every Extended Channel as part of the same Group Channel, under some given connection
    • now translator_sv2 can deal with Sv2 messages addressed to a Group Channel
  • bitcoin_core_sv2 now supports Bitcoin Core v30.2
  • added HTTP monitoring APIs to pool_sv2, jd_client_sv2 and translator_sv2 (along with support for Swagger UI and OpenAPI schemas)
  • added hotpath to pool_sv2, jd_client_sv2 and translator_sv2 to enable performance monitoring
  • translator_sv2 now optionally sends Sv1 "keepalive" job (incrementing timestamps), whenever there's a long period of time without Sv2 jobs
  • improved UI/UX of pool_sv2 and jd_client_sv2 with regards to UNIX path of Bitcoin Core
  • general improvements on pool_sv2, jd_client_sv2 and translator_sv2
  • added new Integration Tests, expanding coverage
  • started publishing stratum-apps to crates.io

What's Changed

Full Changelog: v0.1.0...v0.2.0

v0.1.0

27 Nov 17:29
bf08752

Choose a tag to compare

General release information

Highlights of this release:

This is the first release of the new sv2-apps repository, which will carry SV2 application (a.k.a. "roles") crates. SV2 library crates will remain under stratum-mining/stratum.

  • added native Bitcoin Core v30 support via the bitcoin_core_sv2 crate, integrated into JDC and Pool
  • added Docker support for SV2 Apps to simplify cross-platform deployment
  • precompiled binaries for all major platforms

What's Changed

New Contributors

Full Changelog: https://github.com/stratum-mining/sv2-apps/commits/v0.1.0