m0wer's avatar
m0wer
m0wer@stacker.news
npub1w3va...4c5c
JoinMarket NG
m0wer's avatar
m0wer 3 weeks ago
Hi @waxwing ! Any way I can reach out to you for some questions about JoinMarket development? Tried email and telegram but I think you're not active there anymore.
m0wer's avatar
m0wer 3 weeks ago
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
m0wer's avatar
m0wer 3 weeks ago
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
m0wer's avatar
m0wer 0 months ago
# 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)
m0wer's avatar
m0wer 1 month ago
m0wer's avatar
m0wer 1 month ago
Create privacy blockers across multiple calendars Calendar Blockers - Create privacy blockers across multiple calendars This script automatically creates "blocker" events on target calendars for every event found in source calendars. The blocker events only show a generic title (e.g., "private" or "busy") without revealing actual event details, helping maintain privacy when sharing calendars. Use Case: - Share work calendar with personal calendar without revealing details - Create busy blocks on shared calendars while keeping event info private - Sync availability across multiple calendar systems Features: - Configurable blocker title - Optional padding time before/after events - Supports recurring events - Dry-run mode for testing - Works with vdirsyncer or similar calendar sync tools
m0wer's avatar
m0wer 1 month ago
m0wer's avatar
m0wer 1 month ago