Skip to content

v0.3.0

Choose a tag to compare

@GitGab19 GitGab19 released this 19 Mar 18:30
36562ad

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