 are two deep dives, starting with Problab, Dennis. Hi everyone, this is Dennis from Problab. At Problab, we want to measure, or we measure the performance of web three protocols and benchmark those protocols against target milestones and also propose improvements. And for this particular measurement campaign, we take a look at the net hole-punching success rate as Martin already teased earlier in this presentation. You may know that NetReverse is a quintessential problem in peer-to-peer networks. And currently we rely on relay peers that act as a proxy for all our traffic. And since Kubo 0.13, actually all pieces are shipped and enabled by default for an alternative technique that allows two peers to be behind nets to connect to each other. And this is hole-punching by the DCUTR protocol, which is also linked there. DCUTR stands for direct connection upgrade through relay. And I will go into the details in a bit. And in this measurement project, we want to find out the success rate of this protocol, so how often our peers are actually able to connect to each other and maybe also uncover potential improvements to this technique. So just briefly about this DCUTR protocol. So hole-punching in general happens when two peers simultaneously open a connection to each other at their predicted external addresses. And in this case, both routers of both peers update their state tables and have seen a packet going out. And if they have seen a packet going out, they also allow packets at that address that the packets went out to go in. And if both peers simultaneously connect to each other, they are actually able to establish a TCP or a quick connection as you wish. And so the problem here is the synchronization. So both peers need to do it at the same time. And this happens at a rendezvous point, so we call it. And actually since Kubo 0.13, all deployed Kubo nodes can act as such a rendezvous point. And Max has actually given a great talk about the whole protocol at peer-to-peer Paris earlier this year. I highly recommend check it out. It's linked down below. Right, so how do we want to measure the success rate of this protocol? So the challenge is how do we detect net peers? The idea is that we just want to do a lot of hole punches to a diverse set of peers, but we actually don't know where they are. And the main idea here is that we deploy a honey pot and attract those peers behind nets. And this honey pot is just a DHT server node that walks around the DHT and it's a very stable node. And since it's a very stable node, we hope that other peers are actually including the honey pot peer into their routing table. So if peers behind nets request content from the network, they actually come across this honey pot. And if this honey pot detects a peer that supports this DCOTR protocol and it's also only reachable by a relay peer, which is the indicator that it's behind the net, then we save this inbound connection to a database. Then we have a second component here that reaches the server, which just serves those detected nutted peers to a fleet of clients and also exposes another API to track the hole punch results. So these clients are actually run in a diverse set of home network or supposed to be run in a diverse set of home networks. And these clients are actually just DCOTR capable lipid to peer nodes. We have two implementations here, one in Rust and one in Go. And those clients actually just periodically query the server for nutted peers, then perform the hole punch dance, the DCOTR protocol and just report back the outcome if it worked or not. And the Rust client is actually implemented by Eleanor and Max, so shout out to both of them. So the purpose so far is that the infrastructure is there. So this architecture that you've just seen is deployed and it's working. And there's to Grafana dash was also linked at the link you can find down below. This is probably the most interesting part here. So what's the success rate? And there are already some results here. So right now we have only four clients deployed and the success rate for these four clients is around as you can see 80%. So you can see the time on the X axis and the success rate on the Y axis. The success rate is around 80%, but it's less for peers that are in a VPN network. Another improvement proposal or another improvement suggestion that we could make. So the protocol actually tries this hole punch, this hole punching thing a couple of times. And but we found out with this preliminary results that actually if it doesn't work with the first time, the second and third attempt also won't work. So we could actually stop the protocol there. And there are many more results for the four clients that I showed here. You can find it at the link there at more results. So what's next? We want to extend those clients. So the fleet of clients that we deployed. So this is a call out for you, for all of you to participate. Please check out this Google form. This will just ask for your home network conditions like which router you have at your home network. And then you will receive an API key and you can download these puncture clients that you've seen earlier and just participate and contribute some data of your own network. And yeah, that's my brief deep dive already. Thank you.