Frustrated in my intention to contribute to the network with a public full node. I encountered lot of problems with the blockchain replication using monerod.
I've tried for few days to get monerod syncronized but apart of the continuous time-consuming DB resize which takes from 1 second to 20 minutes, there is also a problem when at some point in the process it starts throwing exceptions and sudenly block syncing slows down from 1s for each 20 blocks chunk to almost 20 seconds for each chunk.
The sync was initiated from scratch, just after compiling I started with command monerod --detach
and it took days and the logs were full with exceptions. After been fully syncronized it was still filling logs with exceptions and it looked too slow in syncing new blocks so I decided to discard it and repeat the process in another machine.
So to experiment a bit I went to AWS for an EC2 c5ad.xlarge instance with NVMe SSD, downloaded blockchain.raw (took 8 hours from getmonero.org to the EC2 instance) and import it using monero-blockchain-import tool. It took almost another 10 hours for the task to finish even with NVMe memory. After that, as the blockchain was 22959 blocks behind, then started syncing with monerod --detach. Everything was fine and fast for the first 2 minutes until the same kind of exceptions arised and it started to slow down again. Also CPU was very high. So I decided to abort the process as it was going to take much more time and at the end I'm not sure if these nodes will be autocorrupted or what, so for that reason I discarded them.
Now, my initial and extended question:
- Is there any other build options that compiles monerod free of runtime exceptions and better optimized for x86-64?
More related questions:
- Do mining pools discover new blocks to be mined using monerod node RPC API or they use another faster syncing tool?
- Is there any other better optimized tool apart from monerod that can be used as a Monero public full node?
For the last question I only found PiNode-XMR but this is for ARM processors like RaspberryPi.
My goal here is to contribute with a public Monero full node that I also could use to sync an internal more secured private node that would be used for personal wallets connection and for mining XMR from 3 workstations connected in internal LAN. However it looks like I'm not been lucky.