sami7777
f3d5c677a0
Replace json_spirit with nlohmann/json via compatibility shim
...
Remove all json_spirit source files and add nlohmann/json (v3.11.3)
with a json_compat.h shim that preserves the json_spirit namespace
API. Updates all RPC and test files to use the new JSON backend.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-05 02:01:14 -07:00
sami7777
014947580b
Fix staking crash with large wallets + add -zapwallettxes
...
- ThreadStakeMiner: catch-and-retry instead of crash on exception
(boost::bad_weak_ptr no longer kills the daemon)
- GetStakeWeight: take wallet lock once instead of per-coin to
reduce lock contention with 20K+ transaction wallets
- StakeMiner: continue instead of exit when CreateNewBlock fails
- Wrap all NotifyTransactionChanged/NotifyAddressBookChanged signal
emissions in try/catch to absorb stale slot exceptions
- Add -zapwallettxes flag: strips all tx records from wallet.dat
keeping only keys, then rescans blockchain to rebuild history
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-03 23:12:21 -07:00
sami7777
7adf92df7a
Add MakeSecureString helper, eliminate .c_str() in password paths
...
- Add MakeSecureString(const std::string&) in allocators.h
- Replace .c_str() shims in walletpassphrase, walletpassphrasechange,
encryptwallet RPCs and askpassphrasedialog
- Update TODO_DOCUMENTATION.md to mark issue as resolved
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-24 18:44:19 -07:00
sami7777
7ceb1f6a4d
Replace boost with C++17 std equivalents, upgrade LZ4 to 1.10.0
...
- boost::tuple → std::tuple (serialize.h, miner.cpp, script.cpp, walletdb.cpp)
- boost::shared_ptr → std::shared_ptr (trianglesrpc.cpp)
- boost::variant → std::variant for CTxDestination (script.h)
- boost::get → std::get_if (main.cpp, rpcblockchain.cpp, coincontroldialog.cpp, wallet.cpp)
- boost::apply_visitor → std::visit (base58.h, script.cpp, rpcwallet.cpp, test/base58_tests.cpp)
- boost::static_visitor removed from all visitor classes
- boost::lexical_cast → std::to_string/std::stoll (smessage.cpp, rpcsmessage.cpp)
- Removed unused boost/lexical_cast.hpp includes (rest.cpp, trianglesrpc.cpp)
- Removed boost/variant/get.hpp include (rpcdump.cpp)
- Upgraded vendored LZ4 from 1.1.3 to 1.10.0
- Updated LZ4_compress() → LZ4_compress_default() (smessage.cpp)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-19 02:31:23 -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
TrianglesCommunityProject
69aedf2533
Pharao Release
...
Version 4.0.0.4
- refactored code
- migrated vom Qt4 to Qt5
- added secure messaging
2014-10-05 23:37:30 +02:00
TrianglesDev
64d03a409d
Initial upload
2014-07-16 16:05:09 -07:00