Zcash mining pool

Let's build one.

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?

1 Like

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

1 Like

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.

1 Like

If we can work out the specifics I would be up for joining. I'll start digging into some research on the topic.

1 Like

Wow, only noobs on this forum... What is this, 2013 ?!

Yes noobs, and trolls apparently....

2 Likes

Has Zcash thought about contacting this person? http://solo.ckpool.org
Here is another link to his work https://bitcointalk.org/index.php?topic=763510.msg8604106#msg8604106 and I do believe he set up litecoin and doge coin solo pools

The pools part is actually pretty easy to set up. But setting up pools requires that we have standalone miners than can point to the pool.

So we first need to build a standalone miner for zcash that is capable of pointing to a pool.

I'm really hoping both a GPU miner & pool come out close to the genesis launch.

I'll mine on your pool Austin if you get one up and running!

1 Like

He built cgminer I think he can help

1 Like

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).

3 Likes

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.)

4 Likes

Oh I see. Awesome idea! I'll try to find time to reach out to him.

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.

2 Likes

@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.

1 Like

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.

Awesome, thank you! Please keep me updated.

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.

Also as @daira mentioned, P2Pool may be a great solution for mining pool set up. I found this handy guide for P2Pool: https://bitcointalk.org/index.php?topic=153232.0

2 Likes

Thanks for the update.

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.

I'll keep you updated.

2 Likes