0

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.

1
0

Is there any other build options that compiles monerod free of runtime exceptions and better optimized for x86-64?

The exception logs did used to be a bit spammy until the latest release (v0.17.2.0) and almost all of them were one particular issue that had no material impact. If you don't want any logs just launch it with: --log-level 0. Using any build optimization flags different to the ones used by the standard release build aren't going to affact your sync speed.

Do mining pools discover new blocks to be mined using monerod node RPC API or they use another faster syncing tool?

Mining pools use monerod to create block templates (not "discover new blocks"), and to submit mined blocks back to the network. Initial sync speed is not a concern in this regard as once a node is synced, staying in sync uses far less time/resources. Pools do want their node(s) to be well connected to the rest of the Monero network however.

Is there any other better optimized tool apart from monerod that can be used as a Monero public full node?

No. The only full node implementation is monerod, which is already heavily optimized.

For the last question I only found PiNode-XMR but this is for ARM processors like RaspberryPi.

Not sure what your question is there but there are ARM release binaries made available: https://www.getmonero.org/downloads/ and https://github.com/monero-project/monero/releases

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.