| Age | Commit message (Expand) | Author |
| 2026-08-23 | net: stop serving the 2009 marketplace to anonymous peers | bitflash-maintainer |
| 2026-08-23 | size thread pools by the cores we are allowed, not the ones the host has | bitflash-maintainer |
| 2026-08-23 | net: do not consume a header until the body is there, and cap what one can claim | bitflash-maintainer |
| 2026-08-23 | consensus: cap block size at 1 MB, and stop assembling blocks we would reject | bitflash-maintainer |
| 2026-08-23 | net: one dead descriptor must not cost every peer its turn | bitflash-maintainer |
| 2026-08-23 | net: time the stall, not the wait, before dropping an unreadable peer | bitflash-maintainer |
| 2026-08-23 | net: give up waiting for a message body that is never going to arrive | bitflash-maintainer |
| 2026-08-23 | net: stop closing a descriptor number that now belongs to somebody else | bitflash-maintainer |
| 2026-08-23 | pool: refuse jobs when no peer has reported a height for 20 minutes | bitflash-maintainer |
| 2026-08-23 | pool: gate jobs on peer height, not tip age | bitflash-maintainer |
| 2026-08-23 | payout: make in-flight payments survive a restart | bitflash-maintainer |
| 2026-08-23 | payout: zero-initialise blockHash; nostr: drop four dead relays | bitflash-maintainer |
| 2026-08-23 | payout: key obligations on block hash, and wait for coin instead of expiring | bitflash-maintainer |
| 2026-08-23 | payout: say what actually failed instead of blaming transaction size | bitflash-maintainer |
| 2026-08-23 | pool: wait to be paired before wrapping the rendezvous socket | bitflash-maintainer |
| 2026-08-23 | nostr: verify relay certificates -- wss:// was fully MITM-able | bitflash-maintainer |
| 2026-08-23 | participant: honor explicit /hashthreads=1 (floor of 2 only in auto mode) | bitflash-maintainer |
| 2026-08-23 | operator: /noannounce flag -- serve miners without publishing pool announcements | bitflash-maintainer |
| 2026-08-23 | payout: retry failed SendMoney for 24h, not 30min | bitflash-maintainer |
| 2026-08-23 | nostr: make /rvrelay a true pin -- never merge discovered relays | bitflash-maintainer |
| 2026-08-23 | pool: sync-gate job creation, retry failed payouts; widen nostr relay set | bitflash-maintainer |
| 2026-08-04 | gui: say why the wallet would not open, where the user can see it (#136) | Bitflash |
| 2026-08-04 | wallet encryption: the stack from #130–#133, with the two blockers fixed (#... | Bitflash |
| 2026-08-03 | gui: name the icon resource GLFW_ICON so the window actually wears it (#126) | Bitflash |
| 2026-08-03 | Activate BIP44 wallet derivation (#124) | mtg0001 |
| 2026-08-03 | wallet: wire -sendto into main(), where it never was (#119) | Bitflash |
| 2026-08-03 | Add wallet recovery balance audit (#117) | mtg0001 |
| 2026-08-03 | gui: read the Finish condition once, before the button that clears it (#118) | Bitflash |
| 2026-08-02 | wallet: one quiet batch is not far enough to stop a restore (#115) | Bitflash |
| 2026-08-02 | net: back to one accept thread until every relay takes more than one (#114) | Bitflash |
| 2026-08-02 | rendezvous: let a node park more than one registration (#113) | Bitflash |
| 2026-08-02 | Add consensus block size limit (#111, from #110) | Bitflash |
| 2026-08-02 | Keep HD change recoverable and bound message stalls (#109) | mtg0001 |
| 2026-08-01 | docs: bring the README up to the wallet that exists, and make -help print (#106) | Bitflash |
| 2026-08-01 | wallet: reserve index 0 before deriving it, and name the address the phrase d... | Bitflash |
| 2026-08-01 | Keep new phrase addresses recoverable (#102) | mtg0001 |
| 2026-08-01 | net: stop closing a peer's socket twice (#103) | Bitflash |
| 2026-08-01 | diag: catch a handle handed out while a site still claims it (#101) | Bitflash |
| 2026-08-01 | diag: count the socket leak the way that is true, and say what it found (#100) | Bitflash |
| 2026-08-01 | build: list every header, so editing one rebuilds what includes it (#99) | Bitflash |
| 2026-08-01 | diag: say why a close failed, and total what the program thinks it holds (#98) | Bitflash |
| 2026-08-01 | wallet: create and restore a recovery phrase (#96) | Bitflash |
| 2026-08-01 | wallet: derive the key pool from a seed, so a phrase could bring it back (#93) | Bitflash |
| 2026-08-01 | Avoid MSYS2 self-test argument conversion (#94) | mtg0001 |
| 2026-08-01 | diag: make the self-test report where the person running it can see (#92) | Bitflash |
| 2026-08-01 | Add wallet keypool self-test (#91) | mtg0001 |
| 2026-08-01 | wallet: walk the chain for coins a key owns but the wallet never saw (#88) | Bitflash |
| 2026-08-01 | wallet: keep the default backup out of the directory it protects (#90) | Bitflash |
| 2026-08-01 | Add wallet safety backup panel (#89) | mtg0001 |
| 2026-08-01 | mine: do not trust a stored generate flag with no mining mode beside it (#87) | Bitflash |
| 2026-08-01 | diag: count sockets by where they were created, and whether the close took (#86) | Bitflash |
| 2026-08-01 | wallet: generate keys ahead of use so a backup outlives the next block (#85) | Bitflash |
| 2026-08-01 | mine: remember whether this node was mining, with the command line winning (#84) | Bitflash |
| 2026-08-01 | diag: let the node say what is wrong with it (#81) | Bitflash |
| 2026-08-01 | Add BIP39 and BIP32 foundation tests (#83) | mtg0001 |
| 2026-07-31 | net: a node could only ever watch 63 peers (#78) | Bitflash |
| 2026-07-31 | wallet: stop paying the recipient the transaction fee on a fee retry (#74) | Bitflash |
| 2026-07-31 | db: close Berkeley DB cursors instead of leaving them to the handle (#71) | Bitflash |
| 2026-07-31 | net: bound what a peer can make the node allocate (#73) | mtg0001 |
| 2026-07-31 | net: bound orphan blocks and stop asking a peer the same question twice (#70) | Bitflash |
| 2026-07-31 | mine: do not submit a solution for a parent that is no longer the tip (#69) | Bitflash |
| 2026-07-31 | gui: stop stacking every orphan the node ever produced on top of the list (#67) | Bitflash |
| 2026-07-31 | randomx: allocate the dataset once, not once per miner thread (#68) | Bitflash |
| 2026-07-31 | nostr: back off from a relay that is down, and replace one that is (#64) | Bitflash |
| 2026-07-31 | wallet: believe the chain about what has already been spent (#62) | Bitflash |
| 2026-07-31 | db: verify the tail of the chain on startup and back out of a bad tip (#61) | Bitflash |
| 2026-07-30 | pool: put the height in the job builder's coinbase too (#60) | Bitflash |
| 2026-07-30 | net: announce our height in the handshake, and say when we are behind (#56) | Bitflash |
| 2026-07-30 | script: bound how many operations and stack entries a script may use (#57) | Bitflash |
| 2026-07-30 | mine: put the block height in the coinbase, so two can never be identical (#59) | Bitflash |
| 2026-07-30 | net: notice a peer that has gone quiet, and stay audible to peers that check ... | Bitflash |
| 2026-07-30 | mine: hash on every core instead of one (#52) | Bitflash |
| 2026-07-30 | rendezvous: bound the wait for a dial, so a dead path is noticed (#51) | Bitflash |
| 2026-07-30 | wallet: export and import keys as text (#49) | Bitflash |
| 2026-07-30 | wallet: make wallet.dat a file you can actually back up (#46) | Bitflash |
| 2026-07-30 | build: check format strings, which nothing ever did (#44) | Bitflash |
| 2026-07-30 | main: make /gen actually mine (#42) | Eric |
| 2026-07-30 | sha: restrict the x86 bswap asm to x86 (#41) | Eric |
| 2026-07-29 | db: catch BDB exceptions so unreadable files fail cleanly (#34) (#38) | Bitflash |
| 2026-07-29 | build: headless Linux node that does not need libGL (#37) | Bitflash |
| 2026-07-29 | net: compiled-in bootstrap seeds, so a first run does not need a relay (#36) | Bitflash |
| 2026-07-29 | net: exchange signed .btf descriptors between peers (#32) | Bitflash |
| 2026-07-29 | rendezvous: register and wait for a dial as separate steps (#30) | Bitflash |
| 2026-07-29 | util: stop debug.log dropping lines under concurrency (#29) | Bitflash |
| 2026-07-29 | main_gui: implement /port, which net.cpp already documented (#28) | Bitflash |
| 2026-07-29 | Remove peer exchange from main; it was merged unreviewed (#27) | Bitflash |
| 2026-07-29 | Remember .btf peers that answered, and dial them first on start (#25) | Bitflash |
| 2026-07-29 | nostr: never advertise a rendezvous we are not registered at (#26) | Bitflash |
| 2026-07-28 | main: cap signature operations per block (#20) | Bitflash |
| 2026-07-28 | rpc: bound and guard the Stratum surface (#19) | Bitflash |
| 2026-07-28 | nostr: bound what a relay can make the node allocate (#17) | Bitflash |
| 2026-07-28 | main: cap orphan transactions held in memory (#16) | Bitflash |
| 2026-07-28 | serialize: grow strings as data arrives, not to the declared length (#18) | Bitflash |
| 2026-07-28 | rpc: the payout comment claims a guarantee the code does not provide (#22) | Bitflash |
| 2026-07-28 | Security: anyone can spend anyone's coins, plus three more consensus bugs (#12) | Bitflash |
| 2026-07-28 | Merge PR #6 (large refactor), preserving main's fixes (#9) | Bitflash |
| 2026-07-28 | btfaddr: reject malformed descriptors instead of throwing (#8) | Bitflash |
| 2026-07-28 | GUI: print a clear error when OpenGL 3.3 window creation fails (#7) | Bitflash |
| 2026-07-27 | Add Linux GUI installer via Wine (#3) | Victorio Nascimento |
| 2026-07-24 | Automatic relay discovery over Nostr + call-to-action | Bitflash-sh |