Commit Graph

392 Commits

Author SHA1 Message Date
sami7777 a8d0e291c3 Add test suites for consensus, hash9, serialization, staking, time drift
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-05 02:01:58 -07:00
sami7777 d6839164dd Add test suites for consensus, hash9, serialization, staking, time drift
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-05 02:01:58 -07:00
sami7777 6fc31fec60 Add sync optimizations: assumevalid, parallel script verify, IBD skip
- assumevalid flag to skip script verification for known-good blocks
- CCheckQueue thread pool for parallel signature/script validation
- Deferred wallet scan until after IBD completes
- Guard UPnP usage for builds without miniupnpc
- Fix LogPrintf -> printf in clearwallettransactions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-05 02:01:30 -07:00
sami7777 f950eb58ad Add sync optimizations: assumevalid, parallel script verify, IBD skip
- assumevalid flag to skip script verification for known-good blocks
- CCheckQueue thread pool for parallel signature/script validation
- Deferred wallet scan until after IBD completes
- Guard UPnP usage for builds without miniupnpc
- Fix LogPrintf -> printf in clearwallettransactions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-05 02:01:30 -07:00
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 26276ef92b 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 1bcaf6b615 Migrate build system from qmake/makefiles to CMake
Remove legacy build files (Makefile, makefile.unix/mingw/osx,
triangles-qt.pro) and replace with CMake build system. Includes
find modules for all dependencies, LevelDB bundled build, and
updated CI workflow for CMake + Ninja on all platforms.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-05 02:00:58 -07:00
sami7777 b339ede17a Migrate build system from qmake/makefiles to CMake
Remove legacy build files (Makefile, makefile.unix/mingw/osx,
triangles-qt.pro) and replace with CMake build system. Includes
find modules for all dependencies, LevelDB bundled build, and
updated CI workflow for CMake + Ninja on all platforms.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-05 02:00:58 -07:00
sami7777 74d7666398 Fix display version to 5.5.6 + fix Tor binary path detection
DISPLAY_VERSION in version.h was still at 5.5.5 while CLIENT_VERSION
in clientversion.h was bumped to 5.5.6. Also fix Tor binary finder
to skip directories (was matching /usr/lib/.../tor/ dir instead of
the tor binary inside it).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-04 04:10:07 -07:00
sami7777 62f7d6457c Fix display version to 5.5.6 + fix Tor binary path detection
DISPLAY_VERSION in version.h was still at 5.5.5 while CLIENT_VERSION
in clientversion.h was bumped to 5.5.6. Also fix Tor binary finder
to skip directories (was matching /usr/lib/.../tor/ dir instead of
the tor binary inside it).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-04 04:10:07 -07:00
SamiAhmed7777 730466e54e Add trigger for tri-pi ARM64 build on release 2026-04-04 03:32:13 -07:00
SamiAhmed7777 b857257516 Add trigger for tri-pi ARM64 build on release 2026-04-04 03:32:13 -07:00
sami7777 e8bf45af00 Bump version to 5.5.6
Build All Platforms / test-linux-unit (push) Failing after 40s
Build All Platforms / build-linux-qt (push) Failing after 40s
Build All Platforms / build-linux-daemon (push) Failing after 40s
Build All Platforms / build-windows-qt (push) Has been cancelled
Build All Platforms / build-windows-daemon (push) Has been cancelled
Build All Platforms / build-macos (push) Has been cancelled
Build All Platforms / release (push) Has been cancelled
HTTPS seed fetch, hardcoded onion seeds, staking crash fix,
-zapwallettxes support.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v5.5.6
2026-04-04 03:20:31 -07:00
sami7777 012bc344f5 Bump version to 5.5.6
HTTPS seed fetch, hardcoded onion seeds, staking crash fix,
-zapwallettxes support.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-04 03:20:31 -07:00
sami7777 80a39fa1de Upgrade seed fetch to HTTPS + add hardcoded onion seeds
The seeds.cryptographic-triangles.org endpoint uses Caddy with auto-TLS,
so the daemon's seed fetcher now connects over HTTPS (port 443) using
OpenSSL instead of plain HTTP (port 80) which got a 308 redirect.

Also hardcodes 5 known onion seed addresses in onionseed.h as a fallback
for initial peer discovery when the HTTPS endpoint is unreachable.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-04 03:10:43 -07:00
sami7777 0b8b693d7d Upgrade seed fetch to HTTPS + add hardcoded onion seeds
The seeds.cryptographic-triangles.org endpoint uses Caddy with auto-TLS,
so the daemon's seed fetcher now connects over HTTPS (port 443) using
OpenSSL instead of plain HTTP (port 80) which got a 308 redirect.

Also hardcodes 5 known onion seed addresses in onionseed.h as a fallback
for initial peer discovery when the HTTPS endpoint is unreachable.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-04 03:10:43 -07:00
sami7777 14abcc9746 Fix CI: use 64-bit inetc plugin for MSYS2 NSIS
MSYS2 mingw64 NSIS is a 64-bit build that needs amd64-unicode plugins.
Copy the amd64-unicode INetC.dll to Plugins/unicode/ instead of x86.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-04 01:25:27 -07:00
sami7777 74b11e7404 Fix CI: use 64-bit inetc plugin for MSYS2 NSIS
MSYS2 mingw64 NSIS is a 64-bit build that needs amd64-unicode plugins.
Copy the amd64-unicode INetC.dll to Plugins/unicode/ instead of x86.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-04 01:25:27 -07:00
sami7777 096a4f9927 Fix CI: install inetc plugin for all NSIS architectures
- Copy INetC.dll to x86-unicode, x86-ansi, and amd64-unicode dirs
- Add debug output to identify which plugin dir NSIS actually uses

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-04 01:15:11 -07:00
sami7777 585ccd4a07 Fix CI: install inetc plugin for all NSIS architectures
- Copy INetC.dll to x86-unicode, x86-ansi, and amd64-unicode dirs
- Add debug output to identify which plugin dir NSIS actually uses

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-04 01:15:11 -07:00
sami7777 c4949a6d4f Fix CI: test_GetThrow for UTXO model, install unzip for inetc
- transaction_tests: AreInputsStandard returns false (not throw) for missing inputs
- build-all.yml: install unzip package before extracting inetc plugin

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-04 00:33:59 -07:00
sami7777 db77184277 Fix CI: test_GetThrow for UTXO model, install unzip for inetc
- transaction_tests: AreInputsStandard returns false (not throw) for missing inputs
- build-all.yml: install unzip package before extracting inetc plugin

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-04 00:33:59 -07:00
sami7777 557d5807d8 Fix CI: update transaction_tests for UTXO model, fix inetc plugin install
- transaction_tests.cpp: use COutPoint+CUtxoEntry instead of old MapPrevTx
- build-all.yml: use msys2 shell for inetc plugin download/install

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-04 00:24:23 -07:00
sami7777 2413983dae Fix CI: update transaction_tests for UTXO model, fix inetc plugin install
- transaction_tests.cpp: use COutPoint+CUtxoEntry instead of old MapPrevTx
- build-all.yml: use msys2 shell for inetc plugin download/install

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-04 00:24:23 -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 ca8baab501 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 64db028788 Fix block relay stall + revert protocol to 70205
Ask peers for blocks whenever they report a higher chain height,
fixing post-IBD sync stall where node stops requesting missing blocks
after initial sync completes.

Revert protocol version from 70206 back to 70205 to match network.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 22:40:48 -07:00
sami7777 2c4c8370df Fix block relay stall + revert protocol to 70205
Ask peers for blocks whenever they report a higher chain height,
fixing post-IBD sync stall where node stops requesting missing blocks
after initial sync completes.

Revert protocol version from 70206 back to 70205 to match network.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 22:40:48 -07:00
sami7777 e1ef89a169 Fix CI: install NSIS inetc plugin, update test for UTXO model
- Download and install inetc NSIS plugin for bootstrap download feature
- test/script_P2SH_tests.cpp already updated in prior commit

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 22:22:13 -07:00
sami7777 bb4414804b Fix CI: install NSIS inetc plugin, update test for UTXO model
- Download and install inetc NSIS plugin for bootstrap download feature
- test/script_P2SH_tests.cpp already updated in prior commit

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 22:22:13 -07:00
sami7777 6a9b710b18 Restore NSIS bootstrap installer page
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 22:21:38 -07:00
sami7777 050558435f Restore NSIS bootstrap installer page
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 22:21:38 -07:00
sami7777 22e888dd47 Fix CI: update test for UTXO model, remove bootstrap from installer
- Update script_P2SH_tests.cpp to use new MapPrevTx (COutPoint->CUtxoEntry)
- Remove obsolete bootstrap download from NSIS installer (requires inetc
  plugin; nodes now sync fast from network)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 22:21:02 -07:00
sami7777 35c4a2c823 Fix CI: update test for UTXO model, remove bootstrap from installer
- Update script_P2SH_tests.cpp to use new MapPrevTx (COutPoint->CUtxoEntry)
- Remove obsolete bootstrap download from NSIS installer (requires inetc
  plugin; nodes now sync fast from network)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 22:21:02 -07:00
sami7777 d8fb2b7d7d v5.5.5: UTXO model, fast startup, lazy DB migration
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 22:06:39 -07:00
sami7777 89dad5818f v5.5.5: UTXO model, fast startup, lazy DB migration
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 22:06:39 -07:00
sami7777 f5a5ebb204 UTXO database model + startup performance optimizations
Replace per-transaction CTxIndex spent tracking with per-output UTXO
database (CUtxoEntry). ConnectBlock writes/erases UTXOs as blocks are
processed. FetchInputs reads directly from UTXO DB instead of
deserializing full transactions from disk.

Persist nChainTrust in block index (dbformat v3) to skip expensive
recalculation on every startup. Only populate setStakeSeen for last
500 blocks instead of all 2M+.

Lazy fallback to old CTxIndex path for databases upgrading from
pre-UTXO format - no big-bang migration required.

Fixes pre-existing bugs in introdialog.cpp (extra brace) and
net_bootstrap.cpp (namespace extern).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 22:01:37 -07:00
sami7777 999ffea314 UTXO database model + startup performance optimizations
Replace per-transaction CTxIndex spent tracking with per-output UTXO
database (CUtxoEntry). ConnectBlock writes/erases UTXOs as blocks are
processed. FetchInputs reads directly from UTXO DB instead of
deserializing full transactions from disk.

Persist nChainTrust in block index (dbformat v3) to skip expensive
recalculation on every startup. Only populate setStakeSeen for last
500 blocks instead of all 2M+.

Lazy fallback to old CTxIndex path for databases upgrading from
pre-UTXO format - no big-bang migration required.

Fixes pre-existing bugs in introdialog.cpp (extra brace) and
net_bootstrap.cpp (namespace extern).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 22:01:37 -07:00
sami7777 42a33457bf v5.6.0 Tor-native: embed Tor, force .onion-only networking
Every Triangles wallet is now a Tor node. Staking rewards subsidize
Tor infrastructure.

Core changes:
- Embedded Tor 0.4.9.6 as git submodule
- ConnectNode rejects all non-.onion peers
- Tor failure is fatal - wallet requires Tor to operate
- All proxies forced through embedded Tor SOCKS
- Clearnet (IPv4/IPv6) disabled at startup
- HTTP seed fetch routes through Tor proxy (removed boost::asio dep)
- Merged PoW cleanup: -623 lines of dead mining code
- Stripped dead LEGACY/MIXED bootstrap modes from net_bootstrap
- RPC getnetworkinfo reports tor_native mode

Tooling:
- scripts/bump-version.sh syncs version across all 17+ files
- Version bumped to 5.6.0 across all packaging manifests

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 17:55:41 -07:00
sami7777 098f27368f v5.6.0 Tor-native: embed Tor, force .onion-only networking
Every Triangles wallet is now a Tor node. Staking rewards subsidize
Tor infrastructure.

Core changes:
- Embedded Tor 0.4.9.6 as git submodule
- ConnectNode rejects all non-.onion peers
- Tor failure is fatal - wallet requires Tor to operate
- All proxies forced through embedded Tor SOCKS
- Clearnet (IPv4/IPv6) disabled at startup
- HTTP seed fetch routes through Tor proxy (removed boost::asio dep)
- Merged PoW cleanup: -623 lines of dead mining code
- Stripped dead LEGACY/MIXED bootstrap modes from net_bootstrap
- RPC getnetworkinfo reports tor_native mode

Tooling:
- scripts/bump-version.sh syncs version across all 17+ files
- Version bumped to 5.6.0 across all packaging manifests

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 17:55:41 -07:00
sami7777 279d643582 Remove dead PoW mining code to reduce antivirus false positives
Strip getwork, getworkex, getblocktemplate, submitblock RPC commands
and their helper functions (SHA256Transform, FormatHashBlocks,
FormatHashBuffers, IncrementExtraNonce, CheckWork) which have been
dead code since PoW ended at block 9000. AV engines pattern-match
these nonce-incrementing loops and mining pool interfaces as
cryptominer signatures. Block validation (CheckProofOfWork) and
Hash9 algorithm files are preserved - only block *creation* for
PoW mining is removed. PoS staking code is untouched.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 17:53:35 -07:00
sami7777 3dfecf5cb7 Remove dead PoW mining code to reduce antivirus false positives
Strip getwork, getworkex, getblocktemplate, submitblock RPC commands
and their helper functions (SHA256Transform, FormatHashBlocks,
FormatHashBuffers, IncrementExtraNonce, CheckWork) which have been
dead code since PoW ended at block 9000. AV engines pattern-match
these nonce-incrementing loops and mining pool interfaces as
cryptominer signatures. Block validation (CheckProofOfWork) and
Hash9 algorithm files are preserved - only block *creation* for
PoW mining is removed. PoS staking code is untouched.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 17:53:35 -07:00
Krystie baa38340a6 Add version bump script (scripts/bump-version.sh)
Single command to update version across all 12+ files:
  scripts/bump-version.sh 5.7.0

Updates: clientversion.h, version.h, triangles-qt.pro, Dockerfile,
and all packaging manifests (Docker, AUR, Chocolatey, Debian, RPM,
WinGet, Homebrew, Nix, AppImage).
2026-04-03 17:51:26 -07:00
Krystie cf4851bede Add version bump script (scripts/bump-version.sh)
Single command to update version across all 12+ files:
  scripts/bump-version.sh 5.7.0

Updates: clientversion.h, version.h, triangles-qt.pro, Dockerfile,
and all packaging manifests (Docker, AUR, Chocolatey, Debian, RPM,
WinGet, Homebrew, Nix, AppImage).
2026-04-03 17:51:26 -07:00
Krystie fb4c0708bf v5.5.5: Auto-bootstrap for new nodes - zero config required
Build All Platforms / test-linux-unit (push) Failing after 40s
Build All Platforms / build-linux-qt (push) Failing after 40s
Build All Platforms / build-linux-daemon (push) Failing after 40s
Build All Platforms / build-windows-qt (push) Has been cancelled
Build All Platforms / build-windows-daemon (push) Has been cancelled
Build All Platforms / build-macos (push) Has been cancelled
Build All Platforms / release (push) Has been cancelled
- Daemon: automatically downloads blockchain snapshot when no data exists
  No -bootstrap flag needed. Use -nobootstrap to skip.
- Qt wallet: auto-bootstraps on first run (no question asked)
  Existing users still get the optional re-download prompt.
- New users just install and run - blockchain downloads automatically
- Works on all platforms (Windows, Linux, macOS, ARM64)
v5.5.5
2026-04-03 16:18:31 -07:00
Krystie 2c3a2f983c v5.5.5: Auto-bootstrap for new nodes - zero config required
- Daemon: automatically downloads blockchain snapshot when no data exists
  No -bootstrap flag needed. Use -nobootstrap to skip.
- Qt wallet: auto-bootstraps on first run (no question asked)
  Existing users still get the optional re-download prompt.
- New users just install and run - blockchain downloads automatically
- Works on all platforms (Windows, Linux, macOS, ARM64)
2026-04-03 16:18:31 -07:00
Krystie cfaf742053 Revert hardcoded seed nodes - peer discovery is dynamic 2026-04-03 16:10:07 -07:00
Krystie fbd498ad8e Revert hardcoded seed nodes - peer discovery is dynamic 2026-04-03 16:10:07 -07:00
Krystie 308f8a5f5c v5.5.4: Add hardcoded seed nodes for automatic network mesh
Build All Platforms / test-linux-unit (push) Failing after 40s
Build All Platforms / build-linux-qt (push) Failing after 40s
Build All Platforms / build-linux-daemon (push) Failing after 40s
Build All Platforms / build-windows-qt (push) Has been cancelled
Build All Platforms / build-windows-daemon (push) Has been cancelled
Build All Platforms / build-macos (push) Has been cancelled
Build All Platforms / release (push) Has been cancelled
- Hardcoded DNS3 (74.208.167.19), DNS2 (194.233.88.206), and Contabo (100.98.123.59) as fixed seeds
- Nodes will automatically connect to these on first run
- No manual addnode configuration needed
- Full mesh network connectivity built into the code
v5.5.4
2026-04-03 15:55:51 -07:00
Krystie 999726730b v5.5.4: Add hardcoded seed nodes for automatic network mesh
- Hardcoded DNS3 (74.208.167.19), DNS2 (194.233.88.206), and Contabo (100.98.123.59) as fixed seeds
- Nodes will automatically connect to these on first run
- No manual addnode configuration needed
- Full mesh network connectivity built into the code
2026-04-03 15:55:51 -07:00