-
WarpAxe v0.1.41
Stablereleased this
2026-11-10 06:56:39 +00:00 | 31 commits to main since this releaseTLS to a pool on your own node, a stuck hash domain is healed, and long pool messages are handled. A healthy miner mines as before. This release lets WarpAxe connect over TLS to a pool with a self-signed certificate, such as WarpPool on Umbrel, once you trust its key. The firmware now heals a hash domain that stops counting, and WarpTune knows what the firmware handles. Pools that pay many miners in the coinbase no longer fill the miner's internal memory. Certificate dates are now checked once NTP has set the clock, and the last eMudhra root is gone from the trust store.
What is new.
- TLS to a pool with a self-signed certificate. WarpPool on Umbrel creates its own certificate, and until now WarpAxe could only reach it without TLS. When a pool's certificate is not from a public authority, the Pool page now shows the fingerprint of the pool's key (SHA-256 of its public key,
AB:CD:…) and asks whether to trust it. WarpPool v1.48.0 shows the same value in its Connect window to compare. After the click the miner connects with that key only, also by IP address. If the key changes later, the miner does not connect and says so, and a new key needs a new click. "Forget" removes the trust. A pool with a certificate from a public authority keeps going through the certificate store as before. Main and fallback pool each keep their own key, and a saved pool takes its key along. API:stratumTLSPin,stratumTLSPending,stratumTLSKeyChanged,stratumTLSPinned(and thefallbackStratum…ones);PATCH /api/system {"stratumTLSPin": "…"}trusts a key,""forgets it. Tested on a NerdAxe Gaia against WarpPool on Umbrel, by name and by IP address, plus a key change against a local test server; that a saved pool keeps its key is covered by unit tests only. - A stuck hash domain is healed. A BM1370 or BM1373 counts its work in four or eight domains. One domain can stop counting while the rest of the chip hashes. If a domain stays below a quarter of the average of its sibling domains for ten minutes while work goes out, the miner switches its chips off and on. This takes about six seconds; clock and voltage stay the same. At most one such restart an hour, shared with the restart for a silent chip. A domain that sticks again within an hour after each of three restarts is left alone until the next boot or a new clock or voltage. API:
domainLatchResets,lastDomainLatchReset {chip, domain, percent, uptime_s},domainsGivenUp; the event log shows each one. Tested only in the chip simulator: a domain at 3 % is found, one at 50 % is left alone. We have not seen a real case yet. - WarpTune knows what the firmware handles.
/api/system/infolistsselfHeals(chain_silent,chip_silent,domain_latch), and WarpTune v1.48.0 waits for the firmware in those cases instead of acting itself. WarpTune also tells the miner that it is regulating it (POST /api/v1/regulator {"ttl_s": 600}, shown asexternalRegulator {active, expires_in_s}). This lives in RAM only, writes nothing to flash and does not wake the display. - What WarpAxe heals by itself, now in three cases. If the whole chain goes silent for a minute, the miner restarts it. If one chip stays silent for ten minutes while work goes out, the miner restarts its chain (since v0.1.40; on our NerdOCTAXE-γ one of eight chips had stayed dark for almost two days before that). New in v0.1.41: if one hash domain stays far below the others for ten minutes, the miner switches its chips off and on (tested in the simulator only so far). The two newer cases share their rules: at most one restart an hour; after three tries that do not hold, the miner gives up until the next boot or a new clock or voltage; and the timers stop while the pool is away. WarpTune v1.48.0 reads
selfHealsand leaves these cases to the firmware, so it no longer turns the clock down for a silent chip or a stuck domain. For miners on their original firmware, WarpTune handles the silent chip itself, but not domains. - Pools that pay many miners in the coinbase. Some pools pay their miners directly in the coinbase, which gives a pool message of tens or hundreds of KB (ESP-Miner issue #2081). WarpAxe now decodes the coinbase once per job instead of copying it into every piece of work for the chips, so the scarce internal RAM is no longer filled with copies of it. The payout panel lists at most 32 outputs: yours, the SegWit checksum, then the largest, with the rest summed in one row. Until now a coinbase with more than 64 outputs showed no payout at all. A pool line over 512 KB ends the connection and the miner reconnects (
stratumLinesTooLong), instead of reading until the memory is gone. Stratum V2 accepts messages up to 64 KB instead of 8 KB. Tested against a test pool sending 110 to 3,000 outputs (lines up to 186 KB): shares kept flowing and 25 to 45 KB of internal RAM stayed free. An endless line led to a reconnect in under a second. - Certificates: the last eMudhra root removed, dates checked. WarpAxe now also leaves out
emSign Root CA - G1, the one eMudhra root still in Mozilla's store after the October 2026 incident, so the firmware trusts 117 roots (curl's extract of the Mozilla store of 20 October 2026, minus this one). No pool, update or price server the firmware talks to chains to it. The firmware now also checks each certificate's dates: once NTP has set the clock after a boot, an expired certificate, or one not valid yet, is refused. Until then the dates are not checked, so a miner whose clock is not set yet still connects. In the first five minutes after a boot, a TLS pool connection waits up to 15 seconds for NTP. A pool trusted by its key does not depend on dates. Tested on an ESP32-S3 devkit: a server with an expired certificate was refused; valid servers, the update check and the price fetch kept working. On a NerdAxe Gaia the clock was set 13 seconds after the boot and the pinned TLS connection to WarpPool on Umbrel was up at 17 seconds. - Web interface.
- During an online update the card on the System page shows the same progress as the bar at the top; it stayed at 0 % before (thanks to John11).
- On the Pool page the connection card updates by itself after a save, without a reload.
- Saving pool settings no longer says a restart is needed: pool changes apply at once.
- The witness-commitment row in the payout panel now reads "SegWit checksum (no amount)".
One image for every supported board:
warpaxe.bin,warpaxe.bin.sha256,warpaxe.bin.sig; for the first installwarpaxe-factory.binandweb-flasher.tar.gz(checksums ininstall.sha256).Downloads
- TLS to a pool with a self-signed certificate. WarpPool on Umbrel creates its own certificate, and until now WarpAxe could only reach it without TLS. When a pool's certificate is not from a public authority, the Pool page now shows the fingerprint of the pool's key (SHA-256 of its public key,