From 614b81fd2395a1be71f70d2978782920417f0171 Mon Sep 17 00:00:00 2001 From: nahuhh <50635951+nahuhh@users.noreply.github.com> Date: Thu, 24 Jul 2025 18:00:45 +0000 Subject: [PATCH] p2pool: add nano sidechain --- pages/Mining.qml | 63 ++++++++++++++++++++++++------------ src/p2pool/P2PoolManager.cpp | 4 +++ 2 files changed, 46 insertions(+), 21 deletions(-) diff --git a/pages/Mining.qml b/pages/Mining.qml index 6167b7b7..85bd4d0a 100644 --- a/pages/Mining.qml +++ b/pages/Mining.qml @@ -384,6 +384,7 @@ Rectangle { ListElement { column1: qsTr("Mini") ; column2: ""; priority: 0} ListElement { column1: qsTr("Main") ; column2: ""; priority: 1} + ListElement { column1: qsTr("Nano") ; column2: ""; priority: 2} } ColumnLayout { @@ -400,7 +401,7 @@ Rectangle { MoneroComponents.Tooltip { id: chainsHelpTooltip - text: qsTr("Use the mini chain if you have a low hashrate.") + translationManager.emptyString + text: qsTr("Use the mini or nano chains if you have a low hashrate.") + translationManager.emptyString } MouseArea { @@ -448,26 +449,43 @@ Rectangle { id: flagsHelpTooltip text: " Usage:
- --wallet Wallet address to mine to. Subaddresses and integrated addresses are not supported!
- --host IP address of your Monero node, default is 127.0.0.1
- --rpc-port monerod RPC API port number, default is 18081
- --zmq-port monerod ZMQ pub port number, default is 18083 (same port as in monerod\'s \"--zmq-pub\" command line parameter)
- --stratum Comma-separated list of IP:port for stratum server to listen on
- --p2p Comma-separated list of IP:port for p2p server to listen on
- --addpeers Comma-separated list of IP:port of other p2pool nodes to connect to
- --light-mode Don't allocate RandomX dataset, saves 2GB of RAM
- --loglevel Verbosity of the log, integer number between 0 and 6
- --config Name of the p2pool config file
- --data-api Path to the p2pool JSON data (use it in tandem with an external web-server)
- --local-api Enable /local/ path in api path for Stratum Server and built-in miner statistics
- --stratum-api An alias for --local-api
- --no-cache Disable p2pool.cache
- --no-color Disable colors in console output
- --no-randomx Disable internal RandomX hasher: p2pool will use RPC calls to monerod to check PoW hashes
- --out-peers N Maximum number of outgoing connections for p2p server (any value between 10 and 1000)
- --in-peers N Maximum number of incoming connections for p2p server (any value between 10 and 1000)
- --start-mining N Start built-in miner using N threads (any value between 1 and 64)
- --help Show this help message + --wallet Wallet address to mine to. Subaddresses and integrated addresses are not supported!
+ --host IP address of your Monero node, default is 127.0.0.1
+ --rpc-port monerod RPC API port number, default is 18081
+ --zmq-port monerod ZMQ pub port number, default is 18083 (same port as in monerod\'s \"--zmq-pub\" command line parameter)
+ --stratum Comma-separated list of IP:port for stratum server to listen on
+ --p2p Comma-separated list of IP:port for p2p server to listen on
+ --addpeers Comma-separated list of IP:port of other p2pool nodes to connect to
+ --stratum-ban-time N Number of seconds to ban misbehaving stratum client, default is 600
+ --light-mode Don't allocate RandomX dataset, saves 2GB of RAM
+ --loglevel Verbosity of the log, integer number between 0 and 6
+ --data-dir Path to store general p2pool files (log, cache, peer data, etc.), default is current directory
+ --sidechain-config Name of the p2pool sidechain parameters file (only use it if you run your own sidechain)
+ --data-api Path to the p2pool JSON data (use it in tandem with an external web-server)
+ --local-api Enable /local/ path in api path for Stratum Server and built-in miner statistics
+ --stratum-api An alias for --local-api
+ --no-cache Disable p2pool.cache
+ --no-color Disable colors in console output
+ --no-randomx Disable internal RandomX hasher: p2pool will use RPC calls to monerod to check PoW hashes
+ --out-peers N Maximum number of outgoing connections for p2p server (any value between 10 and 1000)
+ --in-peers N Maximum number of incoming connections for p2p server (any value between 10 and 1000)
+ --start-mining N Start built-in miner using N threads (any value between 1 and 64)
+ --no-autodiff Disable automatic difficulty adjustment for miners connected to stratum (WARNING: incompatible with Nicehash and MRR)
+ --rpc-login Specify username[:password] required for Monero RPC server
+ --socks5 Specify IP:port of a SOCKS5 proxy to use for outgoing connections
+ --no-dns Disable DNS queries, use only IP addresses to connect to peers (seed node DNS will be unavailable too)
+ --p2p-external-port Port number that your router uses for mapping to your local p2p port. Use it if you are behind a NAT and still want to accept incoming connections
+ --no-upnp Disable UPnP port forwarding
+ --no-igd An alias for --no-upnp
+ --upnp-stratum Port forward Stratum port (it's not forwarded by default)
+ --merge-mine IP:port and wallet address for another blockchain to merge mine with
+ --version Print p2pool's version and build details
+ --tls-cert file Load TLS certificate chain from \"file\" in the PEM format
+ --tls-cert-key file Load TLS certificate private key from \"file\" in the PEM format
+ --rpc-ssl Enable SSL on RPC connections to the Monero node
+ --rpc-ssl-fingerprint base64-encoded fingerprint of the Monero node's certificate (optional, use it for certificate pinning)
+ --no-stratum-http Disable HTTP on Stratum ports
+ --help Show this help message " } @@ -630,6 +648,9 @@ allArgs = allArgs.filter( ( el ) => !defaultArgs.includes( el.split(" ")[0] ) ) if (chainDropdown.currentIndex === 1) { chain = "main" } + if (chainDropdown.currentIndex === 2) { + chain = "nano" + } var p2poolArgs = persistentSettings.p2poolFlags; var success = p2poolManager.start(p2poolArgs, address, chain, threads); if (success) diff --git a/src/p2pool/P2PoolManager.cpp b/src/p2pool/P2PoolManager.cpp index f7f3f767..e4e2151b 100644 --- a/src/p2pool/P2PoolManager.cpp +++ b/src/p2pool/P2PoolManager.cpp @@ -182,6 +182,10 @@ bool P2PoolManager::start(const QString &flags, const QString &address, const QS arguments << "--start-mining" << threads; } + if (chain == "nano") { + arguments << "--nano"; + } + if (chain == "mini") { arguments << "--mini"; }