Commit Graph

1763 Commits

Author SHA1 Message Date
Matt Hess
d4cd458cdf Guard fetch_mainchain_block calls with is_main_thread(), Speed up MSAN sync test 2025-12-25 17:44:55 +00:00
Matt Hess
7ee7e0c71d msan test timeout increase, small compiler optimization 2025-12-25 06:17:20 +00:00
Matt Hess
39f6406729 reduce info firehose on sync test 2025-12-25 05:07:04 +00:00
Matt Hess
e15fd5abf0 updated repo path, updated version 2025-12-25 04:54:53 +00:00
Matt Hess
45572fb215 Setup sync test to be more serial, README tweaks 2025-12-25 04:33:04 +00:00
Matt Hess
63f277c5ae Port fix 37889→38889, Complete Salvium rewrite of README, Docker Salvium updates, XMRAmount → SALAmount, Merge mining warning 2025-12-25 03:45:19 +00:00
Matt Hess
b226260f56 Fix threading violation in block cache loading
Pass nullptr instead of uv_default_loop_checked() when deserializing
  cached blocks at startup. This skips parallel key pre-computation
  during the one-time cache load, avoiding a threading check that was
  failing on macOS arm64.

  The parallel optimization is only used during cache loading - normal
  runtime block processing from peers is unaffected.
2025-12-24 20:13:40 +00:00
Matt Hess
5ce7dbf9f0 Added empty check for pruned_blob before debug deserialize, Added exclusions for no connections to other p2pool nodes, m_transactionHashes is empty, calc_miner_tx_hash fast path 2025-12-24 18:35:01 +00:00
Matt Hess
4f4b3d4753 auto i → const auto, fix test_sync condition - previous setup would never pass based on new mining state conditional 2025-12-24 16:49:42 +00:00
Matt Hess
5f85d05f21 call_once fix, removed rx: OFF configs 2025-12-24 15:18:46 +00:00
Matt Hess
e15484c14c Fix sync test crash: add null terminators to seed_nodes 2025-12-24 05:05:22 +00:00
Matt Hess
2d290833ac carrot_crypto.cpp requires blake2/blake2.h from RandomX/src,
but the include path was only added when WITH_RANDOMX=ON.
  This fixes builds with WITH_RANDOMX=OFF
2025-12-24 04:14:30 +00:00
Matt Hess
3121932b17 Remove unused variable 'out_idx' in create_miner_tx, Add missingInclude to cppcheck suppressions for mx25519.h 2025-12-24 00:59:45 +00:00
Matt Hess
fbb73f9658 Fix unit test crashes for Carrot v1 block format 2025-12-23 23:33:32 +00:00
Matt Hess
506f670114 fixed length bug 2025-12-23 02:10:13 +00:00
Matt Hess
aa7c789743 Fixed sync test option, set default min diff 2025-12-23 01:34:53 +00:00
Matt Hess
72d7263e14 Fixed consensus ID format mismatch, riscv64 SIGSEGV, shadow variable 2025-12-22 22:45:35 +00:00
Matt Hess
33bb2a81a6 Added redis backend support for storage alternative to empower nextgen observer 2025-12-22 19:12:25 +00:00
Matt Hess
e68704dc43 Fix undeclared identifier 2025-12-21 21:11:38 +00:00
Matt Hess
71b12b0004 Cleanup Windows linker errors, Added null check in get_mx25519_impl, Fixed coverage pages copy 2025-12-21 17:30:06 +00:00
Matt Hess
53026f9a53 updated to use new zmq host w/ github fw rules to allow access 2025-12-20 20:01:49 +00:00
Matt Hess
f52792dd42 Fix uninitialized memory in Wallet logging 2025-12-20 16:48:59 +00:00
Matt Hess
dd1c46ce78 Enable p2pool_tests build across all C/C++ CI platforms 2025-12-20 07:44:04 +00:00
Matt Hess
248bb7fe6a Fix log.h static_assert error 2025-12-20 06:35:17 +00:00
Matt Hess
04d5d3634b Fix Windows MSVC compilation and cppcheck warnings, code struct triggers padding warnings 2025-12-19 20:57:48 +00:00
Matt Hess
d509947157 Fix potential division by zero in stratum target calculation, Refactored the nested division expression, intermediate variables with safety checks, prevents potential undefined
behavior that was causing UBSAN crashes
2025-12-19 00:29:18 +00:00
Matt Hess
418a2d363c Fix GitHub Actions workflows and update tests with Carrot v1 data, Fix mx25519 Windows build in c-cpp.yml workflow, Remove scheduled workflow runs from cppcheck.yml and test-sync.yml, Add mx25519 Windows linker flags to CMakeLists.txt 2025-12-18 19:52:53 +00:00
Matt Hess
25c0bc35b8 Added mx25519 header for coverage.yml action 2025-12-18 01:51:49 +00:00
Matt Hess
328a145af7 Fixed linker errors for coverage.yml action, Fixed reorder error for test-sync.yml, Fixed const issues for cppcheck.yml, removed unused log_category_prefix var, Renamed prefix to addr_prefix 2025-12-18 01:04:32 +00:00
Matt Hess
4ddfa22d1b Fixed implicit widening multiplication error, Removed unused "this", Fixed narrowing conversion, Made m_verified and m_invalid mutable, Removed else-after-return, Removed unused num_full_blocks and last_block_size var all to make clang-tidy happy 2025-12-18 00:52:40 +00:00
Matt Hess
9266f28d22 fix one critical bug and mostly code quality/cleanup items for portability, minor cleanup for compile on mac, fixed null check, Remove redundant TX_VERSION check 2025-12-17 22:53:56 +00:00
Matt Hess
ff53f68c10 updated sync action workflow 2025-12-17 20:05:28 +00:00
Matt Hess
0c31e9ae5f Fix checkpoint exchange to support rolling upgrades, fixed silent lag startup period, Mixed v4.12/v4.13 peers coexist 2025-12-17 17:48:20 +00:00
Matt Hess
a2bf43c0e6 fix post start sync hang 2025-12-17 05:54:30 +00:00
Matt Hess
7441b02aff added donation state tracking, proper entering and exiting message, every 720 blocks on mainchain or 0.139% 2025-12-17 05:28:30 +00:00
Matt Hess
7a3aa70d82 Updated all references from p2pool to p2pool-salvium in the GitHub
Actions workflow to match the actual binary name after the project
   rename. This fixes test execution failures across all platforms.
2025-12-17 05:05:07 +00:00
Matt Hess
184d05e40b added mainchain prefetch, ADDRESS_LENGTH buffer overflow fixed, Salvium address validation messages corrected 2025-12-17 04:30:53 +00:00
Matt Hess
b4c482b6ef mx25519 linking - Added to STATIC_LIBS, Windows format strings, macOS sprintf, remove unused variable for mac and bsd compiler happiness, ADDRESS_LENGTH fix 2025-12-17 04:06:55 +00:00
Matt Hess
27dfd4788b fixing C/C++ CI errors 2025-12-17 03:28:41 +00:00
Matt Hess
79e34fdfbb fixed version handshake and display 2025-12-17 02:29:17 +00:00
Matt Hess
8c6961ca71 Fixed race condition with mainchain prefetch on startup, Version-gated checkpoint exchange for backward compatibility, Version bump to v4.13 with protocol 1.5, Added CAP exchange protocol (CHECKPOINT_REQUEST/CHECKPOINT_RESPONSE) 2025-12-17 01:54:52 +00:00
Matt Hess
11b545e91b Add CAP exchange protocol, Deadlock fix, Sync stuck fix with retry mechanism 2025-12-17 00:29:41 +00:00
Matt Hess
940f1cabe8 Revert "Remove compact/pruned blob code - it displeases the carrot"
This reverts commit d5a8bbcc4a.
2025-12-11 02:26:30 +00:00
Matt Hess
d5a8bbcc4a Remove compact/pruned blob code - it displeases the carrot 2025-12-10 15:56:49 +00:00
Matt Hess
4a2bec3f29 Add sync mode to prevent mining during sidechain load
- Added m_readyToMine flag to SideChain
- Display LOADING SIDECHAIN banner at startup
- Delay stratum server and mining until sidechain sync completes
- Display MINING IS NOW ENABLED when ready
- Prevents premature mining that caused peer bans and chain splits

P2PServer starts immediately for sync, but stratum port doesn't
open until sidechain is fully loaded and after pruning completes
2025-12-09 18:52:32 +00:00
Matt Hess
36d03d19fe Fix crash when stratum miners submit with stale templates
Added bounds check in get_hashing_blob_nolock() to handle empty
m_transactionHashes when old/stale template slots are accessed.
Returns 0 and logs at level 3 instead of vector out-of-bounds crash.

Primarily affects external stratum miners that may
hold onto old job IDs across template updates
2025-12-09 03:10:14 +00:00
Matt Hess
3316751f5e Adjusted more logging levels 2025-12-09 00:10:05 +00:00
Matt Hess
0a7d287c40 Moved verbose DEBUG and diagnostic logging from level 0 to level 6 to reduce console spam during normal operation 2025-12-08 23:56:25 +00:00
Matt Hess
1d319325e5 Fix merkle tree calculation for mempool transactions
- Fixed m_transactionHashes to preserve mempool txs across template updates
- Changed merkle calculation to use merkle_hash() with all transactions
- Removed hardcoded 2-transaction merkle assumption for HF10+
- Synchronized m_poolBlockTemplate->m_transactions with m_transactionHashes
- Commented out premature m_transactionHashes.clear()
- Updated monerod references to salviumd
- Enhanced difficulty debug logging (lo/hi components)
2025-12-08 23:03:32 +00:00
Matt Hess
728d6c2cbf Fix Carrot v1 protocol TX handling for peer synchronization
Root cause: Merkle verification failures (error 659) and peer bans occurred
because protocol TX was not consistently present in m_transactions[1].

Parser fix (pool_block_parser.inl):
- Skip dummy transactions[0] entry when populating m_transactions
- Add protocol TX computation after parsing for Carrot v1 blocks

Block template fix (block_template.cpp):
- Insert protocol TX at position [1] during block creation in update()
- Insert protocol TX during select_mempool_transactions()

get_pow_hash fix (pool_block.cpp):
- Ensure protocol TX is populated before serialize_mainchain_data()

The protocol TX must be at m_transactions[1] before ANY serialization
occurs, otherwise sender and receiver compute different merkle roots.

Tested: Multiple restart cycles with two nodes, no bans, chains stay synced.
2025-12-07 23:57:46 +00:00