sami7777
73c183d1c0
Add CI unit tests, network health RPC, and fix checkpoint tests
...
- Add unit test build+run steps to both Qt and headless Linux CI jobs
- Enhance getnetworkinfo RPC with networkhealth object (peer mix, bootstrap mode, sync status)
- Rewrite Checkpoints_tests to validate actual chain checkpoints (0, 9000, 9001, 2186940)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-22 21:53:47 -07:00
sami7777
383a3b8b02
Modernize codebase: C++17, remove Tor v2, add embedded Tor scaffold, IBD speedups
...
- Replace ~290 BOOST_FOREACH with C++11 range-for across 41+ files
- Replace boost::assign::map_list_of with C++11 brace initialization
- Remove PAIRTYPE macro (no longer needed without BOOST_FOREACH)
- Guard OpenSSL locking callbacks for 3.x (no-ops in >= 1.1.0)
- Fix Qt deprecated APIs for Qt6 compat (QStyleOptionViewItemV4, setResizeMode)
- Add openssl_compat.h version string wrapper
- Enable C++17 in makefile.unix and triangles-qt.pro
- Delete 163 dead Tor v2 source files (~150K lines removed)
- Add embedded Tor scaffold (tor_embedded.h/cpp) using tor_api.h
- Add build-libtor.sh helper and CODEX-TOR-GUIDE.md
- Update makefile.unix and .pro with USE_TOR_EMBEDDED optional flag
- Fallback to external tor_process when not compiled with libtor
- IBD pipeline refill: 100 -> 1000 blocks
- Send/recv buffer limits: unlimited -> 100MB/32MB
- Orphan block cap: unlimited -> 750 with random eviction
- Socket poll: 10ms -> 1ms during IBD
- Message handler sleep: 10ms -> 1ms during IBD
- Stall detection timeout: 5s -> 2s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-19 01:52:40 -07:00
sami7777
e133e97f3b
Add comprehensive RPC API upgrade: REST, ZMQ, SSE, address index
...
Phase 1 - New RPC commands (no new deps):
- getblockheader: header data from memory, zero disk reads
- estimatefee: static fee estimation (Bitcoin Core compatible)
- getblockchaininfo: chain state, difficulty, moneysupply
- getwalletinfo: balance, stake, txcount, keypool, encryption
- getnetworkinfo: version, protocol, connections, proxy
- gettxoutsetinfo: height, bestblock, total_amount
Phase 2 - REST API layer (-rest=1):
- /rest/chaininfo.json, /rest/block/<hash>.json|hex
- /rest/blockheader/<hash>.json, /rest/tx/<txid>.json|hex
- /rest/blockhashbyheight/<n>, /rest/mempool.json
- CORS headers for browser-based explorer access
Phase 3 - ZMQ pub/sub notifications (optional, USE_ZMQ=1):
- Topics: hashblock, hashtx, rawblock, rawtx
- Conditional compilation via ENABLE_ZMQ
Phase 4 - SSE real-time notifications (-ssenotify=1):
- GET /events endpoint (authenticated, long-lived)
- Block and transaction event streaming
- 15-second keepalive for proxy compatibility
Phase 5 - Address index (-addressindex=1):
- getaddressbalance, getaddressutxos, getaddresstxids
- LevelDB-backed index updated in ConnectBlock/DisconnectBlock
- Requires -reindex on first use
Also fixes QDesktopServices missing include for Qt5.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-12 00:50:34 -07:00