Originaly posted here :
http://pastebin.com/uCjLtqqa===============================
__----=== So you want to run a Monero pool !!!! ===----___
You freshly discovered this coin with all the hot news with darknet.
You started to connect on poloniex and saw that in few weeks XMR price multiplied 3 times.
Even now bigger price than the so famous Ethereum.
And all that with real anonymity and fungibility.
So you decided to run your own mining pool.
You want to be part of the gold rush.
And smarter than the mass you want to provide pool as formely smarter one were selling showel to dig the ground.
Fair Enough.
Bad news: you are two years late.
Anyway you have an IRON will power.
If your plan is to rent a $5/month Ocean digital linux instance for that
while buying a $100 uber cool .io domain name, you MUST QUIT NOW. REALLY
***** This was my biggest and first advice *****
you can send a few xmr here for saving you from BIGGGG FAIIILLLLLUUURRRRREEEEE
and loosing money from server cost and spoiled time:
46KEWExykHpM3A1ecJTmcGXM5Qh6pQN217zPSwiQzYaB3QWfDBc7ba4GkyExGVuT3wiyDkb37yeAr9F
HgMWBXNDD6wTfcYH
Well i can do a 10% off on this first advice ! Cheers !
*****=======================================*****
So if you are ready to become big, you have to think big.
If you want to become rich you have to be rich. erm...
Or at least ready to spend more money on this project.
And associate with a very good PR.
PR is the key point with trust and good infrastructures.
--Servers and network:
At begining everything is easy.
Few miners, few shares to validate,
Lousy connexion with packet lost,
you feel so proud to have mined your first block and send your first payement.
Fine fine.
It's been 3 weeks you were looking at your log with high anxiety,
expecting this fucking message : BLOCK FOUND.
Some pools admins don't even dare to look at those log, they know they find every three blocks in the blockchain.
They have hash rate, huge power computation from thousand of miners, and more thousand of botnet.
Their concern is not finding a block, but is more about how to keep finding a block!
That the mindset shift.
The first pitfall: ulimit.
The name of this is quite ironical, as far as you will reach the standard limit of opened file by a user.
The main effect is that the pool cannot accept new connexion, miners will be unable to work on your pool.
They will move away after discovering they loose few hours of precious hash on your lousy setuped pool.
And be sure of something, they will never come again !
So Second advice: read carefully the manual of ulimit, and try to understand how you can increase the default limit.
**** as a gentle reminder *****
46KEWExykHpM3A1ecJTmcGXM5Qh6pQN217zPSwiQzYaB3QWfDBc7ba4GkyExGVuT3wiyDkb37yeAr9F
HgMWBXNDD6wTfcYH
*******************************
Alright, you avoid the ulimit issue, or solved it fast enough to not loose all your hashrate.
Seems trust is growing and with you PR doing good job on bitcointalk to attract all those new
miners thinking they will become rich recycling their GPU RIG catching dust in their basement
after mining a few microbtc few years ago.
They find a good excuse to switch on the power, and make their wife agree for maintening >40c inside the house
"WE ARE GOING TO BE RICH MUMMY, MONERO XMR IS THE NEW BITCOIN"
Well, why not. They will not be the first to give a try...
So seems your pool start to grow hashrate.
Good
You start to become a target.
yes
From competitors... you know those other pools owner lurking on your hashrate.
What's the best way to steal your hashrate ?
Well, easy too : DDOS
When you get DDOSed, your miners cannot connect to your pool to get work.
They switch to another pool.
With little luck, they switch to the pool which owner paid for ddosing you
See the point
So what is solution
?
You might think, for few bucks your VM provider propose cloudflare solution.......
Lucky you.
You have to change of provider.
Cloudflare deals very baldy with stratum and stratum like protocol.
Often blocking it, as malformed http traffic.
YOU ARE STUCK.
The BEST and ONLY solution is Arbor Network.
With Arbor you can deal with 300GB/s DDOS without one timeout of your connected miner.
So choose wisely your hosting solution, and check if they propose Arbor anti DDOS solution.
This can cost quite big depending of their plan.
But running a famous and big pool has no Price !!!!
**** as a gentle reminder *****
46KEWExykHpM3A1ecJTmcGXM5Qh6pQN217zPSwiQzYaB3QWfDBc7ba4GkyExGVuT3wiyDkb37yeAr9F
HgMWBXNDD6wTfcYH
*******************************
So now, you can deal with ulimit and DDOS.
GREAT DUDE.
I hope you didnt let your reddis instance listen to the world. !!!!!
Someone would be kind enought to change some value on currentvalidsharecountbyaddress
and steal all your coins !
Fuck your payout thread start to fuck around, and you didnt launch it separated from the rest of code.
Damn you should have read better the fucking pool doc, and start to write a screen/tmux launcher with
separating all the thread from each other.
ANY MINUTES OF DOWNTIME IS DAYS OF PR FOR GETTING BACK MINERS TO YOUR POOL.
**** as a gentle reminder *****
46KEWExykHpM3A1ecJTmcGXM5Qh6pQN217zPSwiQzYaB3QWfDBc7ba4GkyExGVuT3wiyDkb37yeAr9F
HgMWBXNDD6wTfcYH
*******************************
As thousand of share to validate flow to your pool per second.
You start to see your CPUs working more and more.
Often in the RED near to 99%.
Your server is to slow to validate share.
Or not.
May be the share validation code is bloated and use too much cpu for this little task....
It's time to look at your pool wallet balance. And search for a developper known for
Optimizing code.
For quite a bunch of XMR may be he will be able to write you a piece of code in C/asm,
which will validate your share in 100 times less time than standard pool code....
who knowzzz
?
Damn, was it worth the spend ? now your cpu are in green zone and your share validation rate limit
is near the moon.
Btw, some smarted ddoser, can start to overflow you not on network level, but on cpu usage.
Submitting too much bad share, consumming a lot of CPU and precious time on your server.
So much that limit are reached and your miner's share are not validated anymore.
May be missing some valid block in the process.
That's wild world !!! you have to really keep that in mind all the time.
**** as a gentle reminder *****
46KEWExykHpM3A1ecJTmcGXM5Qh6pQN217zPSwiQzYaB3QWfDBc7ba4GkyExGVuT3wiyDkb37yeAr9F
HgMWBXNDD6wTfcYH
*******************************
So now, you start to have some miners, mine few block a day, but some of your block are orphaned.
What does it means orphaned ??
Well while your block was valid, the network rejected it and choose another block for the same place
in the blockchain.
Lot of pools can find a block candidate for the same height.
So not only you have to find a block(well not you, but your miner).
But to be sure to be rewarded, the network has to accept it, faster than concurrent blocks submitted by competitors.
What
you didn't know
But, this is how decentralised consensus works my dear !!!!
Well in fact it's even a little bit more complicated.
The blockchain has often several sub branchs of blocks to choose starting from the latest validated and accepted block.
So the network consensus algorithm will choose the sub branch of blocks whith the heaviest added difficulty.
That's the core protocol algorithm.
You can find a block, start to work on the next one, and one hour later you have a blockchain reorganisation.
Because another branch was choosen by the network, and therefore you loose all the MONERO you get rewarded
from your newly orphaned block !
)) (This is a wild world, remind it).
So what strategies can you use to increase your block acceptance
?
An easy one is to increase the number of peers which your mining bitmonerod node is connected too.
This is the starting of the the fun.
You have to patch code and compile again. !
Default number is 8, which means your bitmonerod will be connected to 8 other peers at maximum.
Why not you increase it to 100 ? or 1000 ? you don't fucking care you overcame the ulimit pitfall.
Second, why not grow your number of nodes ?
The more node you run, the more weight you have on the consensus algorithm.
What if you run 10, 20 or even 50 bitmonerod instances on all continents to covers all the space.
With 20 nodes spreaded around the world, directly connected to your primary node and therefore
relaying your fresh block in the network, you increase the chance for it to be fully accepted.
Today, given the little number of pools, there is not so much competion in spreading your block.
So having a few secondary node as prefered peer from your primary node, all of them with increased max peer number
can give good result in consensus acceptance, avoiding orphaned block.
It can also increase your luck !!!
What is luck
well vast question.
But in mining, with a given difficulty, you can estimate from globalhashrate and you localhashrate, the time to mine the next block.
Luck is positive if takes your pool less time for your pool to find the next block, than expected.
It is negative if it takes more time than expected.
Remind, mining is a lottery, the time finding the good number can be statistically estimated, but it is not reality.
So if you have fast connexion to supply and receive work from miners,
fast share validation reducing the processing time on pool
you will discoved faster than expected if a share leads to a valid block.
Having a bunch of node to spread it through the network, will increase acceptance factor in blockchain.
Therefore your luck increase !
Your miner are happier!
Your PR has easier job to attract more miners!
Your pool wallet has grown far bigger than you could imagine!
Now you can play the big whale in poloniex troll box !!!!
**** as a gentle reminder *****
46KEWExykHpM3A1ecJTmcGXM5Qh6pQN217zPSwiQzYaB3QWfDBc7ba4GkyExGVuT3wiyDkb37yeAr9F
HgMWBXNDD6wTfcYH
*******************************
To conclude:
NEVER FORGET That reputation is very HARD to build.
And very easy to destroy.
This is not your fucking money, but other's one.
Be ready to have to put money from your pocket to pay your miner in case of any trouble.
Some pools miner loose their profit of 3-4 months just to compensate miners after big trouble with pool's wallet.
Miner are easely talkative (irc/bct), and share their infos.
Act bad one time and you loose everything.
And you are still thinking about a VM in amazon instead of digital ocean. GET FUCKING LOST!!!!!
**** as a gentle reminder *****
46KEWExykHpM3A1ecJTmcGXM5Qh6pQN217zPSwiQzYaB3QWfDBc7ba4GkyExGVuT3wiyDkb37yeAr9F
HgMWBXNDD6wTfcYH
*******************************
Cheerssss