SChernykh/p2pool

P2Pool Fails to Work and Frequently Crash with Local Monero Node

akintranslator opened this issue · 9 comments

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?

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?

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.

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.

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?

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.

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.

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

@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.