0

I know it's possible to solo mine XMR using XMRig through some pools, but I'd like to try to solo mining on my own, with no pools involved. As I have the intention to set up a public full node using monerod, I have decided to also setup some miner rigs to solo mine with the arrangement represented in the picture below. Mining arrangement proposal Explained:

  • These 3 miners will be connecting to an internal private full node for new blocks to be mined. They will connect to the private monerod using the Daemon RPC interface.
  • The internal private full node will be syncing from the public one using --add-exclusive-node or --add-priority-node whichever is better. Still don't know.
  • The public full node will be totally optimized for syncing with as many external nodes as possible so that generated blocks arrive as fast as possible (I still don't know how to setup for that).
  • Personal wallets will connect to private full node to increase security.
  • The proxy component was discarded because there are only 3 miners and I guess monerod is able to deal with them. I'll see...

Now my main question: Is this an optimal solution for solo mining?

Some concerns:

  • As monerod looks a bit slow when syncing I'm not sure if it is the right tool to be used for getting new blocks to be mined.
  • If monerod gives exactly the same jobs to all 3 miners, XMRig could end up waisting CPU by computing the same hashes in each rig. But apparently it won't happen although I'm not totally sure so I need confirmation. According to RandomX docs it looks like randomness happens for each result hash on program initialization stage (not sure now), they all use the same key (K) that RandomX gets as input together with the block data to be hashed (H), then a 1st random program is generated to get each result hash, so it is suposed that there won't be a problem getting the same data from monerod. Could anyone confirm this?

An improvement:

  • Would it be an improvement connecting the miners to a public full node?
  • Would then the security for the private full node be compromised?
1
  • I want to do the same thing. So I have setup the following: I am running a Monero node using monerod on a Ryzen 5 the blockchain has fully downloaded and up to date. I took one of my mining rigs (running xmrig) and reconfigured the Json file using the ip of the node I am running. I restarted the rig and xmrig comes back and tells me connection refused. Any suggestion to make this work would be much appreciated.
    – Steve
    Aug 22 at 1:23
0

Is this an optimal solution for solo mining?

Looks reasonable.

As monerod looks a bit slow when syncing...

Then make sure it has a good internet connection, fast disk (SSD) and a decent enough CPU.

I'm not sure if it is the right tool to be used for getting new blocks to be mined.

The only tool right now for getting block data to be mined is monerod. Even if you used a pool, that pool uses monerod, and right now there is only one implementation of a Monero full node and that is monerod.

If monerod gives exactly the same jobs to all 3 miners, XMRig could end up waisting CPU by computing the same hashes in each rig.

Except it doesn't. XMRig calls get_block_template passing in some random bytes, so the resulting block hashing blob will be unique to each miner.

According to RandomX docs...

This has little to do with RandomX or the random nature of it. The data being hashed is already unique to each miner, as outlined above. If the data being hashed wasn't unique, then calling the hashing function with the same data will result in the same hash (which is how others can reproduce a hash and thus verify submitted blocks).

Would it be an improvement connecting the miners to a public full node?

If the public node you chose to use is better maintained and configured than your own node, then yes.

Would then the security for the private full node be compromised?

No.

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.