- Rename client from "Black Pharao" to "Cryptographic Triangles"
- Update CLIENT_VERSION from 4.2.1.0 to 5.1.3.0
- Update DISPLAY_VERSION from 5.0.0.0 to 5.1.3.0
- Update .pro VERSION to 5.1.3.0
- Fix RC file: copyright 2014-2026, fix OriginalFilename typo
- Update about dialog copyright to 2014-2026
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New command: smsgbroadcast <addrFrom> <message>
Iterates all public keys in smsgDB and sends an encrypted message to each.
Skips the sender's own address. Reports sent/failed counts.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The wallet was freezing on "Verifying database integrity" because the
old Tor v2 startup code blocked on a mutex (wait_initialized) and
required an onion/hostname file that no longer existed after v2 removal.
Replace the blocking v2 startup with internal V3 onion identity:
- Every wallet now auto-generates Ed25519 keys and a V3 .onion address
- Keys are stored in wallet.dat (encrypted if wallet is encrypted)
- Onion identity is created after wallet loads (Step 8.5) so keys
persist across restarts
- No external Tor process required for identity generation
- Writes onion/hostname and tor_data/ config for optional external Tor
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Major improvements:
- C++11 port layer (std::mutex/condition_variable replaces platform-specific code)
- Better write performance and compaction scheduling
- Improved Windows support (env_windows.cc replaces env_win.cc)
- More robust crash recovery and corruption detection
- Bloom filter improvements for faster reads
API is backward compatible - no changes needed to txdb-leveldb.cpp.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Startup optimization (fixes multi-minute hang on 2M+ block chain):
- Skip computing SHA-256 stake modifier checksum for blocks below last
checkpoint (was doing 2M+ unnecessary hashes on every startup)
- Reduce default -checkblocks from 2500 to 50 (disk read savings)
- Add progress percentage reporting during block index load
Headers-first sync (faster initial sync):
- Switch initial sync from getblocks to getheaders protocol
- Add PushGetHeaders and headers message handler in net/main
- Downloads 80-byte headers first, then requests blocks — allows
the node to learn chain structure before downloading full blocks
Address-index accelerated wallet rescan:
- New ScanForWalletTransactionsFromIndex() uses address index to find
only transactions touching wallet keys (skips scanning every block)
- Follows spend chains to find related transactions
- Falls back to full scan if index unavailable
- Track index sync state with addressIndexBestChain/StartHeight in LevelDB
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
smessage.cpp uses boost::chrono::steady_clock which requires
-lboost_chrono. Previously only linked on Windows.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Address table and transaction table now load asynchronously via
QTimer::singleShot after the event loop starts instead of blocking
the constructor
- MessageModel (secure messaging) lazy-loaded 1s after wallet init
or on-demand when navigating to message page
- Splash screen stays visible until window.show() completes
- Guard updateConfirmations() against empty transaction table
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Defer SecureMsgStart and ReacceptWalletTransactions to background thread
so GUI appears faster during startup
- Add shutdown checks in wallet scan/reaccept to prevent hanging on exit
- Smart wallet rescan: start from wallet birthday instead of genesis block
- Raise default dbcache from 25 to 128 MB for better performance
- Replace deprecated QDesktopServices with QStandardPaths (Qt5 compat)
- Enforce Qt5+ requirement in build system, remove -fpermissive flag
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Combine onionAddress and port into single "address:port" string
to match the function's expected parameter format.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Revived frozen chain (Dec 2022) with two live seed nodes
- Added Tor v3 onion hidden service support (Ed25519)
- Wired seeder message handlers (seeder/getseederlist/seederlist)
- Hardcoded onion seeds and clearnet IP seeds for DNS2/DNS3
- Fixed bind address (0.0.0.0) so nodes accept external connections
- Added boost_chrono to makefile.unix for modern Boost
- Fixed LoadExternalBlockFile block-skip bug for faster imports
- Import-only optimizations for chain replay (checkpoint-gated)
- Added sort_blocks.c tool for blockchain data recovery
- Comprehensive README with build/run/messaging/Tor instructions
- Chain revival status document for project coordination
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Port codebase to build with OpenSSL 3.x and Boost 1.90+:
- Rewrite bignum.h to use BIGNUM* pointer instead of inheriting from opaque BIGNUM
- Fix ECDSA_SIG, EVP_CIPHER_CTX, HMAC_CTX opaque type access across key.cpp, crypter.cpp, smessage.cpp
- Modernize Boost.Asio API (io_context, resolver, executor) in trianglesrpc.cpp
- Remove embedded Tor v2 client (incompatible with OpenSSL 3.x), keep Tor v3 SOCKS5 approach
- Update header logo to Cryptographic Triangles branding (300x63)
- Replace Bittrex exchange link with Pinball (313.cash) across all locales
- Fix MSYS2/MinGW64 build: linker flags, Boost library names, miniupnpc static linking
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Version 4.2.1.0
- wallet makeover
- staking behaviour adjustments
- non mandatory update-
- no need for updating daemons (only recomended if used for staking)