Building The Ethereum Mining Pool

  • *The Ethereum Foundation have announced a bounty for someone to provide some open source mining pool software. I’ll wait until this is available, unless on the very slight chance I do get the grant* – see An Open Source Mining Pool Bounty and DEVgrant [].
  • We are getting ready to launch our new Ethereum mining pool.
    The pool mining software is now in place and has mined 4 blocks and 1 uncle (blocks solved my the miner but another miner submitted their solved block before) – see 0xbeef281b81d383336aca8b2b067a526227638087. Statistics including the hashrate and shares for each worker are being collected. You can connect to this pool using the following details:
    We are now working on the front end, include the apportioning of the block rewards and display of statistics. Payments to any connected miners who have accrued rewards will be made when the accounting part is completed, expected in the next few days.
    This pool will pay out the block rewards, uncle fees and transaction fees. This pool will cover the cost of transactions fees when paying miners. Other pools charge a 1% fee to miners – we are working out whether we can go lower, maybe 0.5%.

    • I am now working on finding all the blocks mined by the pool and getting the balance at that point. I’m using the geth JSON-RPC API and can scan 237 blocks per seconds. The balance numbers are too large for Java Longs, so I’m using BigIntegers.
    • There is a problem getting the total block rewards per block, including the block reward, uncle fees, transaction fees and internal transaction fees. I can get all but the internal transaction fees. The easiest way to calculate the total block reward is to get the account balance of the block miner in the previous block and the current block. The reward is the difference between the two. However, if the block includes transactions from the mining pool, the difference between the two blocks will not reflect the block rewards. Internal transactions are harder to calculate, but I may be able to ignore this for the mining pool – as long as I don’t using internal transactions with the mining pool account.
    • Working out the gas price required in calculation and the gas used per transaction is tricky.
    • See Using Redis For An Ethereum Mining Pool for the data store behind this mining pool.
This entry was posted in Cryptocurrency and tagged , , . Bookmark the permalink.

Leave a Reply