After being a Monero maximalist and pool admin for almost two years I finally decided to provide fast and simple go-cryptonote-pool solo mining solution for our favourite digital cash in order to slightly improve hashrate distribution. I like currently not so supported zone117x's nodejs pool so I rewrote stratum in golang because I was adamant in my desire to learn new language and create something useful for community.
Probably no need to explain how hashrate distribution is necessary for PoW blockchains.
Just take a look at pie-charts of Bitcoin and Ethereum networks, it's pretty clear that very unlikely things are gonna change in near future.
Looking sick isn't it? Thankfully according to these stats Monero network is more healthy. I believe it was a great idea to fund development of open source pool right after launch. So why not make hashrate distribution even more better now?
Q: Why solo mining is preferable over pool mining?
Everyone gets exactly what they deserve. With a trade-off of variance hit indeed. It increases number of full nodes in network and protects network from attacks.
Q: What are the benefits? Why I should go full solo on Monero?
If your hashrate is big enough and you can find a block once per 1-2 days you are good to go solo, pools will reduce your variance, but if you are stable miner and not going to hop to other coins every 10 minutes you are ok with it as long as you are long term. Monero price is pretty stable, it remains the most profitable CryptoNote CPU coin to mine and very unlikely you will loose even if your strategy is mine and dump. If mining is just a fun for you there is no reason for pool mining at all.
All boring installation instructions for OSX and Linux you can find in go-cryptonote-pool repository README.
After 10-15 minutes of installation and switching over your miners to your own private stratum you will eventually find something like this in your wallet:
Q: How do I know my stats? There is no web interface, even Monero GUI is finally on the way!
Self hosting web interface without external dependencies will be available soon ™ and will look like ethereum proxy.
There is also some cleanup required because it was my first golang project and already 1 year passed after I wrote it. Now I have way better experience and I am sure there is a place for improvements.
Good post, but for anyone considering solo mining. If you are solo mining with a low hash rate (just a few GPUs or CPUs) it will be a long wait in between blocks on average. This doesn't mean you shouldn't do it–I have been a Monero solo miner for two years and an enthusiastic supporter of solo mining as better for the network and often better for the miner–but you need to be prepared for these waits and the inherent luck factor.
If you have enough of a hash rate to get blocks reasonable often when solo mining, then it is a no brainer, IMO. You not only help the network, and come out ahead in terms of less less risk of being ripped off by a dishonest pool, but you also gain from lower transactions fees since you wont be receiving a lot of small pool payments.
What's a decent hash rate to consider solo mining? I currently have about 50 cores producing anywhere between 1.5-2.2KH/s
At the current hash rate It takes (very roughly) about 100 kh/s to consistently mine one block per day. From there you can easily work out that that it takes about 14 kh/s to mine one block a week and 3 kh/s to mine one block a month. Each interval can stretch out due to luck to about 5x the average (very occasionally longer) or of course you can mine multiple blocks in that time period if you get lucky.
Alternately, at any hash rate, it could all be about fun or supporting the network, or because as other comments pointed out, even pool mining will only give you tiny payouts anyway, which are also less efficient to use (due to high transaction fees when spending coins received as many small payments)
With very low hashrate that's all about fun indeed, even pool mining because it can't make reasonable money for you.
Good point.
I know this article is old, but I wanted to say that it's author's monero stratum pool still works though some updating is needed which I'd be happy to share with the author via an update to his github; I even did it as a docker using some templates a couple of other folks posted. I do have 1 question that am hoping the author can reply with and that's how to modify the pool to mine solo on other alt-coins that are cryptonote-based; specifically, Conceal CCX and Masari. Thanks much
Nice, I am going to try this.
Can you tell us some about the performance differences between golang mining and nodejs?
Thanks!
I didn't perform any measurements, actually only share validation code matters and I guess it's almost equal because C++ code is the same.
The idea behind this project is to make self-hosting solo solution without requirement for runtime, web server for stats and database. I mentioned ethereum proxy as a hint, this is actually what I wanna make for Monero.
I love seeing BitClub Network in that pie chart so so much, they are my favorite! <3 <3 <3
Do you think mining is worth it with these specs?
If we are talking about energy efficiency nothing beats a gpu, specifically 750ti, which I have a bunch grinding at the pools, of course if monero goes up tremendously in value the dust you can mine with a cpu would make sense getting, now.
Currently GPU mining is 5x more profitable if you mine Ethereum or Ethereum Classic, then you can buy Monero if you want it.
Maybe mining steem is better then? Or is my CPU not that strong for it?
Thanks for your reply!