{
  "episodeId": "SLP690",
  "speakers": {
    "stephan": {
      "name": "Stephan Livera",
      "role": "host",
      "tag": "STEPHAN"
    },
    "p2pool_v2_with_jungly": {
      "name": "P2Pool V2 with Jungly",
      "role": "guest",
      "tag": "P2POOL"
    },
    "guest_2": {
      "name": "Guest 2",
      "role": "guest",
      "tag": "GUEST"
    }
  },
  "segments": [
    {
      "speaker": "stephan",
      "time": "00:10",
      "start": 9.84,
      "text": "Hi everyone, and welcome back to Stephan Livera podcast. Joining me today is Jungly. He is working on P2Pool v2 as well as HydroPool. Now, some people may know Jungly, earlier was working on some BreadPool stuff as well. so Jungly, welcome to the show, and, yeah, thanks for joining me today."
    },
    {
      "speaker": "p2pool_v2_with_jungly",
      "time": "00:28",
      "start": 27.65,
      "text": "Hi, thanks Stefan. It's good to be here. So,"
    },
    {
      "speaker": "stephan",
      "time": "00:31",
      "start": 30.99,
      "text": "Jungly, give us a just a quick overview, what's the kind of the main, you know, focus? Like, why are you, why are you working on this stuff?"
    },
    {
      "speaker": "guest_2",
      "time": "00:40",
      "start": 39.74,
      "text": "that's a great question. Why am I working on this stuff? so when I discovered Bitcoin, it was like-- it took, it took me a while to get my head around, and I kind of was looking, 'cause I have a PhD in distributed systems, and I was kind of motivated to look at what I could bring to the table to-- for Bitcoin, right? And of course, there is stuff that you can do on the core protocol itself, but lo and behold, the mining decentralization seemed like a big, interesting topic to look at. And I'll be On P2Pool were kind of very inspiring and, also, Chris Belcher's work on using Lightning payouts for scaling or kind of rebooting P2Pool. That was how I kind of got into the rabbit hole of how we could, help it or what are the challenges in, in centralized mining and how can we actually fix it?"
    },
    {
      "speaker": "stephan",
      "time": "01:30",
      "start": 89.68,
      "text": "So you see it as we need to help decentralize mining further, right? And so I guess I'll just offer a very quick explanation because again, we're gonna do our best to make this accessible for the non-technical listeners. So we're gonna do our best to explain any jargon, so that people can follow along. So in Bitcoin You know, you can buy mining machines and you can plug them in and you can just mine today, but there's a reason why nowadays most people mine with a pool, and the main reason I would say is because they wanna smooth out the variation, right? That, that variability, right? Because if you just plug in, you know, a solo, you know, mining, you may not get a payout ever, right, in your lifetime. And so that's kind of why people- You know, go together with these pools and point their hash rate towards a pool, and then that pool does payouts for them. But the concern, as I'm sure you can help explain in a better way than I can, is that that today is a bit more centralized. And so do you wanna explain a little bit and elaborate a bit on the earlier iterations of P2Pool, and then what are you trying to do now that's better?"
    },
    {
      "speaker": "guest_2",
      "time": "02:36",
      "start": 156.06,
      "text": "Yeah, absolutely. So P2Pool originally came out, I think, two thousand thirteen or fourteen, I think thirteen, all the way back, and there was a guy called Forrest, and I can't pronounce his second name, Voigt, and, the idea was that instead of a centralized pool, which kind of builds the templates and controls the payouts and does the accounting in a kind of opaque way, how can we make it decentralized, like use the principles of Bitcoin to run a pool, which is like, let's build a share chain on the side, which they call the side chain, or chain, which was essentially weaker Bitcoin blocks, right? Blocks that had enough proof of work to get into the peer-to-peer, peer-to-peer side chain, but weren't strong enough to get into the, the Bitcoin chain itself. It was a linear chain with a block time of thirty seconds, so every thirty seconds there was a block, so much faster than Bitcoin blocks. And this share chain kind of had how much work different miners had done by virtue of just having the blocks that the miners had submitted, and you could look back Back at whatever window you wanted, I think they looked back at three Bitcoin blocks window and looking at how many shares different miners had, they could go, \"Okay, this is the proportion of the payout that you're gonna get paid.\" And the way the payout was happening was depending on, the what the last window was when a new, when new jobs were created, they looked at the last window, figured out what the proportions were, and put the payments directly into Coinbase. Right. So again, just to explain there as well. So"
    },
    {
      "speaker": "stephan",
      "time": "04:05",
      "start": 244.99,
      "text": "in general, when mining, you know, the way it works is mining rewards happen in what's known as a Coinbase, you know, transaction, which is normally the first one in every block. And there's certain rules about it. I think, you know, you can't spend it for a hundred blocks or something like this. Yeah. And what you're, you're referring to there is this idea that in the early days of P2Pool- The miners were getting paid out directly into the Coinbase transaction, whereas today, let's say in most of the pools, pools that exist today, or all of the basically all the large pools that exist today, it's, it's a custodial payout model. So do you wanna just explain a bit about that?"
    },
    {
      "speaker": "guest_2",
      "time": "04:41",
      "start": 280.99,
      "text": "Yeah. So in the custodial payout model, for example, if you look at Antpool, right? So the mining rewards go to one address, which is essentially controlled by the pool operator, so Ant-Antpool in this example, and then later on, depending on the work distribution That they've seen in their local database, they then later pay out people once they've reached a minimum threshold, but that's another detail we can leave that. But they pay out the people from their custodian wallets, so they're not getting paid out directly from the virgin coins, quote unquote, from the Coinbase. Instead, they take those coins and then they have whatever mechanics they use to manage their finances, and then people are paid out after a few, you know, I don't know, know what the exact payout frequency is, but it depends on The minimum threshold that people need to reach. So the-- whereas P2Pool was trying to do, okay, we don't want anybody to custody it, because who's gonna custody it, right? So instead E- all the miners, suppose there were twenty miners, all the twenty miners would have one payout in the Coinbase, so there'll be essentially ten out- twenty outputs in the Coinbase in proportion to the work they have done in the past. And all the other normal rules apply that the Coinbase can't be spent for another hundred blocks or something, which is about a day. So that's what P2Pool was trying to do. And it actually lasted from two thousand thirteen all the way till, I think the last block was two thousand eighteen or seventeen. They, they forked to support SegWit, but then after that, it slowly, it was kind of on a downward spiral. And there's a number of reasons for that."
    },
    {
      "speaker": "stephan",
      "time": "06:14",
      "start": 374.2,
      "text": "Yeah. Okay. And so can you explain a little bit about some of the limitations there and where this concept of P2Pool V2, which is what you're working on, where does that come in?"
    },
    {
      "speaker": "guest_2",
      "time": "06:25",
      "start": 384.75,
      "text": "Yeah, sure. So what happened with P2Pool was there's a- There's a couple of problems and one kind of controversial problem. So I'll go to the two core technical problems, right? One is the Coinbase payouts could-- were eating up into, the block space, right? Suppose you had five hundred miners, if you had five hundred outputs in the Coinbase, you're just eating up space in the, in the Bitcoin block, which you could have, you know, earned some fees from by including other transactions. So this was a interesting problem, and Chris Belcher kind of actually in the same post where he was talking about how to scale P2Pool, he looked at the numbers and in 2017, his, his calculations based on that time's fee, fees rates and that time subsidy were that if you have five hundred or so miners on the pool, it becomes not profitable to kind of, or it doesn't make sense to kind of take more block space to add another fifty miners. So you can imagine with only five hundred miners, the pool can only- Lightning scales so much and therefore the variance would start to go up. So this was the fundamental problem. That is why we need more outputs in the coinbase so that, you know, we can get more miners into the pool so that we can have a higher hash rate and thus lower variance. So that was the problem number one. The other problem was, which is the complexity of the, P2Pool setup itself was, was challenging people, but the biggest problem was that because it was a linear chain And there was one block every thirty seconds, there's only so many s-slots that you could fit into a day, right? So if there were large miners, they would take up all the slots, and the small miners wouldn't be able to get their shares into the chain at all. And what was happening was there was latency games being played, like if people were tightly connected in the, in the P2Pool network, and you weren't tightly connected in that, in that quote-unquote cabal, then you'd basically be, your shares would Propagate slowly, and therefore they would be orphaned out, like other people wouldn't build on your chain, on your chain. Gotcha. And I guess I'll just"
    },
    {
      "speaker": "stephan",
      "time": "08:30",
      "start": 509.51,
      "text": "interject here, this is like a big deal around network propagation, this is like a big deal in mining centralization, and so there's a lot of work being done around this to try to minimize that delay, because the concern, and, you know, whether it's P2Pool or just Bitcoin generally, the concern is, look, if the- Network centralizes into a certain area, right? I guess an analogy might be if you people think about like flash boys or these kinds of examples where these high-frequency traders, they're all trying to centralize to be really close to the exchange, and it, like, it matters, like a few milliseconds is a huge difference for them. It made a huge difference to their profitability. And just like that, in Bitcoin mining, it's a similar thing where, let's say, developers and people looking at this at a protocol level are doing their utmost to make sure the propagation delays are minimal. So that miners can be all around the world and not kind of, imagine the extreme kind of hypothetical of every Bitcoin miner has to all be set up in the one building in order to be competitive, that would be a big problem for us, because then that's a centralization vector, right? Yeah. So then you're explaining how this applies not just at Bitcoin, but even at the P2Pool level, that because of this propagation delay, it is creating a problem in terms of stale blocks or orphan rate. Can you explain a bit there?"
    },
    {
      "speaker": "guest_2",
      "time": "09:46",
      "start": 585.78,
      "text": "Yeah. Yeah. So orphan would be like, so- They had two issues, they, they also had a marketing, branding problem here because one was orphan shares, which people understood, and the other was they used to call them dead on arrival, which was basically the shares arrived so late that we won't even validate them, they're just dead on arrival, right? Basically, they're so late, they're so far behind the, the time. But this, this problem, as you said, also exists in, in Bitcoin, and the big concern is that you can't- The, the, the gains from putting all the world's miners in one building with one mining pool, you know, it'll be difficult to beat that centralization. Thankfully, it's-- it has practical limitations to do that, so we're, we're not seeing that happen yet. but then, because of this, the developers in Bitcoin were concerned about it, rightly, and, this idea of the compact block stuff came along, and I think this is very use directly relevant in P2Pool V2 because this didn't exist in the old- P2Pool, which actually shrinks the, block size from like, say, whatever it is four megabytes to, twenty to thirty kilobytes, right? So there are smaller shares that can be transmitted fast and they can be transmitted quickly. And there are other optimizations we can do at a network layer, which I'm not gonna dig into either here or actually in my first MVP, which is like instead of transmitting using TCP, we can, you know, this is a technical details, we can use, you know, some things like Quic and UDP, which is built on UDP faster to transmit the blocks, propagate the blocks. so these were the kind of two challenges, right? One, the share orphan rate was getting high because the share chain was linear, and two, the coinbase could only include so many miners so that, you know, there was a kind of a cap on the, on the scalability of the pool itself. So these were the two challenges. The third one, then, I mean, it is often said that some hardware manufacturer-- no, this is true, but some hardware manufacturers put a size limit on the coinbase So basically, you could only fit eighteen or twenty, I don't know, how many coin bases could we fit in? And that resulted in an instant death for P2Pool because, suddenly you couldn't even dream of putting hundred or five hundred coin base outputs there, you just were limited to twenty. Now, it seems like that, that has moved on, like the modern machines don't have that anymore, but there are some old, old machines out there which still have this limitation. But however, anyway, we-- this was a problem Because it directly impacted P2Pool and it, if we build a solution, we should be mindful that this isn't a factor, we should kind of not let that happen."
    },
    {
      "speaker": "stephan",
      "time": "12:24",
      "start": 744.1,
      "text": "Yeah. Gotcha. Yeah, okay. And so the other big obvious question people will have is if they're following the mining world, they may have heard of DARTUM or SV2. So DARTUM is the protocol associated with Ocean and SV2 I guess nowadays there's demand pool who are doing, let's say, full SV2, and so these are other ideas of, decentralizing block template creation, but where, how would P2Pool V2 compare with Dartum or SV2?"
    },
    {
      "speaker": "guest_2",
      "time": "12:58",
      "start": 777.85,
      "text": "Yeah, so this is a cool question, and, you know, it's probably the question that most people will have. the, the way I see it is, Datum and SP2 are excellent tools for helping centralized pools, right? What I mean by centralized pools is they do the accounting, right? the accounting isn't transparent unless they open the windows, which very few have in the past. I think only Brains kind of tried to do something in that, in that direction. So accounting is closed, and secondly, the payout is still controlled by- By those centralized pools, right? So just like in the old, in the, all the centralized pools as we talked about, the payment goes to one Coinbase and then they split it out. Now Ocean does something slightly different there, but all the SV2 pools would probably have that. So I think these are great tools to kind of slightly incre-increase the decentralization of, the centralized pools, which is like, okay, at least you can build the templates."
    },
    {
      "speaker": "stephan",
      "time": "13:51",
      "start": 830.7,
      "text": "Yeah. And just for clarity for listeners, what we say, what we mean there when you say build the template, what we Miners can craft and put transactions into a block template for potential inclusion, right? Rather than people just, let's say, pointing their hash rate to a mining pool and just saying, \"Okay, mining pool, mister Antpool or Foundry or whatever, you just decide whatever you want to go in the block,\" whereas the idea here is with Dardaman SV2 a full SV2 support, the individual miner or hasher per se gets to, has some say there. He can choose, \"Oh, this transaction and not that one or whatever.\" but to your point, Jungly, P2Pool V2, the idea is to improve on that even further by not just having the template construction be done at the individual mining level, but also the share accounting and the payout to be non-custodial. That's the-- Yeah. These are the main differences, yeah? Absolutely."
    },
    {
      "speaker": "guest_2",
      "time": "14:46",
      "start": 886.23,
      "text": "Absolutely. Also because, I mean, if- If the, if the payment is controlled by a centralized pool, then they still have a stick with which, with, with which they can police you, right? They can say, \"Oh, can you build your tem-templates as long as X, Y, Z,\" right? I mean, because in SV2 there is a protocol which is the job negotiation protocol where the idea is that if I'm the miner, I build a template, then I say to the pool, \"Hey, this is what I'm gonna do,\" and then they say, \"Okay, you can skip that,\" which is, That you can skip this later on, but the problem still remains that even if I do the work, and later when they-- when I find a block, they go, \"Okay, but we don't like this block, so we're not gonna pay you, right?\" Or whatever, or we find a share, and you say, \"Okay, I'm not gonna pay you for these shares.\" So there is still a control in the centralized, pool operator, right? Which by virtue of being centralized is always a potential attack vector. So we wanted to kind of"
    },
    {
      "speaker": "stephan",
      "time": "15:43",
      "start": 942.71,
      "text": "like a don't be evil versus"
    },
    {
      "speaker": "stephan",
      "time": "15:48",
      "start": 948.03,
      "text": "Like now, to be clear, P2Pool V2 isn't like live and operational yet. Yeah. Yeah, yeah, yeah. So obviously the aim is to sort of further help decentralize, but in terms of what exists today, things like Dardaman SV2 are probably-- Yeah. That's at least, that's what we have today. Yeah,"
    },
    {
      "speaker": "guest_2",
      "time": "16:02",
      "start": 961.62,
      "text": "they're, they're, they're, they're, they're, they're, they're, they're, they're, they're,"
    },
    {
      "speaker": "p2pool_v2_with_jungly",
      "time": "16:07",
      "start": 967.17,
      "text": "they're, they're, they're, they're, they're, they're, they're Okay, go on. Okay, go on. So then the"
    },
    {
      "speaker": "stephan",
      "time": "16:13",
      "start": 972.69,
      "text": "interesting, okay, so can you give us just a sense of, I, I know this is what you're working on, right, with P2Pool V2, can you give us a sense of what would be needed to change here? Like, is this, does this require any kind of Bitcoin soft fork, or is it more just, this is software that miners would run to participate in P2Pool V2?"
    },
    {
      "speaker": "guest_2",
      "time": "16:31",
      "start": 991.4,
      "text": "Yeah. So, I mean, looking back at, I mean, the best way to answer this question is, why are Say that this can scale and won't have the problems that original P2Pool had. I think the good thing is initially I thought that maybe some soft soft soft forks will help, but if you look back, essentially we can scale the linear chain problem by kind of having those uncle blocks that you kind of alluded to in the beginning. And the idea there is that instead of having one slot every thirty seconds, whatever the frequency is, I think we can actually, because of faster internet now, we can actually have a faster frequency and I've run some simulations and that- That direction. But, we can have a faster block time, but let's stick with thirty, but at each thirty-second interval, we just don't have one slot, but essentially if we introduce three uncles, we can have four slots, right? So you basically quadruple The amount of space that is on the chain at every thirty second interval, right? Yeah, but just, just"
    },
    {
      "speaker": "stephan",
      "time": "17:29",
      "start": 1048.73,
      "text": "to be clear, sorry, just to answer the earlier question, no, it's not a soft fork to Bitcoin, and it would be software that individual miners would run. Yeah, yeah, yeah. But it's maybe using some other techniques, to deal with, as we spoke, and we'll get into that, like the share chain and the atomic swaps part of it."
    },
    {
      "speaker": "guest_2",
      "time": "17:45",
      "start": 1065.42,
      "text": "I'm sorry, I'm jumping around then. Yeah, I'm sorry. So no, we don't need"
    },
    {
      "speaker": "stephan",
      "time": "17:54",
      "start": 1074.31,
      "text": "And these kinds of things would it all help? They"
    },
    {
      "speaker": "guest_2",
      "time": "17:56",
      "start": 1075.91,
      "text": "directly help us too, because then we can, use even, even smarter ways to do the payout management."
    },
    {
      "speaker": "stephan",
      "time": "18:02",
      "start": 1081.73,
      "text": "You know, typically it doesn't require a soft fork, but a soft fork would help, right, in terms of these covenant soft forks and things. Okay. And then so we've got these other concepts that we need to dig into, so this share chain and the whole uncle concept and then the atomic swaps thing. So maybe, maybe let's start with the share chain. So you were touching on that, so can you explain, elaborate That's new."
    },
    {
      "speaker": "guest_2",
      "time": "18:25",
      "start": 1104.97,
      "text": "Yeah, yeah, yeah. Sorry, I jumped there because I thought that this is what we're doing. So, share chain is essentially the, the chain of weaker blocks that P2Pool maintains, right? And all the miners who are running P-- are members of P2Pool can run the P2Pool software locally on their mining site, or like in the original P2Pool, what happened was there were some remote nodes that were serving a bunch of mining sites. But let's leave that aside. So all the P2Pool nodes maintain A, a blockchain, a side chain, a share chain, which is of much weaker Bitcoin blocks. Now, in P2Pool original, it was just a linear chain, and we are trying to scale that up using the uncle block mechanism, which I kind of alluded earlier. Gotcha."
    },
    {
      "speaker": "stephan",
      "time": "19:05",
      "start": 1144.68,
      "text": "And I guess maybe for people who aren't familiar, like, what is an uncle block? What is this concept? As I, I have a very loose understanding of it, is that actually kind of came, kind of from like shitcoin land and like Ethereum and stuff like that, where basically the idea"
    },
    {
      "speaker": "stephan",
      "time": "19:21",
      "start": 1161.13,
      "text": "And the idea was they wanted to kind of give some incentive for the, like orphan or stale blocks, something like this, is that, that's kind of my very loose understanding. Can you explain a bit further?"
    },
    {
      "speaker": "guest_2",
      "time": "19:35",
      "start": 1174.78,
      "text": "So essentially, what they did was to reduce the number of orphans, they would, they would say, okay, up to three orphans we allow in the chain and we call them uncle blocks, right? Which is essentially your parent block's siblings, right? So your-- and then you, when you mine a new block, you point to them. Okay? You basically not just only point, point to your parent block, but also up to three other uncle blocks."
    },
    {
      "speaker": "stephan",
      "time": "20:01",
      "start": 1200.65,
      "text": "I see. Okay. And then this is that what you were saying, it's not just a linear chain now, it's like, it's kind of, that's where you were talking about this DAG, this, what's it called, decentralized asynchronous directed, directed, directed asynchronous graph. Oh, sorry, directed asynchronous graph. So there's no cycles"
    },
    {
      "speaker": "guest_2",
      "time": "20:15",
      "start": 1214.87,
      "text": "in the graph, but and it's directed, like all the, all the edges have, have direction. Okay. What that does is it gives us the opportunity to, to scale out the, the, the chain itself. Now, the good thing with Uncle Blocks is, yes, it came from Shitcoin Land, but because it came from a Shitcoin, which was kind of popular, a lot of academics and a lot of people studied it. So it's been studied to death, and we kind of know what are the weaknesses of the, of the approach, what are the strengths of the approach, and we can kind of wisely choose the, the, the parameters that we want. Right? Thanks to all the research gone into that. interestingly, Ethereum essentially has topped up with Uncle Block since this went to proof of stake. So Right. Yeah, yeah, yeah."
    },
    {
      "speaker": "stephan",
      "time": "21:02",
      "start": 1262.36,
      "text": "And I mean, hey, look, it's the research was done. Yeah. If, if there's a benefit to Bitcoin that comes from it, great, we take it"
    },
    {
      "speaker": "guest_2",
      "time": "21:08",
      "start": 1268.47,
      "text": "for sure, for sure, absolutely, that's the attitude we need to have. So, this is what we need to do. And, and in Ethereum, there was another scheme which kind of ha-- which, which had The transactions in the uncle blocks were also taken into account,"
    },
    {
      "speaker": "stephan",
      "time": "21:27",
      "start": 1287.02,
      "text": "right? Alright, so it's even more complicated, okay? Yeah, yeah."
    },
    {
      "speaker": "guest_2",
      "time": "21:30",
      "start": 1290.2,
      "text": "So what we want to do is kind of leave that complication aside. I mean, I'm getting into the weeds here, but we kind of ignore the transactions in, in the uncle blocks and just take it for the proof of work accounting for the PPLNS solution, right? As to how much work people have done, and the only transactions that go into are the, are the main chain ones, right? So that kind of simplifies even further. Further, the, the challenges in kind of deploying uncle blocks to this solution. So that's where kind of the transition from old P2Pool to P2Pool V2 is on, on the shared chain side of things."
    },
    {
      "speaker": "stephan",
      "time": "22:06",
      "start": 1325.86,
      "text": "This episode is brought to you by CoinKite, the makers of my favorite Bitcoin hardware wallet, the Coldcard Q. Now, some people think self-custody is too hard, but it's really about taking responsibility for your Bitcoin wealth and understanding that self-custody gives you a true feeling of liberty. The Coldcard Q has a full keyboard and big screen. It's got Security elements and a true air gap, allowing you to go fully air-gapped using QR codes from seed generation to transaction signing. You can power the device using three triple-A batteries, so you don't even have to plug it into the wall for power. You can easily use it with Sparrow Wallet for PC or Nunchok on mobile, and you can dial it into the right level of security and complexity that you choose. If you want a simple setup, just use twelve words and single signature. If you want passphrases, easy. If you want to add multisig or co-signing features, you"
    },
    {
      "speaker": "stephan",
      "time": "22:52",
      "start": 1372.42,
      "text": "Ten percent off on your cold card or other devices and level up your self custody today. Okay. And so in simple terms, it's like saying that, like, from referencing some of your slides, you're saying here, uncles are paid for work done. Can you explain a little bit about that, like, this concept and how we use this in P2Pool V2 or how you're planning to, yeah? Yeah. So, so"
    },
    {
      "speaker": "guest_2",
      "time": "23:15",
      "start": 1394.51,
      "text": "the problem was in the original P2Pool, all the orphan blocks didn't get any, get any pay payouts, right? And in fact, I The motivation to do this also comes from Monero's P2Pool. So Monero has a P2Pool out there which is kind of successful, and they have like three, three instances of it, depending on the hash rate. They call it P2Pool, P2Pool Mini, P2Pool Nano, something like that. but they've shown that with the uncle blocks, they, they, they were able to scale the chain out. So your question was how, and what does it mean by-- Uncles are being paid for work done, yeah. So essentially, if you Block, right? You get the payouts for your work as well, right? In the or-- in the original P2Pool design, orphan blocks were just completely abandoned. So if you were late by a few milliseconds to propagate, you wouldn't get any payouts. Then too bad, so sad, you know? Yeah, yeah, yeah. And, and miners correctly were like, okay, why am I not being taken into account and this and that the other. So what we want to do is any block that makes it as an uncle block also get the payout appropriate to the proof of work in that block, Okay, so it's like a proportional"
    },
    {
      "speaker": "stephan",
      "time": "24:24",
      "start": 1464.12,
      "text": "sort of share thing or what, how does that work?"
    },
    {
      "speaker": "guest_2",
      "time": "24:27",
      "start": 1467.04,
      "text": "So there is something you can play with as to, so the payout is, pay per last n shares, okay? PPLNS, right? So what we do is, say n comes out to be a million blocks, you look at a million blocks, chain, in, in the past, including all the uncles, so you count them like that way, and then you kind of see which miner has done how much work. Suppose there's one miner Who has five hundred thousand blocks in there, he'll get fifty percent of the payout, okay? If there's someone who has like only, say, ten thousand, whatever, it's like one percent of the, of the payout there. So it's directly proportional. I'm not trying to do anything fancy there. What I'm trying to do is leave accounting as a separate crate, so this is all built in Rust. So we'll leave it as a separate, as a crate with a nice interface so that if people want to experiment with different payout mechanisms, they can, right? for Pay our last ten shares and, you know, go on with it."
    },
    {
      "speaker": "stephan",
      "time": "25:26",
      "start": 1525.94,
      "text": "I see. And so just so I understand what's happening here, the idea with P2Pool V2 is all the miners who wanna participate in this P2Pool V2, they will run this software and by doing this They are participating in the share accounting themselves, and the way they do this is through this share chain, which, as you said, let's say gives some shares or pay-- does some payouts for these uncles, which are actually orphans, which didn't end up counting in the end, but they're kind of being paid to kind of incentivize them to participate in P2Pool V2, and the idea is it kind of all evens out in the long run anyway if you stay participating, if you keep,"
    },
    {
      "speaker": "guest_2",
      "time": "26:03",
      "start": 1563.09,
      "text": "if you keep mining, yeah. I mean, there is slight bonus we need to give Because otherwise there is an incentive to not include the uncle blocks. I mean, this is kind of slight details there, but, for every uncle block you get like a one percent boost or something just because you are encouraged to include uncle blocks. Otherwise, I would say I don't wanna give the other miner just to get more payout, which again comes back"
    },
    {
      "speaker": "stephan",
      "time": "26:25",
      "start": 1584.59,
      "text": "to what we were saying, these issues around network propagation and it's kind of like a game theory sort of thing of like, we wanna encourage participation. I guess that's kind of the idea, right?"
    },
    {
      "speaker": "guest_2",
      "time": "26:34",
      "start": 1593.71,
      "text": "Yeah. But the, but the parameters here And the, the payout, boost to give to people who include, to blocks that include the uncle blocks or defer back to the uncle blocks, that has all been well studied. It's been well published, there's been some simulations, there's been mathematical models, so we just take the most sensible approach there and stick it in, right? That's what we're doing at the moment. So we don't, we're not trying to reinvent the wheel here. We're just taking what has happened in the space over the last ten years and take the best practices and put them in there."
    },
    {
      "speaker": "stephan",
      "time": "27:06",
      "start": 1625.62,
      "text": "I Yeah. Okay. and so then, I mean, look, at the end of the day, that-- this is one of the big benefits, right? As we were saying, a lot of the other pool models, or basically all, many of them, almost all of them are centralized in some way, whereas this is actually a decentralized pool model. So that's the, probably the big win, that's the big zero to one thing here that you can have a decentralized pool in a way that allows shares from other people, not just yourself, right? Because theoretically, okay, yeah, Miner with, like, you know, you could maybe be a solo miner. In that sense, yeah, you're kind of choosing your own templates and everything, but in this sense, we're doing, it's a decentralized pool where people are chipping in. So I guess, probably the obvious question people will have is, how far does it go? Like, how many people could participate in this share chain? Yeah. does it take it from like twenty up to like a hundred or a thousand or like, what's the num- like rough number?"
    },
    {
      "speaker": "guest_2",
      "time": "28:01",
      "start": 1681.07,
      "text": "Yeah. So one cap was"
    },
    {
      "speaker": "guest_2",
      "time": "28:07",
      "start": 1686.66,
      "text": "The second cap is of course the payout mechanism, which we can get to later, how we scale that up. So let's assume there is no cap because of that. Then the cap comes down to how much data we want people to be able to download and process, right, in a sensible way so that they're not lagging too far behind. So I kind of worked through numbers of saying, okay, if we have-- I was first aiming for a ten thousand node P2Pool, right? So at least ten thousand P2Pool nodes, and remember each node is probably serving a hundred machines or a Whatever, right? So or twenty machines or five machines, depending on the scale of the miner. But we want at least, so I worked these numbers out, and basically my goal is if we can have So very, not being very humble, but say if you want one percent hash rate, right? That's, that's like this much of the-- Is that"
    },
    {
      "speaker": "stephan",
      "time": "28:56",
      "start": 1736.41,
      "text": "like ten exa hash a day or something? I don't know."
    },
    {
      "speaker": "guest_2",
      "time": "28:59",
      "start": 1738.95,
      "text": "It's a bit, it's a bit, it's, it's more than a zeta, isn't it? Yeah."
    },
    {
      "speaker": "stephan",
      "time": "29:03",
      "start": 1743.14,
      "text": "Yeah. Yeah, sorry, but one percent would be, yeah. Yeah, yeah. But, but, but gone."
    },
    {
      "speaker": "guest_2",
      "time": "29:07",
      "start": 1746.94,
      "text": "Yeah. So basically, let's say each m-- each node is, is handling a thousand s-nineteens or s-twenty-ones or whatever, right? Then to get to one, one percent of the hash rate, if we have a thousand node P2Pool, network, we are able to get there. So this is the kind of, I'm kind of working from numbers of, okay, what is sufficient to get some blocks at a So that miners are happy to join this pool. And then it comes down, okay, if we have a thousand network pool, we can actually make it work. We can, one thing, one detail that we, we, one advantage we have from P2Pool original is that we have the compact block technology available now, right? So which we are, which we are implementing, which is the idea that the P2Pool share, PTP, P2Pool shares the share chain is, is kind of propagated using compact blocks. And that basically helps us, We figured out that if we assume a three hundred millisecond latency, which is kind of the larger end of the latency, and we ran some simulations that we have a thousand, pool network and we-- a thousand node network, and we are generating shares at ten second interval, right, instead of thirty second interval, so it's a much faster share rate than original P2Pool. So basically we have more capacity in the chain. Then the number of uncle blocks were one in ten thousand, right? A number of orphans. So we- So we have very low orphan rate, which is what we are looking for. So what we want to get to is, but the, the TLDR is to get a one percent hash rate, a thousand pool network with an average size of thousand machines, we can make it happen, right? If we have an average miner size of ten, then we need much larger P2Pool network, right? To get one percent"
    },
    {
      "speaker": "stephan",
      "time": "30:56",
      "start": 1856.26,
      "text": "hash rate. But I guess just considering the share chain side of it, not the Coinbase output limit, Atomic Swap side of this Just, just for now, just considering the share chain side of it, what is the rough like upper limit for now that you see? Is it like ten thousand? Is that the upper limit of how many? Is everyone?"
    },
    {
      "speaker": "guest_2",
      "time": "31:14",
      "start": 1873.81,
      "text": "How many P2Pool node instances is what you're talking about, right? Yes. Yeah. Is that, is that the"
    },
    {
      "speaker": "stephan",
      "time": "31:17",
      "start": 1877.14,
      "text": "number, like roughly?"
    },
    {
      "speaker": "guest_2",
      "time": "31:19",
      "start": 1878.68,
      "text": "Well, I mean, thousand is completely doable, that I'm pretty confident of, but I think ten thousand would require a bit more effort from us to figure out how we can make that work given the hardware constraints, because we don't want people to require, a server, right? Okay. Gotcha. A machine of like,"
    },
    {
      "speaker": "stephan",
      "time": "31:36",
      "start": 1896.05,
      "text": "so in that ballpark, let's say one thousand to ten thousand is kind of, that People could participate in P2Pool V2. That's, that's the number, roughly. Yeah, yeah. From a share chain perspective only. From the share chain perspective. Yeah. This"
    },
    {
      "speaker": "guest_2",
      "time": "31:50",
      "start": 1909.8,
      "text": "is the kind of, that's the kind of number we are targeting for at the moment, right? I mean, there are other optimizations possible, but let's not go into that. This is the kind of more humble numbers that we're going for."
    },
    {
      "speaker": "guest_2",
      "time": "32:03",
      "start": 1923.47,
      "text": "Yeah."
    },
    {
      "speaker": "stephan",
      "time": "32:04",
      "start": 1924.41,
      "text": "Okay. Alright. Well, I think that's-- a-and I guess the other question is, can there be multiple instances of P2Pool V2? Right? Could there be like,"
    },
    {
      "speaker": "guest_2",
      "time": "32:13",
      "start": 1932.58,
      "text": "yeah?"
    },
    {
      "speaker": "stephan",
      "time": "32:14",
      "start": 1933.78,
      "text": "You know, Jungly's P2Pool V2 and Stephan's P2Pool V2, and they could each have a thousand different miners on them as an example. Exactly. In fact, that's"
    },
    {
      "speaker": "guest_2",
      "time": "32:22",
      "start": 1941.93,
      "text": "what I-- I mean, this is where I think, some other efforts in the space are differ from my approach, which is like in the original P2Pool as well, there was more than one instance, right? There were some private pool instances that we didn't know about. if you look at Monero's solution, they basically have a P2Pool for larger miners and a An even smaller P2Pool for even smaller miners. So nothing stops you from having multiple P2Pool instances. In fact, I think you could, you could, you could think of it like there's Bitcoin and there's Bitcoin Cash, right? There's P2Pool and there's other P2Pool networks. And in fact, my motivation also comes from I, I, I was on some Discords hanging out and people would come along and say, \"Look, I have a bunch of friends, we're like five people, and we'd like to run a pool together, right? Can we use That doesn't exist any solution out there to do it, right? So if you-- And there aren't people, except for now, I know there's"
    },
    {
      "speaker": "stephan",
      "time": "33:19",
      "start": 1998.64,
      "text": "an idea, I did an episode with, Evan about hash pools, but that's kind of-- That's an eCash based, model, which is not, arguably not as decentralized as this."
    },
    {
      "speaker": "guest_2",
      "time": "33:28",
      "start": 2007.87,
      "text": "Yeah. I mean, this one, you could use P2Pool, but also, I mean, circling to a little bit to, we're shipping part of P2Pool as HydroPool, which is like a standalone P"
    },
    {
      "speaker": "guest_2",
      "time": "33:41",
      "start": 2021.24,
      "text": "mining pool software, right? So you can fire it up, right? And the-- and all your mates could connect to it, and off you go, and you get PPLNS payouts. simple PPLNS payouts, no rocket science involved in it, no, none of those, eCash tokens or any complication things like that, no Lightning payouts, just simple Coinbase payouts for a bunch of lads who want to kind of share their resources together to mine together without paying two, three percent fees to any other pool. You see what I mean?"
    },
    {
      "speaker": "stephan",
      "time": "34:09",
      "start": 2048.53,
      "text": "Yeah. Okay. And so So I guess the other thing is if you-- okay, so just, just keeping it simple for now, in, let's say there's only one P2Pool V2 instance out there, let's say you're hosting it or someone, you know, someone takes it on to kind of- Host it, I guess. But no"
    },
    {
      "speaker": "guest_2",
      "time": "34:24",
      "start": 2063.68,
      "text": "one's hosting it, right? Everybody's hosting it. Because we're all kind of, yeah, talking to each other. It's like who hosts Bitcoin? Yeah. Yeah."
    },
    {
      "speaker": "stephan",
      "time": "34:28",
      "start": 2068.49,
      "text": "Yeah. Yeah. I mean, I, I agree. I mean, that's a good point. I, I maybe my mental model is a bit off there. but my point is more like, how would you-- Okay, so in that example where there are two or three instances, how would you choose which one you connect to? Like, I guess that's coming back to I think it comes down to- Would you need a different way to differentiate for them to kind of know who, who is on what network, this kind of thing?"
    },
    {
      "speaker": "guest_2",
      "time": "34:54",
      "start": 2094.11,
      "text": "I think the, the, the, the most important thing there would be to know what your hash rate is and what is the hash rate, hash rate of other people on the network. So suppose you, there's a P2Pool with like people with one exa hash, and you're going there with like your, you know- Two terahash or whatever machines, you shouldn't join there because you probably won't get enough shares to get pay, payouts, right? So there's probably another pay, P2Pool instance out there which is for two to ten terahash machines, right? Whatever, right? On people with like a small set, so you can see like"
    },
    {
      "speaker": "stephan",
      "time": "35:26",
      "start": 2126.35,
      "text": "segregating out by kind of Weight class, let's say. You're in the heavyweight class, you're the featherweight or whatever, you know, flyweight or whatever. I like that naming"
    },
    {
      "speaker": "guest_2",
      "time": "35:36",
      "start": 2136.11,
      "text": "terminology. I might actually steal that. Heavyweight versus featherweight."
    },
    {
      "speaker": "stephan",
      "time": "35:42",
      "start": 2142.02,
      "text": "Yeah. okay, okay, cool. So I mean, I guess we've spoken that that's kind of the share chain side of things. Let's now talk about the payout side of things. So as I understand, you've got this model of atomic swaps for payouts, and the idea is that you might do Lightning and swapping in and out, to, you know, so coming back to what we were saying, there were two main obstacles. One was the Coinbase output limit, and then the other was the orphan rate. So the, I guess the share chain side of it is like the Coinbase output limit. Can you explain a bit about this atomic swaps concept and how that works?"
    },
    {
      "speaker": "guest_2",
      "time": "36:13",
      "start": 2173.01,
      "text": "Yeah, yeah. So the MVP that we're gonna ship is simply paying out directly from the Coinbase, so that'll be simple and, and easy, right? But one thing that we're doing is also, which is different from the original P2Pool, is to have full transaction support."
    },
    {
      "speaker": "p2pool_v2_with_jungly",
      "time": "36:27",
      "start": 2187.42,
      "text": "Right? So"
    },
    {
      "speaker": "guest_2",
      "time": "36:28",
      "start": 2188.49,
      "text": "UTXO based script based transactions. And we're able to do all this because Bitcoin's, ecosystem has come a long way since, P2Pool existed, right? You use Rust Bitcoin and you get a lot of stuff out of the box, right? You get-- And so I love these projects that have been going around in Bitcoin space. They really give you the tools to build stuff fast. so we use Rust Bitcoin to kind of- Support transaction system on the peer-to-peer pool, chain, share chain, so that now, so there was a Coinbase output on the Bitcoin block, but the Bitcoin block, imagine, is being wrapped around By the P2Pool block itself, right? And that P2Pool block has a Coinbase output, which is basically identifying that this block was mined by, say, Jungly, and therefore it has an output paying Jungly. Okay? So there's a simple UTXO pay to public key hash output there. So everybody will have their own P to public key hash output in their block that they mine, right? In their P2P, P2Pool block that they mine. So now, what if we were able to transact between these, right? So what we could say is we limit the number of outputs that go into the Coinbase because we want, we don't want to kind of eat too much block space. Consume the whole block based out of, you know, Coinbase inputs and outputs. Or be vulnerable to some hardware manufacturers going only one allowed, right? So we basically, Have, say, a limit of twenty outputs there. So the top twenty miners, which is like the to-- the, in the, in the, in the payout mechanism, we figure out these are the top twenty guys, and they get paid out. Indirectly in the Coinbase. Now the other guys are still sitting around with their UTXOs on the P2Pool shared chain, right? And they're like, \"Okay, I have some work here, I have proof here, it's in the shared chains, and it is a spendable transaction, what can we do with this?\" So, in fact, BlueMat came up with this idea, and it took me a while to figure this out, and it came to him instinctively, and it took me like a whole night of chatting with him to figure out what he was talking about. The Which is that if I have an output on the share chain, I can just do an atomic swap with someone else on, on the Bitcoin chain, right? So the large miner has some Bitcoin sitting somewhere on the Bitcoin chain or a UTXO on the Bitcoin chain, and I have a UTXO on the P2Pool share chain. So we do an atomic swap, either on chain or off chain, which basically says, \"This output I'm gonna spend and it's gonna belong to you,\" so it's gonna say, \"You're one of the bigger miners, this is now...\" I spend it to Stephan, so now Stephan has that UTXO, and in, and in return, I get an appropriate amount of Bitcoin UTXO, right? And we do a simple atomic swap based on the atomic swap systems that exist out there. And the beauty of it all is, we don't even need to do it on chain, we can directly do it on Lightning. Often. And this is the part, yeah, often. This is the part kind of I struggle with, and I think, talking to people working in the Lightning space, this is kind of very sensible, it's kind of doable. In fact, we got, a summer Bitcoin guy who, who really did a lot of effort, and there's a PR waiting for me to merge, which actually does this stuff. So,"
    },
    {
      "speaker": "stephan",
      "time": "39:50",
      "start": 2390.2,
      "text": "gotcha. I guess I People is like this idea of either both sides of this trade go through or none of it goes through. And in Bitcoin and Lightning ecosystem, there are people using some of these atomic swaps or even like, I think BOLTs dot exchange and some of these other, like the way they set, they structure these up is so that, you know, one side has to, maybe he, he has to do like a hash of a pre-image and then as, in, in order to unlock on the other side, he needs the pre-image to that hash, which is the, the thing that came before To be able to unlock on the other side. And so that's how they sort of make it so that either both sides of the trade go through or none of it. And that's, that's this concept of at-atomicity. and so that's, I guess, interesting concept that can be leveraged here, with like lightning swaps and things like this."
    },
    {
      "speaker": "guest_2",
      "time": "40:41",
      "start": 2441.04,
      "text": "Yeah. In fact, I've been told, I still haven't reached out to BOLZ people, but I've been told instead of building it, we could just use BOLZ. And I"
    },
    {
      "speaker": "guest_2",
      "time": "40:53",
      "start": 2452.84,
      "text": "Time, we need to figure out what miners think about pools going through the pools, exchange mechanism. So, I mean, this is becoming an industry standard like the atomic swap, off-genomic swap in Bitcoin, which is absolutely amazing to see, right? People just, are accepting it so easily now."
    },
    {
      "speaker": "stephan",
      "time": "41:10",
      "start": 2470.46,
      "text": "Yeah. And I mean, maybe there's, I don't know, this is beyond, you know, above my pay grade, but maybe there are kind of more fancy, maybe you come out with like an MVP, but there are more fancy things that people could have, like an ARC Top thing or Lightning, I don't know, some kind of swap into one of the, or Spark, I don't know, one of these things, they could swap into one of those and just kind of have a wallet that gets these and then- They can batch it up that way, and then when they wanna go on-chain on their side, then they can exit out on-chain or stay inside of the ecosystem of Ark, Spark, Lightning, or eCash or whatever."
    },
    {
      "speaker": "guest_2",
      "time": "41:43",
      "start": 2503.25,
      "text": "Yeah, yeah. I mean, we're going with Lightning because it seems to be the more stable ecosystem, but, I have had conversations with people from Ark, and it's totally doable there too. But as you said, we just do an MVP, and I'm sure some people will take it and build it for Ark or build it for, as all the other things"
    },
    {
      "speaker": "guest_2",
      "time": "42:03",
      "start": 2523.11,
      "text": "You can't keep pace with it. So once we have the infra in place, once we show that it's possible and there is a desire for people to adopt it, I'm pretty sure other solutions will come along for the layer two swaps."
    },
    {
      "speaker": "stephan",
      "time": "42:17",
      "start": 2536.89,
      "text": "Okay. So just summarizing a little bit on the atomic swaps component of this, the idea is that the miners control their UTXOs on the P2Pool V2 share chain. Not like, 'cause we're, we're dealing in the P2P V2, and then there's no, and then they can use this swap to swap out into Lightning, as an example. Yeah. and the point is Now it's a non-custodial mining pool, which is a big difference from mining pools that exist today. That's the big, that's the big kind of takeaway, I guess. obviously these are- Let's say optimistic or, or very, let's say ambitious visions, but certainly it's a cool idea, and I think it's well worth people kind of exploring and seeing, you know, can this really be done? so, can you maybe explain for us like where are you at so far with P2Pool V2, and just give us people an update there?"
    },
    {
      "speaker": "guest_2",
      "time": "43:14",
      "start": 2593.96,
      "text": "Yeah. So in the first iteration, I was trying to build on top of CKPool, as I mentioned earlier, right? however, we ran into issues, and it was very difficult Extend CKPool, that's what we felt, just because it's in C, it's old school, and I mean, it does its job, it's an amazing, solid piece of software, and it doesn't have too much test coverage, which I'm kind of really used to. Where I make a change to a software, I'm like, okay, it doesn't work, I don't know until I actually take it to production. I need someone else's code, so it's difficult to extend. So what we ended up doing is we had to build our own Stratum server, right?"
    },
    {
      "speaker": "guest_2",
      "time": "43:54",
      "start": 2634.15,
      "text": "Place, which basically takes the shares from the starting server and exchanges, sends the shares over peer-to-peer network to other nodes, right? And if we've also done the IBD, which is like the, the initial sync of the chain, so a new node joins, and because we heavily prune in P2Pool, you don't need to maintain the entire history because old shares don't matter, so we're able to download the chain, so we're able to sync the chain. We also have Have, the share validation done, the proof of work of the share validation done, and the difficulty adjustment done. So there's a fair few components done, however The transaction engine remains, right? Which we know we can incorporate from Rasp Bitcoin. we are using Rasp Bitcoin anyway to validate the blocks and to validate the shares, so it's all happening. It's just that we haven't added the transaction support on the share chain. So I realistically think we're not that far. I'm kind of o-hoping for December-January MVP out there, like with, without the atomic swaps, and that is a purp-- on purpose we're making that decision that we go launch with the Limit of like twenty Coinbase outputs, so at least twenty people can come along and test, and we go for a test net release come Christmas or New, or, or New Year's. That is the personal motivation. excellent. But let's see. The software is always like this."
    },
    {
      "speaker": "stephan",
      "time": "45:23",
      "start": 2722.77,
      "text": "Yeah. And what are you looking for? Like, do you want, people to test? Do you want-- Are you looking for other developers, reviewers? Like, what's the, you know, what are you looking for?"
    },
    {
      "speaker": "guest_2",
      "time": "45:31",
      "start": 2730.81,
      "text": "So we are al-- we already have a test server up, for the HydroPool component, which is like the solo instance which tests the Stratum and the PPLNS payouts. So it's on test.hydropool.org, and people can point their machines, and some people have already been doing it"
    },
    {
      "speaker": "guest_2",
      "time": "45:50",
      "start": 2749.54,
      "text": "Of hardware and this and that the other. I was hoping that by the time of this podcast, I have the PPLNS up and we get to announce it together, but the PPLNS stuff is, is gonna take another couple of weeks, I think, to get up on the so-- on the, on the test server. so this is just the centralized single node kind of test, right? But what I'm looking for essentially is, you know, as Steve Ballmer famously said, \"Developers, developers, developers, developers.\" Have you seen that,"
    },
    {
      "speaker": "p2pool_v2_with_jungly",
      "time": "46:21",
      "start": 2780.92,
      "text": "right? Yeah, there's like a famous"
    },
    {
      "speaker": "stephan",
      "time": "46:22",
      "start": 2782.17,
      "text": "meme of like, like they're kind of up on stage and they're like, \"Yeah,"
    },
    {
      "speaker": "p2pool_v2_with_jungly",
      "time": "46:25",
      "start": 2785.15,
      "text": "developers, developers, developers,\""
    },
    {
      "speaker": "stephan",
      "time": "46:27",
      "start": 2786.55,
      "text": "and they're kind of walking around. I think it was like the mid or late nineties or something. I can't remember when, but yeah. Yeah, yeah, yeah, yeah, yeah, yeah, we were all young then."
    },
    {
      "speaker": "guest_2",
      "time": "46:35",
      "start": 2795.13,
      "text": "So, I mean, we have a, there was a couple of really awesome students who came through Summer of Bitcoin. I'm trying to get them grants so"
    },
    {
      "speaker": "guest_2",
      "time": "46:50",
      "start": 2809.5,
      "text": "They've done an excellent job and it's a pity to lose, you know, people who've underst-understood the problem, understood Bitcoin, to let them go do some Web three point zero stuff. It's like, no, don't go there. So this is it. At the moment, I'm funded with OpenSats and two fifty six Foundation, so I have some runway. But I don't want to be developing alone, right? it was great over summer when we had these two, three guys. it'll be nice to get some more people looking at the code and testing, you know? And we're gonna reach out as, as the next stage of PPLN testing is out there, we're gonna reach out through, through Twitter and all the chat channels to kind of find."
    },
    {
      "speaker": "stephan",
      "time": "47:29",
      "start": 2849.27,
      "text": "And I guess In a loose sense, now, as, as you said, there's not one person hosting this, that, that's the point, it's P2P pooling V2, but in terms of Like if you're thinking about normal pools, I guess the kind of rule of thumb is sort of once you get to like one or two percent hash rate of the network, now you're kind of quote-unquote viable because now you're gonna get a payout like once a day-ish on average. Yeah, yeah. so I guess that's kind of- Zooming out, that's kind of the threshold you would like to hit, right? Like if you can get above that threshold, that's where it starts to be more viable, yeah?"
    },
    {
      "speaker": "guest_2",
      "time": "48:04",
      "start": 2884.39,
      "text": "I, I'll be more humble, right? I basically would like to be able to-- I mean, the problem with current testnet is that it's a bit busted. If the current testnet was around, it would be awesome to kind of at, at least test it a bit more. so we'll have to jump that. Ideally, testnet gets fixed and we are able to kind of prove for Mode of hash rate on, on testnet. I mean, I know that people who have put in a lot of money into mining don't want to point the hash rate to an untested pool, so we need to kind of prove along each step that we go that this is working, this is working. That's why we already set up the HydroPool testing server kit. Look, Stratum works. Look, PPLNS works, right? So we keep, we need to keep getting that proof Proof of work, proof of working, proof that it is working, out there continuously, right? So that there is trust on, on that software, basically. Just because, I mean, nobody, no single person runs it. The only thing you trust is software at that point, so the software better be, be working. Another thing to cover myself there is basically I'm, I'm a bit of a maniac for testing, and I'm trying to get the test coverage of the code base up, above ninety percent, which we are still able to do. sometimes you write a piece of code and you spend a day Writing tests for it, like the LLMs help, but still takes time. so it's, it's at least good test coverage should give more confidence to that, okay, look, this thing works as, as it claims."
    },
    {
      "speaker": "stephan",
      "time": "49:38",
      "start": 2977.72,
      "text": "Okay. Well, I think those are the key questions I had. so, yeah, I think, I think it's an interesting project, interesting idea to, help decentralize Bitcoin mining, as we spoke about. There were some of those early hurdles with P2Pool, but now the-- I guess the promise, the vision, the benefits would be non-custodial payouts and this idea of share accounting done in a decentralized way, and of course, block template creation, meaning individual miners can pick What transactions go into their block template, which is also a, a decentralizing thing, instead of there being, let's say centralized pool operators that nation state government regulators, bureaucrats could come to and say, \"Hey, don't allow this into the chain,\" this kind of thing. So, that's the promise. Jungly, where can people find you online if they wanna learn more or support you somehow?"
    },
    {
      "speaker": "guest_2",
      "time": "50:31",
      "start": 3031.3,
      "text": "Okay, so Jungly on Twitter, it is easy, but on GitHub, if you look for P2Pool V2, that is where I'm kind of writing most of the stuff. The design decisions are on the wiki, the challenges are also all on the wiki, so all on the repo of P2Pool V2 on GitHub."
    },
    {
      "speaker": "stephan",
      "time": "50:46",
      "start": 3045.9,
      "text": "Fantastic. Well, links will be in the show notes. Jungly, thanks for joining me."
    },
    {
      "speaker": "guest_2",
      "time": "50:50",
      "start": 3050.25,
      "text": "Thanks, Stephan. Thanks a million."
    }
  ]
}
