SChernykh / p2pool

Decentralized pool for Monero mining
GNU General Public License v3.0
1.03k stars 123 forks source link

P2Pool Fails to Work and Frequently Crash with Local Monero Node #300

Closed akintranslator closed 4 months ago

akintranslator commented 5 months ago

I don't know if this issue is related to monerod daemon but I am using either monerod instance using a service file with the necessary flags and settings or plain command line monerod instance. (Monerod both as a command line app and service app successfully synchronize and download the blockchain.) In both cases p2pool either fails to receive blocks or does receive empty responses from momerod. The errors I am getting are "ZMQReader failed to connect tcp://127.0.0.1:18083" or "P2Pool couldn't download block headers for ..." Anybody experiences this behavior?

SChernykh commented 5 months ago

ZMQReader failed to connect tcp://127.0.0.1:18083

Do you have --zmq-pub tcp://127.0.0.1:18083 in monerod command line?

akintranslator commented 4 months ago

Here is what I did try: My monerod works as a service. It successfully starts and downloads all blocks and stores it on my manjaro machine. Here is my ExecStart line: "ExecStart=/usr/bin/monerod --detach --pidfile /home/XXXXXX/monerod.pid --data-dir /home/XXXX/blockchain_monero/ --disable-dns-checkpoints --enable-dns-blocklist --zmq-pub=tcp://127.0.0.1:18083" I also tried manually command line started version of monerod too. No avail. Here are the errors I get: "ERROR 2024-02-01 14:06:47.2265 ZMQReader failed to connect to tcp://127.0.0.1:18083" "ERROR 2024-02-01 14:06:47.2274 P2Pool Couldn't start ZMQ reader: exception Operation cannot be accomplished in current state" "ERROR 2024-02-01 13:54:32.1012 P2Pool Couldn't download block headers for heights 3074014 - 3074733, error Error (empty response)" "WARNING 2024-02-01 13:57:56.1781 P2Pool get_info RPC request to host localhost:18081:ZMQ:18083 (::1) failed: error Error (empty response), trying again in 1 second" However I did not use the manjaro aur version of P2pool. Maybe that's why I am getting these problems. Since I've been mining for a few days and gupax shows a few payouts, I am afraid to lose the payouts if I stop it. So I cannot dare to test with local monerod node once more.

SChernykh commented 4 months ago

It looks like P2Pool tries to connect using IPv6, but monerod uses IPv4 only. Try to add --host 127.0.0.1 to P2Pool command line.

akintranslator commented 4 months ago

I believe there are multiple issues here: My persistence make p2pool and monerod as services were messing up the things. So I desisted converting them into services and started using them from command line. This solved many problems of stability but for some reason my (manjaro) monerod binary sends empty response to p2pool.'s zmq queries. That's the main problem I need to figure out Is there a way to test monerod's answer in human readable form?

akintranslator commented 4 months ago

I thing I figured out the monerod local node problem. If I use --detach flag on monerod it does not respond zmq requests. I removed that flag and rerun p2pool started receiving responses from local node but scanning for peers for several minutes now.

elstak80 commented 4 months ago

Same here, p2pool give a

P2Pool caught SIGHUP P2Pool Stopping ConsoleCommands event loop stopped TCPServer stopped P2Pool uv_run exited, result = 0 ZMQReader monitor stopped ZMQReader worker thread stopped ZMQReader stopped StratumServer closed 1 active client connection StratumServer event loop stopped TCPServer stopped Util UPnP: Trying to delete mapping for external port 37888 P2PServer closed 41 active connections P2PServer event loop stopped Util UPnP: Deleted mapping for external port 37888 TCPServer stopped P2Pool stopped RandomX_Hasher stopped Log Stopped

That's all i have in the p2pool log(? is th eonly file inside the folder, no log in appdata) all start from the last update

I use Gupax to run p2pool with monerod running both on the same machine.

SChernykh commented 4 months ago

P2Pool caught SIGHUP

That can only happen when you close P2Pool's console window or disconnect from an SSH session.

P.S. You should probably create an issue in Gupax repository https://github.com/hinto-janai/gupax/issues

akintranslator commented 4 months ago

@SChernykh I believe majority of the problems is caused by my noobness:

  1. I insisted on converting both monerod and p2pool into services, which failed miserably and caused so many cryptic errors. Neither monerod nor p2pool do not play ball when they are converted into services. Service.d expects service ready or some other message when a service becomes stable and both programs never emit that messages that's why service.d stops (and restarts) them. Because of this problem both monerod and p2pool never properly updates their blockchain.
  2. I omitted not using "--detach" flag. When you use --detach flag, monerod never responds to xmq requests.
  3. In my experience (on a manjaro machine) gupax was using a lot of cpu. Other than it was working magnificient. I believe it was caused by running xmrig as super user to make use of cpus nsr (?) capabilities. I will open an issue on gupax github. Maybe they need to make it possible to use xmrig without nsr.
SChernykh commented 4 months ago

Did you try https://github.com/SChernykh/p2pool/blob/master/docs/SYSTEMD.MD ?