If I’m not mistaken, this is the roadmap to get from where we are now to having a zcash mining pool (which will greatly reduce the variance of the reward for miners, and therefore encourage more mining by more people).
(1) Build a stand-alone miner. I’m thinking we can fork and modify cpuminer, (perhaps grabbing code from zcash’s miner.cpp?).
(2) Set up a pool on a dedicated AWS EC2 server.
(3) Everyone profits.
I’m not familiar enough with the guts of cpuminer to be able to do (1) readily. If anyone else is and wants to volunteer please let me know. If no one steps up then I’ll just try to find the time figure it out myself.
Number (2) is pretty straightforward after we have (1).
Is anyone else interested in this? Or are most folks planning to solo mine?
As I understand it, pool mining a coin like bitcoin involves co-ordinating the miners so that they’re not needlessly reproducing each other’s work - they each get a certain portion of the nonce (and other variables) number space.
But, at this point, I don’t even know if an approach like that is applicable to Equihash. How can two or more ZCash miners collaborate on the same input data so that their computing power can reduce the time needed to solve the problem?
My understanding, admittedly evolving at this point, is that by choosing Equihash which is memor-based PoW, the system has been set up to be more supportive of solo mining. Not sure that pool mining is something they really want to see as that, with BTC at least, was the beachhead for centralised mining giants to emerge
It actually works the same way as it does with bitcoin.
With Equihash we’re trying to find a V and subset of {x_i} such that:
H( I || V || x_1) ⊕ H( I || V || x_2 ) ⊕ · · · ⊕ H( I || V || x_2^k ) = 0 (along with some other constraints).
Everyone in the pool will have a common I (the block we’re trying to solve) and {x_i}. So we simply split up our search for V.
In practice it will work the same way it does for bitcoin (and other PoW alts): The miners query the pool server for I and {x_i}. Then the miners (individually) choose a large random starting value for V. Then they increment V on each hash until someone finds a solution and broadcasts it to the network.
So, in principle, the only thing that needs to change in the cpuminer software is the hashing algo. The nonce-updating stuff remains the same.
Please don’t discourage participation on this forum by newcomers to the Zcash or cryptocurrency community. If you’re looking for more technically focused discussion, I suggest the github issue tracker (which is not to say that technical discussion is discouraged here).
On the issue of mining centralisation, I would strongly encourage people to focus on decentralised mining approaches such as P2Pool, rather than centralised pools requiring greater trust in the pool operators – who are then in a position to launch attacks on the network and other users. (P2Pool isn’t ideally decentralised but it is a step in the right direction.)
I completely agree with this. And pools created early on will benefit from a network effect. So if the first pools created are P2Pools that could have a strong positive influence on the decentralization of zcash mining in the long run.
@Austin-Williams@Jason-1978 I know some are busy now so I have sent Con Kolivas an email to see if he can help with building a miner, I linked to this thread so hopefully he will join the conversation or email me back.
I will let everyone know if he contacts me.
Very good I’m happy to see my idea wasn’t thrown aside, I can’t be of any help with Zcash other than support. I am very excited to see this launch. I believe.
Just as an update, I didn’t get a reply from Con Kolivas about the cpuminer. I’m guessing that we are on our own for reverse engineering the Zcash miner for a pool set-up, at least until the developers can get to it.
Once we get a stand alone miner we can implement any kind of pool we want. P2pool is slightly harder to set up, but well worth it the long run IMHO. In a perfect world,the first public Zcash pool would be a p2pool setup. First movers have a huge network-effect advantage, and I think it’d be great if a p2pool type pool showed up early.
I’m wrapping up some Amazon EC2 mining setup/tests, and then I plan to see if I can figure out how to make a standalone miner.