Commit Graph

16 Commits

Author SHA1 Message Date
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
00fb078004 Implement genesis reconciliation protocol for sidechain stability
Problem: P2Pool nodes starting at different times or experiencing network
issues would create independent genesis blocks, resulting in incompatible
chains. Nodes would ban each other for invalid blocks that were actually
valid on a different chain. Cache resume after restart frequently failed
due to genesis mismatch between nodes.

Solution:  Oldest compatible genesis wins protocol that coordinates
genesis selection across peers before mining begins.

New P2P message GENESIS_INFO exchanges:
- Genesis block hash
- Genesis timestamp
- Genesis mainchain height
- Protocol version

Startup behavior:
- Wait up to 90 seconds for peer genesis info (with progress logging)
- Adopt oldest genesis from compatible peers
- Only create own genesis if no peers respond

Late joiner reconciliation:
- Running nodes that receive older genesis from new peer will purge
  their sidechain and re-sync to the older chain
- Cache files deleted on purge to prevent reload of stale blocks

Protocol versioning:
- PROTOCOL_VERSION constant at top of side_chain.h
- Increment only on consensus-breaking changes
- Version mismatch logs warning, prevents genesis adoption

Tiebreaker: When timestamps match, lexicographically lower hash wins.
2025-12-05 23:44:53 +00:00
Matt Hess
62c654f77c Port P2Pool to Salvium 2025-11-12 15:20:13 +00:00
SChernykh
25a5361777 Wallet: added checks for FCMP++ compatibility 2025-10-23 12:58:45 +02:00
SChernykh
a4e1f00993 Wallet: added subaddress detection 2025-09-21 15:50:08 +02:00
SChernykh
964f4c8065 Updated copyright 2025-07-14 20:30:33 +02:00
SChernykh
1e1c3ad6e9 Updated copyright 2024-01-02 14:12:16 +01:00
SChernykh
b346b93285 Updated copyright 2023-01-04 13:07:55 +01:00
SChernykh
45660e3d96 Show wallet address in error messages and status 2022-11-03 11:38:43 +01:00
SChernykh
2c70bf8616 View tags support
See http://github.com/monero-project/monero/pull/8061
2022-04-09 00:56:42 +02:00
SChernykh
93cd9a659a Code cleanup 2022-04-07 19:11:20 +02:00
SChernykh
a2afa29052 Updated copyright 2022-03-30 14:42:26 +02:00
SChernykh
b35b4a9f76 Crypto: added cache for faster key derivation 2021-09-14 11:06:49 +02:00
SChernykh
780afd84a2 Added checks for tx keys 2021-08-31 17:23:20 +02:00
SChernykh
27c2aab145 Check network type at startup
- Make network type part of consensus ID to avoid mixing p2pool nodes from mainnet and testnet/stagenet
- Check that wallet address matches the network type of monerod
2021-08-27 11:25:25 +02:00
SChernykh
510b7dbb85 Add files 2021-08-22 12:20:59 +02:00