Post
Topic
Board Pools
Re: [460 TH] p2pool: Decentralized, DoS-resistant, Hop-Proof pool
by
windpath
on 20/06/2014, 14:28:17 UTC
This is a great conversation guys, and one that needs to be had.

I have built and managed large development teams in the past for specialized projects, and I have to say that none of them came close to the complexity and challenges offered by what we need in a p2pool dev team.

For p2pool to get to the next level I think we need an active lead dev or chief scientist to lead; and 3 technical achievements, the first 2 are easy:

1. Hardware compatibility and a responsive available individual for both HW and mining SW folks to work with.

2. A great looking front end that provides what miners want that is unified across nodes. p2pool already has the ability to be the most transparent pool in existence, lets get that data out there for miners to mull over and do it in a way that looks so good out of the box that node operators are not inclined to re-invent the front end with each install. When a miner checks out a node it should be familiar and they should know what they are looking at. I'm happy to build this using open source tools and have a solid start already on my node. Combining Bootstrap, PHP, and an SQL DB we could build an open source, cross-platform, front end that both looks great and is data rich.

Which leads me to our 3rd, and biggest challenge:

3. Vertical scalability that reduces variance for all miners.

This is where the real challenges lie.

For p2pool to support large mining operations, and still be able to attract medium, small, and micro miners we need completely new share difficulty and payout structures.

The first step here has nothing to do with code, some completely new concepts need to be developed and generally accepted by p2pool miners. Once we have those concepts down, and can demonstrate them to be technically possible, we can seek out devs with the chops to pull it off.

This may seem like no big deal, but I assure you it is. Here is my first crack at it:

Payouts
While miners meeting a certain threshold could still be paid directly from the generation TX, smaller miners under the payout threshold when a block is found, lets say BTC0.01 to start, would be able to see their p2pool earnings down to the Satoshi in real time, but would not receive a payout until reaching the threshold.

To accomplish this I propose a decentralized, trust-less escrow system.

A p2pool software controlled secure wallet where all payouts from each block that did not meet the payout threshold would be stored, and then paid out to miners when they reach the threshold.

Miners who reach the minimum payout during a round are paid directly from the generation tx, while payments for all miners under the threshold are sent to and stored in the wallet, and payouts are made from the wallet when the threshold is reached.

The caveat is that this needs to be handled entirely by p2pool in a decentralized and trust less way with no single "admin" overseeing them. How to handle the keys securely without anyone but the p2pool code knowing them is a challenge, maybe the guys from the dark wallet or Armory teams would have some technically viable suggestions.

Difficulty
An automated "variable and weighted" share difficulty would need to be assigned to miners based on hash rate. Every major pool in existence does it, we just need a method of doing it across the p2pool block chain in a way that is not easily manipulated. Perhaps the MIT Bitcoin club would be interested in tackling such a challenge?

End game: Protect the network, encourage miners to participate actively in both Bitcoin and p2pools decentralized nature.

Even without active development p2pool is a strong "brand" in the Bitcoin space, most miners are aware of it, and its challenges. Overcoming its biggest challenges along with a decent marketing push (by us collectively) spreading the word could easily push p2pool to the top and keep Bitcoin strong and trust less for the future.

Just my 0.02 bits.