v0.3.0
General release information
Highlights of this release:
- added solo mining mode to
pool_sv2, allowing payout routing directly fromuser_identitypatterns - major refactor of
jd-server(JDS), together with multiplejd_client_sv2improvements around configurable JD mode, token allocation - expanded and hardened
translator_sv2/ tProxy with a newtproxymode, better concurrent channel handling, more robust no-upstream behavior, and improved hashrate reporting - improved operational tooling across the apps with shutdown APIs, broader
monitoringfeature support, a betterglobalendpoint, and newblocks_foundPrometheus 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, andtranslator_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.yamlworkflow,stratum-corefreshness checks, and improved publishing of app crates
What's Changed
- Get
bitcoin-capnp-typesfrom 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_CAPACITYconstant by @plebhash in #214 - Initialize downstream channel with eventual
future_jobsin 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
ChannelManagerafter it receives aCloseChannelfrom the Sv1Server by @GitGab19 in #244 - remove
upstream_extended_channelfrom tProxy's ChannelManager and useAGGREGATED_CHANNEL_IDby @GitGab19 in #246 - add
.dockerignoreby @lucasbalieiro in #250 - fix
shares_submittedtracking 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_idmappings inhandle_new_templateby @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::broadcastas the main shutdown notification system by @plebhash in #225 - improve
global/API endpoint by @GitGab19 in #277 - JDC + tProxy defer
channels_sv2::clientshare 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_handshakeby @lucasbalieiro in #306 - add
monitoringfeature to jd-client, translator, and pool by @GitGab19 in #307 - remove time sensitive assertion from
snapshot_cache::tests::test_snapshot_refreshby @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_serverbreaks loop on fallback by @plebhash in #334 - Add unit and integration tests for monitoring module by @gimballock in #281
- refresh
stratum-corelockfiles 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-appsworkflow and remove jd-server frombinary-releaseworkflow by @GitGab19 in #346 - Fix versions by @GitGab19 in #347
- Remove one keyword in tProxy
Cargo.tomlby @GitGab19 in #348
New Contributors
- @pavlenex made their first contribution in #218
- @gimballock made their first contribution in #245
- @therohityadav made their first contribution in #251
- @average-gary made their first contribution in #296
Full Changelog: v0.2.0...v0.3.0