Commit Graph

66 Commits

Author SHA1 Message Date
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 33bb2a81a6 Added redis backend support for storage alternative to empower nextgen observer 2025-12-22 19:12:25 +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 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 ec4f5d914d Removed --donate-time CLI option and donatetime console command, Removed time-based donation tracking, Replace time-based donation with deterministic blockchain-height-based donation, All nodes calculate donation mode identically based on block height, Eliminated need for sidechain file on mainnet - defualts to salvium_main now 2025-11-17 04:10:38 +00:00
Matt Hess 4998cec0a4 updated donate addr and added missed dev donate end log msg 2025-11-13 21:34:16 +00:00
Matt Hess 853d4bf2db Dev donation setup based on N minutes per 100
- Designed like xmrig --donate-level but specific to the minute per 100 cycle
2025-11-13 16:13:59 +00:00
Matt Hess 8fa225b909 Revert "Add consensus-enforced 0.3% dev fee"
This reverts commit 2a41ad9670.
2025-11-13 04:59:08 +00:00
Matt Hess 2a41ad9670 Add consensus-enforced 0.3% dev fee 2025-11-12 17:34:00 +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 5dc0cc4861 Added --no-clearnet-p2p parameter, added TOR documentation 2025-10-21 18:38:51 +02:00
SChernykh cb9fc89b22 Added --onion-address command line option to support incoming TOR connections 2025-10-20 13:06:45 +02:00
SChernykh 0184a3139c CI: revised clang-tidy list of checks 2025-09-25 18:46:22 +02:00
SChernykh 04d195d5cd Added support for mining to a subaddress 2025-09-22 14:24:11 +02:00
SChernykh a4e1f00993 Wallet: added subaddress detection 2025-09-21 15:50:08 +02:00
gavinbarnard 068b286a88 full share validation via cmdline option 2025-09-06 18:05:11 +00:00
SChernykh 964f4c8065 Updated copyright 2025-07-14 20:30:33 +02:00
WHR 6c4520481b Make ban time of stratum clients configurable via '--stratum-ban-time' option 2025-06-10 20:08:09 +08:00
SChernykh e0c1d9377c P2Pool-nano support 2025-05-28 15:04:11 +02:00
SChernykh 70298cd065 Merge mining donation support 2025-05-13 17:18:29 +02:00
SChernykh 3558181a7b Removed deprected --config parameter 2025-02-08 19:18:04 +01:00
SChernykh 9ce9516c99 Added RPC-SSL support for Monero node connections 2025-01-27 22:32:28 +01:00
SChernykh dd7e2a477f Renamed --config command line parameter 2024-12-17 14:36:40 +01:00
SChernykh a4459d6207 Added a command line parameter to disable Stratum HTTP 2024-12-17 11:39:49 +01:00
SChernykh 921611ff4d Added --data-dir command line option 2024-12-04 15:39:19 +01:00
SChernykh 8960365f82 TLS: added command line to load certificate files 2024-08-07 21:21:24 +02:00
SChernykh a25b5c9713 Tari: fixed pow_data generation 2024-05-11 18:58:53 +02:00
SChernykh f95d366881 Merge branch 'master' into merge-mining 2024-01-02 14:26:32 +01:00
SChernykh 1e1c3ad6e9 Updated copyright 2024-01-02 14:12:16 +01:00
SChernykh e6b8292d5b Added command line for merge mining
Start a merge mining client for each of the aux chains
2023-11-10 16:17:34 +01:00
SChernykh 76c4573c39 CI: cleanup build warnings
Tests: fixed "unused const variable" warning
CMakeLists.txt: fixed deprecation warnings
2023-08-16 14:20:23 +02:00
SChernykh 3554adf0c1 Refactored string conversions
Use `log::Stream` everywhere
2023-06-27 14:29:19 +02:00
SChernykh b5fa34e1a1 Added support for multiple Monero hosts
Switch to the next host in list when P2Pool thinks current host is stuck or lagging
2023-06-18 12:56:27 +02:00
SChernykh 6ef166ba33 Fixed cppcheck errors 2023-04-14 12:38:14 +02:00
SChernykh c0586a5089 Added --no-igd as an alias for --no-upnp
For compatibility with monerod command line parameters
2023-03-21 19:31:18 +01:00
SChernykh fe7ef30650 Don't port forward Stratum port by default
Added a command line parameter to enable it
2023-03-20 14:04:19 +01:00
SChernykh d4a57370ef Disable cmd params depending on compile flags 2023-03-20 09:17:59 +01:00
SChernykh 19cc044cab Added UPnP port forwarding 2023-03-19 23:02:09 +01:00
SChernykh b346b93285 Updated copyright 2023-01-04 13:07:55 +01:00
SChernykh 260564cff1 Check for NO_COLOR before logging starts 2023-01-01 22:12:16 +01:00
SChernykh 726224b253 Support NO_COLOR environment variable 2023-01-01 11:47:13 +01:00
SChernykh 9bce415523 Added alternative command line parameter names 2022-12-03 21:21:02 +01:00
SChernykh 65a9574e52 Added --p2p-external-port command line parameter 2022-10-28 14:06:26 +02:00
SChernykh 38a6d3e549 Limit max in/out peers to 450
To avoid hitting default open files limit (1024)
2022-09-20 10:39:55 +02:00
SChernykh e4dd46b498 Added --no-dns command line parameter 2022-09-04 18:10:14 +02:00
SChernykh 86156f3fec SOCKS5 proxy support 2022-09-03 22:35:38 +02:00
SChernykh a35d4b2701 Change llhttp to libcurl 2022-06-06 15:08:37 +02:00
SChernykh b191962d32 Handle startup errors without calling abort() 2022-05-23 09:37:11 +02:00
SChernykh 990916ab62 StratumServer: added autodiff
Autodiff is enabled by default, target time is 30 seconds. It can be disabled with `--no-autodiff` command line option.
2022-05-08 19:03:00 +02:00