What's Changed
- API: Initialise
uato "" if not provided by @luke-jr in #177 - CI/Gentoo: Install dependencies with --backtrack=100 by @luke-jr in #182
- CI: Update actions versions & add more FreeBSD targets by @luke-jr in #183
- Avoid "doxxing" if admin_password is set or not by @luke-jr in #189
- Bugfix: Add length checks for server-provided data by @luke-jr in #190
- Bugfix: queue: Add missing pthread.h and stddef.h includes in header by @luke-jr in #206
- CI/Gentoo: Always emerge with --quiet-build y etc by @luke-jr in #203
- Fix libevent compatibility v2.1.13 by @Retropex in #216
- Bugfix: protocol: Enforce username length limit seeking into message by @luke-jr in #181
- api: Set MHD connection idle timeout to 120s by @MattDHill in #186
- api: Correct max lengths of bitcoind_rpc{url,user,password} by @luke-jr in #199
- protocol: Use libsodium randombytes_buf for initial sending_header_key by @luke-jr in #202
- Bugfix: stratum_dupes: Correct upper-bound global_cur_stratum_jobs range check in find_first_less_than by @luke-jr in #205
- Bugfix: Actually use extra_block_submissions.urls beyond the first item by @luke-jr in #193
- blocktemplates: Make datum_blocktemplates_notifynew prevhash checks consistent by @luke-jr in #194
- Bugfix: conf: Abort cleanly if malloc fails, even with NDEBUG by @luke-jr in #196
- utils: Give a second for logger to print error if datum_reexec fails by @luke-jr in #197
- api: add JSON api by @Retropex in #179
- CI: Deprecate gentoo by @Retropex in #240
- Show the gateway version on the dashboard. by @Retropex in #173
- coinbaser: check the pool tag override by @Retropex in #243
- build: Add GUIX scripts by @Retropex in #239
- api: generate a random CSRF token instead of deriving it from the config. by @Retropex in #246
- api: bound MHD drain wait before config reexec by @vincenzopalazzo in #222
- api: MHD_HTTP_FORBIDDEN if password is empty by @Retropex in #245
- logger: Wait for the writer thread before returning from init by @jasonsopko in #231
- net: check for correct pool message encryption by @Retropex in #244
- stratum: reject mining.submit before subscribe by @vincenzopalazzo in #221
- stratum: reject submits for never-generated coinbase slots by @vincenzopalazzo in #220
- Overhaul DATUM Gateway documentation for 0.5.0 by @wizkid057 in #247
- utils: Check nbits validity by @Retropex in #241
- stratum: No need to send set_difficulty before first job by @luke-jr in #79
- queue: guard free/prep args and document quiesce contract by @vincenzopalazzo in #224
- api: size /clients dashboard for HTML-escaped fields by @vincenzopalazzo in #219
- protocol: Fix coinbaser response wait race by @Fudmottin in #229
- protocol: Bound the job-validation parser and guard clz(0) by @jasonsopko in #236
- API: Add two more statistics to umbrel endpoint by @Retropex in #149
- Bugfix: stratum: Keep the dupe index valid across a table cleanup by @paulscode in #237
- bugfix: Correct minor discrepancy between timings for duplicate work check vs expected. by @wizkid057 in #249
- protocol: Bound the 0x50 0x11 transaction reply to the buffer by @jasonsopko in #235
- net: check pool connection and prime ID before sending POW by @Retropex in #242
- Fix DATUM submission queue lifetime across reconnects by @wizkid057 in #250
New Contributors
- @MattDHill made their first contribution in #186
- @jasonsopko made their first contribution in #231
- @Fudmottin made their first contribution in #229
- @paulscode made their first contribution in #237
Full Changelog: v0.4.1beta...v0.5.0beta
Getting started
See INSTALL.md for requirements, installation, and configuration:
- Install OCEAN's Debian packages for Debian Trixie on amd64, including Bitcoin Core.
- Install Debian's official package, or use the DATUM box installer image for a dedicated machine.
- Build from source, optionally install under a custom prefix and run as a systemd service, or run with Docker.
- Configure Bitcoin Core and DATUM Gateway.
- Set up pooled solo mining with shared rewards.
- Set up full solo mining without a pool.
- Work through the verification checklist.
- Optimize share difficulty, LAN bandwidth, remote sites, and node peers.
For pooled mining, also review the username and payout-address documentation.