m0wer

m0wer's avatar
m0wer
npub1w3va...4c5c
JoinMarket NG
JoinMarket NG 0.11.1 is out! - Cold storage fidelity bond support for makers - Reproducible Docker builds!!! - BIP39 passphrase support - Dual offers (abs and rel simultaneously) for makers - Lots of fixes and UX improvements (thanks beta testers!) #JoinMarketNG #JoinMarket #CoinJoin #Privacy
JoinMarket NG 0.10.0 release is out! Lots of news and improvements. Here are the highlights: - Descriptor wallet (syncs in seconds). No private keys stored in the Bitcoin Node. - `--select-utxos` a TUI for `jm-taker coinjoin` and `jm-wallet send`. - External notifications compatible with every service (Gotify, Telegram, ...). Specially useful for makers. Uses apprise. - Configuration file for clear and persistent settings. image #JoinMarket #CoinJoin
I've updated to include some optimistic ROI figures. With the assumptions of 2,000 JoinMarket CoinJoins monthly of an average size of 2M sats. Then, estimate how often each offer is picked and see the profitability divided by the bond size (not value). As if it were some kind of savings account. And only considering the locked coins in the bond, not the liquidity in the mixdepths. It's really interesting to see that the optimal is definitely not being the largest bond! Since we assume 8 makers per round, it's β€œeasy” to be chosen there often even without a large bond. You can see that the β€œsmartest” bonds are 4.4 BTC (number 1 in ROI) and 2 BTC (number 3 in ROI). Have fun with the tool! image #JoinMarket #CoinJoin
# JoinMarket NG 0.9.0 Release Summary ## Major Features Descriptor Wallet Backend - New default backend using Bitcoin Core's descriptor wallets - Sync time reduced from ~90s to ~1s via listunspent instead of scantxoutset - One-time setup with automatic descriptor import - Smart scan for mainnet: initial import scans ~1 year, full rescan runs in background Orderbook Watcher Enhancements - Direct maker reachability tracking via Tor health checks - directly_reachable field in orderbook API responses - Maker feature extraction from handshakes for monitoring Operator Notifications - Push notifications via Apprise (100+ services: Telegram, Discord, email, etc.) - Privacy-aware with configurable data inclusion - Per-event toggles, fire-and-forget design - Integrated across all components ## Configuration Changes Defaults Modified - Backend: full_node β†’ descriptor_wallet - Fee rate fallback: 10 sat/vB β†’ 1 sat/vB - Counterparty count: 3 β†’ 10 makers - Broadcast policy: RANDOM_PEER β†’ MULTIPLE_PEERS (3 random makers) Fee Estimation - Added --block-target (1-1008 blocks) and --fee-rate options - Support for sub-1 sat/vB rates (float precision) - Default: 3-block estimation with full node, 1 sat/vB fallback with Neutrino ## Critical Fixes Transaction Handling - Fixed maker multi-UTXO support (multiple !sig messages) - Fixed maker fee calculation bug causing "Change output value too low" errors - offer.txfee is total contribution, not per-input/output multiplier Orderbook Watcher Stability - Fixed aggressive offer pruning removing valid long-running makers - Fixed peerlist handling treating partial updates as complete replacements - Fixed concurrent read race conditions in TCP connections - Philosophy shift: "show offers when in doubt" vs aggressive cleanup Timeout Handling - Fixed JoinMarket NG directory compatibility (120s timeout for peerlist features) - Reduced Neutrino pending transaction timeout: 48h β†’ 10h ## Performance & UX - Estimated fees displayed before confirmation - Final transaction summary with exact counts and fees - Early backend validation before wallet sync - Reduced logging verbosity for routine operations - Improved sweep coinjoin logging clarity ## Backend Improvements - Unified broadcast behavior across full node and Neutrino - Self-fallback now allowed for RANDOM_PEER and MULTIPLE_PEERS policies - Enhanced Neutrino UTXO detection with incremental rescans - Block-based verification for Neutrino (no mempool access)