Move extern declarations to file scope so they resolve to global
symbols instead of the Boost test suite namespace. Cast static const
member to avoid ODR address requirement.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move extern declarations to file scope so they resolve to global
symbols instead of the Boost test suite namespace. Cast static const
member to avoid ODR address requirement.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The -Wl,-z,relro and -Wl,-z,now flags are ELF-specific and not
supported by macOS's linker. Guard them with if(NOT APPLE).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The -Wl,-z,relro and -Wl,-z,now flags are ELF-specific and not
supported by macOS's linker. Guard them with if(NOT APPLE).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
CMake's AutoUic mistakenly treats ui_interface.h (a hand-written
Bitcoin-convention header) as a Qt Designer output and looks for
interface.ui which doesn't exist. Fix by disabling AutoUic and
explicitly running qt5_wrap_ui on the actual .ui files.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
CMake's AutoUic mistakenly treats ui_interface.h (a hand-written
Bitcoin-convention header) as a Qt Designer output and looks for
interface.ui which doesn't exist. Fix by disabling AutoUic and
explicitly running qt5_wrap_ui on the actual .ui files.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Ubuntu 22.04 ships Boost 1.74; the previous 1.75 minimum rejected it.
Also remove boost_system from required components since it has been
header-only since Boost 1.69 and modern installs (macOS Homebrew 1.90)
don't ship a separate cmake config for it.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Ubuntu 22.04 ships Boost 1.74; the previous 1.75 minimum rejected it.
Also remove boost_system from required components since it has been
header-only since Boost 1.69 and modern installs (macOS Homebrew 1.90)
don't ship a separate cmake config for it.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- CMakeLists: add --start-group linking for libtor.a and its deps
(libevent, openssl, zlib, lzma, zstd) with --allow-multiple-definition
for mixed static/dynamic OpenSSL on Windows
- CMakeLists: define USE_UPNP=0 only when USE_UPNP is off (not via
#ifdef-incompatible define)
- net.cpp: guard USE_UPNP reference with #ifdef for builds without UPnP
- rpcwallet.cpp: replace nonexistent LogPrintf with printf
- tor_embedded.cpp: fix SOCKET type mismatch on Windows (SOCKET vs int)
- .gitignore: add testnet-sync/ directory
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- CMakeLists: add --start-group linking for libtor.a and its deps
(libevent, openssl, zlib, lzma, zstd) with --allow-multiple-definition
for mixed static/dynamic OpenSSL on Windows
- CMakeLists: define USE_UPNP=0 only when USE_UPNP is off (not via
#ifdef-incompatible define)
- net.cpp: guard USE_UPNP reference with #ifdef for builds without UPnP
- rpcwallet.cpp: replace nonexistent LogPrintf with printf
- tor_embedded.cpp: fix SOCKET type mismatch on Windows (SOCKET vs int)
- .gitignore: add testnet-sync/ directory
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 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>
- 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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
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>
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>
- 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>
- 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>
- 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>
- 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>