I could add a comparison to p2pool if you want, but bear in mind this is a blog post designed to introduce a complex topic to a wide audience, not a literature review of all possible designs and prior art.

In particular, while P2Pool and DCFMP share a goal (decentralize mining), the approaches to them bear very little similarity as DCFMP is focused on making the pooling a pure client side validatable function of the existing chain, and not create a major risk to mining centralization with a reliance on a new network running on top of Bitcoin. DCFMP also lacks the core value prop of P2Pool which is higher resolution on share assignment.

Further, DCFMP's core innovations are Payment Pool and non interactive channel based, something the P2Pool does not have, but could adopt, in theory, to solve their payout problems[^note]. I still believe that making a unified layer of networked software all miners are running on top of Bitcoin in the loop of mining is a major risk and architecturally bad idea, hence my advocacy for doing such designs as micro pools inside a DCFMP; It would be possible to make the "micropools" run on a P2Pool like software, the DCFMP allows for smaller P2Pools to aggregate their hashrate trustlessly with the main DCFMP shares.



[^note]: for what it's worth, I was not familiar with p2pool very much before I came up with DCFMP. The lineage of my conceptual work was determinism, payment pools, and then realizing they could do something for mining.
--
@JeremyRubin


On Wed, Dec 15, 2021 at 1:11 PM <yanmaani@cock.li> wrote:
How does this differ from p2pool?

If you've just re-invented p2pool, shouldn't you credit their prior art?

Monero is doing their implementation of p2pool. They have viable solo
mining, as far as I understand. The basic idea is you have several
P2pools. If you have a block time of 10 minutes, p2pool has 20% of
hashrate, and there's 100 p2pool chains, each chain gets 0.2% of net
hash. If you're OK with 20s block times (orphans aren't really a big
problem), you need (20/600) * (0.02/100) = 0.00067% of network hash to
get a payout every 10m.