Commit Graph

84 Commits

Author SHA1 Message Date
sami7777 6724dfc832 Fix build: revert shared_ptr in RPC, replace auto_ptr with unique_ptr
- trianglesrpc.cpp: revert std::shared_ptr back to boost::shared_ptr
  (boost::signals2::slot::track() requires boost::shared_ptr)
- miner.cpp: auto_ptr → unique_ptr (auto_ptr removed in C++17,
  caught by macOS clang)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 13:34:16 -07:00
sami7777 9dadba6b09 Fix build: tuple access syntax, namespace, LZ4 separate compilation
- miner.cpp: .get<N>() → std::get<N>() (boost::tuple member syntax
  doesn't exist on std::tuple)
- script.cpp: remove 'using namespace boost' (no boost headers left)
- smessage.cpp: include lz4/lz4.h instead of lz4/lz4.c (U64 typedef
  conflict with xxhash when LZ4 1.10.0 source included in same TU)
- makefile.unix: add obj/lz4.o as separate compilation unit
- triangles-qt.pro: add src/lz4/lz4.c to SOURCES

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 02:46:37 -07:00
sami7777 c432817d5f Bump version to 5.3.1
Build All Platforms / build-windows-qt (push) Waiting to run
Build All Platforms / build-windows-daemon (push) Waiting to run
Build All Platforms / build-linux-qt (push) Waiting to run
Build All Platforms / build-linux-daemon (push) Waiting to run
Build All Platforms / build-macos (push) Waiting to run
Build All Platforms / release (push) Blocked by required conditions
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v5.3.1
2026-03-19 02:36:12 -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 1a2793bb88 Fix build: replace remaining list_of calls, remove register keyword
- Replace boost::assign::list_of/map_list_of with brace-init in
  rpcrawtransaction.cpp (7 call sites missed in previous commit)
- Remove C++17-banned 'register' keyword from lz4.c (macOS build fix)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 02:07:49 -07:00
sami7777 7ee2f00224 Bump version to 5.3.0
Build All Platforms / build-windows-qt (push) Waiting to run
Build All Platforms / build-windows-daemon (push) Waiting to run
Build All Platforms / build-linux-qt (push) Waiting to run
Build All Platforms / build-linux-daemon (push) Waiting to run
Build All Platforms / build-macos (push) Waiting to run
Build All Platforms / release (push) Blocked by required conditions
C++17 modernization, Tor v2 removal, embedded Tor scaffold, IBD speedups.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v5.3.0
2026-03-19 01:57:24 -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
Krystie 0beca5d801 Performance: Increase default dbcache to 2048MB, reduce checkblocks to 24, increase checklevel to 2
Changes improve sync speed without changing consensus:
- dbcache: 128MB → 2048MB (better caching during sync)
- checkblocks: 2500 → 24 (faster startup validation)
- checklevel: 1 → 2 (lighter verification during sync)

These changes make the node faster to sync and restart while maintaining
security and consensus compatibility.
2026-03-19 07:31:25 +01:00
sami7777 47bd5bf083 Fix data directory dialog appearing on every startup
Build All Platforms / build-windows-qt (push) Waiting to run
Build All Platforms / build-windows-daemon (push) Waiting to run
Build All Platforms / build-linux-qt (push) Waiting to run
Build All Platforms / build-linux-daemon (push) Waiting to run
Build All Platforms / build-macos (push) Waiting to run
Build All Platforms / release (push) Blocked by required conditions
Moved setOrganizationName/setApplicationName calls BEFORE
IntroDialog::pickDataDirectory() so QSettings knows where to save the
user's data directory choice.

Previously, QSettings was created without org/app names set, causing
the "strDataDir" setting to be lost, forcing the dialog to appear on
every startup.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
v5.2.1
2026-03-16 22:46:39 -07:00
sami7777 7b5b80cb3a Fix critical bug: duplicate version messages causing peer disconnects
Fixed missing braces in CNode constructor (net.h:327-329) that caused
PushVersion() to execute unconditionally for ALL connections instead of
only outbound connections.

This bug caused inbound peers (seed nodes) to:
1. Send version on connection (unintended)
2. Send version again when receiving peer's version (intended)
3. Trigger Misbehaving(1) on peer side for duplicate version
4. Get disconnected by peer (ProcessMessage fails → CloseSocketDisconnect)

Result: Seed nodes could only serve ~120 blocks before disconnect,
making sync nearly impossible.

Bump version to 5.2.1.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-03-16 22:05:10 -07:00
sami7777 b50eecc56f Fix build: nMisbehavior is protected
Build All Platforms / build-windows-qt (push) Waiting to run
Build All Platforms / build-windows-daemon (push) Waiting to run
Build All Platforms / build-linux-qt (push) Waiting to run
Build All Platforms / build-linux-daemon (push) Waiting to run
Build All Platforms / build-macos (push) Waiting to run
Build All Platforms / release (push) Blocked by required conditions
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v5.2.0
2026-03-16 21:09:48 -07:00
sami7777 8953173403 Add comprehensive IBD diagnostics (IBD-DIAG prefix)
Verbose logging at every critical sync pipeline stage:
- Version handler: whether getblocks was sent and why
- Inv handler: count of new vs already-known blocks
- Block handler: every block received (throttled), ProcessBlock failures
- ProcessBlock: CheckBlock failures with details
- SendMessages: stall detection with queue sizes
- Periodic status: height, peers, askfor queue, orphan count
- Getblocks handler: what range the seed is serving

All lines prefixed with IBD-DIAG for easy grep.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 21:05:11 -07:00
sami7777 2f307c195c Disable checkpoint message relay and processing
DNS2 was sending a stale sync checkpoint (block 2,186,940) to DNS3
on connect. ProcessSyncCheckpoint then called PushGetBlocks with the
checkpoint hash as the stop point, and AskFor'd block 2,186,940
directly — overriding the normal sequential getblocks chain. DNS3
would request a block it can't process (missing 2M predecessors)
instead of syncing from genesis.

Fix: ignore incoming checkpoint messages entirely (master key was
already removed in V5 fork, no new checkpoints possible). Also stop
relaying stored checkpoint messages to new peers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 20:56:40 -07:00
sami7777 8c5024a78a Fix anti-spam check: use chain tip as fallback, add NULL safety
Instead of skipping the anti-spam difficulty check during IBD, fix it
properly:
- Fall back to pindexBest when sync checkpoint is genesis (height 0)
- Add NULL safety for GetLastBlockIndex in both PoS and PoW cases
- PoS case: if no PoS block exists yet (below 9001), skip gracefully
  since AcceptBlock already rejects PoS below MODIFIER_INTERVAL_SWITCH

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 20:24:48 -07:00
sami7777 3f823e8583 Skip anti-spam difficulty check during IBD
The anti-spam check in ProcessBlock used GetLastSyncCheckpoint() which
pointed to genesis after our reset. When processing PoS blocks,
GetLastBlockIndex(genesis, true) returned NULL (no PoS blocks at genesis),
causing a crash or Misbehaving(100) which banned the seed node.

Fix: skip the entire anti-spam check during IBD - hardcoded checkpoints
already guarantee chain integrity. Also add NULL safety for the PoS
case after IBD completes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 20:19:39 -07:00
sami7777 a4bfc6012a Fix display version: update DISPLAY_VERSION to 5.2.0
version.h had a separate DISPLAY_VERSION set (5.1.7.0) used by
version.cpp for the user-visible version string. clientversion.h
was updated but version.h was not, causing binaries to report
v5.1.7.0 despite being built from v5.2.0 source.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 19:37:24 -07:00
sami7777 136d446157 Disable sync checkpoint system that blocks IBD
The sync checkpoint (hashSyncCheckpoint) was persisted in LevelDB pointing
to block 2,186,940. On startup it was loaded from DB, overriding any code
change to the initial value. CheckSync then rejected every block below
that height during IBD since they weren't in mapBlockIndex yet.

Three-pronged fix:
- CheckSync now always returns true (master key disabled, no new sync
  checkpoints will ever be broadcast)
- AcceptBlock no longer calls sync checkpoint enforcement
- LoadBlockIndex resets sync checkpoint to genesis if stored hash is
  not in the block index (prevents assert crash)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 18:32:11 -07:00
sami7777 1966f49ce2 Fix sync checkpoint blocking IBD, bump to v5.2.0
hashSyncCheckpoint was initialized to block 2,186,940 hash, causing
CheckSync to reject ALL blocks below that height during initial block
download (they aren't in mapBlockIndex yet when checked). Changed to
genesis hash so IBD can proceed from block 0.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 18:09:38 -07:00
sami7777 a4da39f23c Update CI version to 5.1.9
Build All Platforms / build-windows-qt (push) Waiting to run
Build All Platforms / build-windows-daemon (push) Waiting to run
Build All Platforms / build-linux-qt (push) Waiting to run
Build All Platforms / build-linux-daemon (push) Waiting to run
Build All Platforms / build-macos (push) Waiting to run
Build All Platforms / release (push) Blocked by required conditions
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v5.1.9
2026-03-16 17:54:56 -07:00
sami7777 87bfc15712 Bump version to v5.1.9
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 17:48:24 -07:00
sami7777 6353e9d5fa v5.1.9: Assumevalid fast sync + unlimited network buffers
Major sync performance overhaul:

- Assumevalid: skip FetchInputs/ConnectInputs for blocks below
  checkpoint (2,186,940). Only write txindex entries. Eliminates
  millions of LevelDB reads during initial sync.
- Skip SyncWithWallets during IBD with automatic post-IBD wallet
  rescan from genesis and SecureMsg chain scan.
- Skip wallet best-chain locator update during IBD so restarts
  trigger proper rescan.
- Remove send/receive buffer limits (were 1MB/5MB, now unlimited).
  The 1MB send buffer was the root cause of ~180 block stalls -
  ProcessMessages stops reading when nSendSize >= SendBufferSize().
- Reduce IBD pipeline batch from 500 to 100 blocks for faster
  re-requesting with near-instant block processing.
- Seed getblocks limit raised to 20000 during IBD (was 500).
- Faster message handler polling during IBD (10ms vs 100ms).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 17:41:08 -07:00
sami7777 14ce8cc2a7 Update CI version to 5.1.8
Build All Platforms / build-windows-qt (push) Waiting to run
Build All Platforms / build-windows-daemon (push) Waiting to run
Build All Platforms / build-linux-qt (push) Waiting to run
Build All Platforms / build-linux-daemon (push) Waiting to run
Build All Platforms / build-macos (push) Waiting to run
Build All Platforms / release (push) Blocked by required conditions
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v5.1.8
2026-03-16 03:51:12 -07:00
sami7777 d180b5870c Bump version to v5.1.8
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 03:45:55 -07:00
sami7777 596d4ab55c Enable real-time wallet sync and verbose progress during block download
Remove IBD guards on SyncWithWallets and SetBestChain so wallet
transactions appear as blocks are connected. Log every 500 blocks
during sync instead of every 10,000.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 02:58:45 -07:00
sami7777 5af26f186e v5.1.7: Add Tor process manager for .onion connectivity
Build All Platforms / build-windows-qt (push) Waiting to run
Build All Platforms / build-windows-daemon (push) Waiting to run
Build All Platforms / build-linux-qt (push) Waiting to run
Build All Platforms / build-linux-daemon (push) Waiting to run
Build All Platforms / build-macos (push) Waiting to run
Build All Platforms / release (push) Blocked by required conditions
Adds CTorProcess which finds and launches an external Tor binary as a
subprocess, providing a SOCKS5 proxy on port 19099 and a v3 hidden
service on port 24112. The wallet auto-detects Tor from common install
locations or the app directory. Falls back gracefully to clearnet-only
if Tor is not found. Also fixes Tor-only network restriction that
blocked IPv4/IPv6, and bumps version to 5.1.7.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v5.1.7
2026-03-16 02:31:55 -07:00
sami7777 5530920b25 Add data directory selection dialog on first run
Shows an intro dialog on first launch letting users choose where to store
blockchain data. Saves the choice in QSettings so it only appears once.
Styled to match the existing Triangles dark theme.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 02:25:26 -07:00
sami7777 3ed9a42b3c v5.1.6: Fix block sync stall for fresh nodes, REST API refactor
Build All Platforms / build-windows-qt (push) Waiting to run
Build All Platforms / build-windows-daemon (push) Waiting to run
Build All Platforms / build-linux-qt (push) Waiting to run
Build All Platforms / build-macos (push) Waiting to run
Build All Platforms / release (push) Blocked by required conditions
Build All Platforms / build-linux-daemon (push) Failing after 25m20s
Critical fix: revert initial sync from getheaders back to getblocks.
The headers-first change (05b1fd1) broke chain continuation — after
downloading the first 2000 blocks, fresh nodes would stall because
the getheaders path has no orphan-based continuation mechanism.
The getblocks/inv/orphan cycle is required for full chain sync.

Also adds getblocks fallback to the headers handler so if headers
are used via other paths, sync still continues.

Other changes:
- Extract REST API into separate rest.cpp/rest.h
- Add REST rate limiting and CORS support

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v5.1.6
2026-03-16 01:57:50 -07:00
sami7777 6a8fde3e92 Bump version to v5.1.5, remove tracked build artifacts
Build All Platforms / build-windows-qt (push) Waiting to run
Build All Platforms / build-windows-daemon (push) Waiting to run
Build All Platforms / build-linux-qt (push) Waiting to run
Build All Platforms / build-macos (push) Waiting to run
Build All Platforms / release (push) Blocked by required conditions
Build All Platforms / build-linux-daemon (push) Failing after 22m48s
- Bump version 5.1.4 → 5.1.5 across all source, CI, and packaging files
- Remove 157 build artifacts (build/*.o, release/*.dll, etc.) from git tracking
  These were added before .gitignore existed and caused cross-platform CI failures

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
bootstrap-2026-03-16 v5.1.5
2026-03-15 16:50:08 -07:00
sami7777 5af44ade9e Fix Windows daemon: move 'all' target before LevelDB in makefile.mingw
The 'all: trianglesd.exe' target was defined after 'leveldb/libleveldb.a:'
making LevelDB the default target. Make would only build LevelDB and exit.
Move 'all' to before LevelDB so it becomes the default target (like
makefile.unix). Also pass explicit 'all' target in CI as belt-and-suspenders.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 16:26:51 -07:00
sami7777 644dfcd65f Fix Windows daemon CI: separate LevelDB step, add error handling
Build LevelDB separately so daemon make errors are visible.
Add set -eo pipefail and stderr redirect to capture all output.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 16:17:11 -07:00
sami7777 04f1be664e Fix Windows CI: add Qt5 tool symlinks, fix daemon strip path
- Create symlinks qmake->qmake-qt5, lrelease->lrelease-qt5,
  windeployqt->windeployqt-qt5 for MSYS2 Qt5 tool naming
- Fix daemon strip by running in same directory as build output

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 16:07:30 -07:00
sami7777 21327c573c Fix remaining 3 CI failures: qmake, DEPSDIR, lrelease
- Windows Qt: use qmake-qt5/windeployqt-qt5 (MSYS2 binary names)
- Windows daemon: override DEPSDIR=/mingw64 for CI, separate steps
- Linux Qt: add qttools5-dev-tools for lrelease (qm file generation)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 15:58:26 -07:00
sami7777 d84a563528 Fix all 5 CI build failures in build-all.yml
- Linux: add chmod +x build_detect_platform for LevelDB builds
- Linux daemon: add separate LevelDB build step (was missing)
- macOS: clean stale Windows .o files from git before building
- Windows Qt: add qt5-tools package, use full qmake path
- Windows daemon: combine build+strip in same step to fix path issue

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 15:46:07 -07:00
sami7777 fe9ff05da2 Replace macOS-only CI with unified all-platform build workflow
Removes build-macos.yml and adds build-all.yml which builds Windows Qt,
Windows daemon, Linux Qt, Linux daemon, and macOS on every push to master.
Automatically creates GitHub releases with all assets on version tags.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 15:38:57 -07:00
sami7777 a70798c1b6 Add Windows MinGW makefile for headless daemon
New makefile.mingw builds trianglesd.exe on MSYS2/MinGW64.
Adapted from makefile.unix with Windows-specific libraries
and static linking.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 14:42:24 -07:00
sami7777 379107ca60 Fix Boost library suffix for macOS Homebrew
Homebrew's Boost libraries don't use the -mt suffix
(e.g. libboost_filesystem.dylib, not libboost_filesystem-mt.dylib).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 03:15:13 -07:00
sami7777 9a5c9bd14b Fix trayIconActivated MOC mismatch on macOS
Remove Q_OS_MAC guards around trayIconActivated slot declaration
and implementation. MOC generates code referencing the slot
unconditionally, causing a build error on macOS. The slot is
harmless when present - on macOS the tray icon isn't created
so it simply never gets called.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 03:11:51 -07:00
sami7777 c5588b26f1 Fix macOS clang build errors
- Suppress -Wreserved-user-defined-literal for PRId64 format macros
- Suppress -Wdeprecated-declarations for OpenSSL 3.x legacy APIs
- Guard duplicate CDataStream::insert overload with _LIBCPP_VERSION
  (libc++ const_iterator == std::vector::const_iterator)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 03:07:46 -07:00
sami7777 233d6250db Fix LevelDB fdatasync build error on macOS
macOS does not have fdatasync(), it uses fcntl(F_FULLFSYNC) instead.
Set HAVE_FDATASYNC=0 for __APPLE__ alongside _WIN32.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 03:05:07 -07:00
sami7777 251e87abb0 Fix macOS CI: use macos-15 runner, fix LevelDB permissions
- macos-13 (Intel) runners no longer available, use macos-15 (ARM64)
- chmod +x build_detect_platform before LevelDB build
- Simplify to single ARM64 build for now

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 03:03:02 -07:00
sami7777 f64361fc11 Add macOS CI build, RPM, and Nix packaging
- GitHub Actions workflow builds DMGs for both Intel and Apple Silicon
- Update .pro file: macOS 11+ target, Homebrew paths instead of MacPorts
- Add RPM spec + build script for Fedora/RHEL/openSUSE
- Add Nix derivation with autoPatchelfHook
- Update Homebrew formula to support macOS (Intel + ARM64)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 02:59:33 -07:00
sami7777 322d227ec6 Add Chocolatey, AppImage, and Docker packaging
- Chocolatey .nuspec + install script for Windows
- AppImage build script for universal Linux
- Dockerfile for headless daemon container

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 02:16:59 -07:00
sami7777 269a7ea1b5 Add packaging for all major package managers
- Snap (snapcraft.yaml) - Ubuntu, Mint, Fedora
- Flatpak manifest - Fedora, most distros
- AUR PKGBUILD - Arch/Manjaro
- Homebrew formula - macOS/Linux
- Debian .deb build script - Ubuntu/Debian
- winget manifest - Windows

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 01:59:26 -07:00
sami7777 7c7e951adb Bump version to v5.1.4
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v5.1.4
2026-03-15 01:55:10 -07:00
sami7777 08b98a8775 Rebrand to Cryptographic Triangles v5.1.3
- 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>
v5.0.0.0
2026-03-15 01:28:52 -07:00
Sami Ahmed 0f307a498d Update client version to v5.1.3 2026-03-14 04:53:19 +01:00
sami7777 e54120108e Remove leftover diagnostic logging from messagemodel.cpp
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v5.1.3
2026-03-13 17:11:22 -07:00
sami7777 50713cc87b Add smsgbroadcast RPC command for messaging all known peers
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>
2026-03-13 17:03:51 -07:00
sami7777 ae5e97ad6e Integrate Tor V3 onion identity into wallet startup, fix freeze
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>
v5.1.2
2026-03-13 12:35:51 -07:00
sami7777 958adea2b6 Upgrade bundled LevelDB from 1.15 to 1.23
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>
v5.1.1
2026-03-13 03:17:43 -07:00