Avatar
Nuh
930ccef12372dd2f16057cfc54f0dbd94335d8b51b4e2737236b00cab718fcd9
Working on https://mlkut.org, designer and maintener of https://pkarr.org. https://nuh.dev

My favorite thing about Bittorrent DHT is that it is so large and so distributed and so old and established, that nodes operators don't even know what Nostr or Pkarr are... they are just happily downloading pirated games and movies in peace.

Replying to 2bc1cc92...

?

7 killed in Gaza

And 7 IDF soldiers expired... what a fuckin morning.

Part of the small worlds thesis is to utterly ignore the adoption of your work, and focus on the opinions of your peers, the ones you actually consider peers.

This is not cope by the way, instead it is inspiref by an advise I gave someone I deeply respect and admire their work when they were feeling bad about the obscurity of their stellar work.

Don't be popular, be right.

What is the point of "fuck you" money otherwise?

Because I dont need money, but there is always BDS 😀 https://bdsmovement.net/donate

If zohran wins, this is going to be one of the most depressing days for zionsists scum.

zionists succeeded, from now on Americans are going to fight and they will continue to kill Gazans in peace and watch the USA fighting their war for them with popcorn in hand

Even more importantly. You can use Pkarr to publish a dns packet on the massive Mainline DHT, informing others what STUN server or Iroh relay you are using. So now you are still using the DHT to make the rendezvous providers permissionless and censorship resistant, but the DHT itself remains focused on just routing.

At the end of the day, DHTs are like Bitcoin; a public common that you want them to be as reselient as possible, even if they stay primitive and inflexible.

Replying to Avatar Keychat

Keet uses the Holepunch stack—not WebRTC—for its real-time voice calls. In a one-to-one call the connection likewise falls into three logical stages:

1 · Peer-discovery exchange

Each endpoint relies on HyperDHT ( Distributed Hash Table) to locate the other party:

The caller joins the network with the callee’s 32-byte Ed25519 public key.

Nearby DHT nodes return the latest announce record published by that key—essentially “I’m online at 203.0.113.7:54567”.

A short-lived, signed invitation token proves the request really comes from the owner of the calling key, preventing spam.

No central signaling server is involved; the DHT itself is the rendez-vous layer.

2 · Distributed hole-punch — DHP → direct connection

The two devices attempt to break through their NATs with DHP (Distributed Hole Punching) and then talk over UDX (Ultra-Datagram eXchange):

Each side enlists several random DHT peers as hole-punch helpers—they play the same role that STUN servers do in WebRTC but are fully decentralized.

Both endpoints fire simultaneous UDX probes at every candidate (IP:port) they learn.

As soon as one path succeeds, a one-round-trip Noise_XX handshake derives a session key, and encrypted audio frames start flowing directly between devices.

In residential or mobile networks this succeeds ~70 %–80 % of the time, giving a pure P2P (peer-to-peer) path with minimal latency—no relay, no bandwidth fees.

3 · Volunteer relay fallback

If symmetric NAT (Network Address Translation), CGNAT (Carrier-Grade NAT), or a strict firewall blocks every hole-punch attempt:

Keet asks nearby peers whether any is willing to act as a relay for this call.

If at least one agrees, the audio stream is tunneled through that peer—still encrypted end-to-end by Noise—so neither relay nor network can eavesdrop.

When no volunteer relay is available, the call fails; Keet has no equivalent to TURN (Traversal Using Relays around NAT) hosted in a central data-center.

nostr:nevent1qvzqqqqqqypzpwleyw4fy3sxt7yvgrran0mpenxqlululur94r9jlax0hd3q3rc7qy88wumn8ghj7mn0wvhxcmmv9uq32amnwvaz7tmjv4kxz7fwv3sk6atn9e5k7tcqypvwqh84uq76vdjhaa9ekn4tt0trwuw2kkc5htsxz2jasezmmcht60p280p

There is also so few nodes (you can crawl them all in 10 minutes) and they all share handful of ips which tell me there are few entities running most nodes.

It has the potential of becoming resilient, but as it stands, you have way more public and free STUN servers than HyperDHT nodes, so which one is of these options should we call decentralised?

Any software that is only distributed as a daemon or a server with rpc should be avoided at all cost.

I am so sick of dealing with distributed systems in fuckin local integration tests, just because someone can't write a library.

But what are people trusting and auditing? It is mainly consensus.

Knots don't count it is just Core with patches, and Libbitcoin is only compatible with Core until it is not. I don't know about BTCD but is that the one where it actually had a fork because it failed to replicate some undocumented Core behaviour? Or was that something else?

At the end of the day, Core is absurdly unwieldy that no one is using it in any mobile device, which is where all payments happen, and they can't optimize for every use case.

I want innovative clients to do their things in different environments, while all knowing that given the same chain of blocks, they will all reach the same conclusion of say UTXO set.

Or at least given the same block they all can be confident they will validate it the same way.

So far the only way to do that was the libbitcoinconsensus which is now deprecated.

I am not just saying this to be argumentative, I am deeply in favor of reference implementations vs spec and beps and nips.

But that position HAS to be combined with as simple reference implementation as possible so people can use it while still being able to customise it to serve their needs.

Again, Core itself understand this which is why the kernel is necessary

Coercion is irrelevant in software anyway, no one is coercing anyone to not fork away at the extreme.

But the lack of neither spec nor extractable kernel, makes running anything but bitcoind not feasible.

Don't take it from me, I already heared at least one core dev describing the kernel library as necessary to reduce the pressure and liability on the Core team.

An ossified kernel, one day, will make Core much less mission critical to Bitcoin, as just another client, probably not even the most popular, while consensus remaining safe.

Yes, measure the distance between Moscow and Kiev and compare that with the distance between Washington and Tehran or Baghdad or Kabul or Hanoi.

Then compare the risk of Ukraine joining Nato and installing nuclear weapons their to the non existent risks in any of US wars of choices.

Russian and Iranian regimes are exceptionally brutal and criminal, we saw that in Syria. But we can't pretend they went to these wars for sports in the way neocons in the US do.

But this is not me defending authoritarian regimes, this is me being very frustrated about the failure of democracies.

The similarity between zionism and german national socialism is scary, but we have to face scary things sometimes.

https://twitter.com/martyrmade/status/1935733070738735357#m

Except you can't run code unless you are confident it is compatible with what everyone else is running or risk forks which is not acceptable for businesses or most users.

And since there is no spec, no one can run anything that isn't based on Core.

Again, Core is aware of that and that is why the kernel library exists, but it is not ready.

When it is urgent you will have no time to create a large enough DHT to be resilient. Then you will lose the identity you spent years creating URLs for. And all these URLs get broken. Why? If we have a good solution now, we should get it ready.

No, but I don't want to make that bet, and there is nothing theoretical after that that would require changing to other primitives... so if there is only one necessary migration that gives us stable IDs forever, might as well work on it now.

I think I found a promising post quantum alternative to Ed25519, not yet accepted by NIST, but even if I Yolo it and use it to create a post quantum version of #pkarr I will have to convince people to bootstrap a DHT or convince Mainline users to support that BEP. Not easy.

Still, I think we should start working on this soon.

It is going to be so funny when the conclusion of Democracy vs. Authoritarianism is that democracies can't stop engaging in extremely unpopular unnecessary wars on the othet side of thr planet, while the supreme leaders of centralised authoritarian stated seem to bend backwards to avoid wars even with their direct neighbours until they are cornered by internal politics or foreign existential threats.

No, the consensus at the moment is literally what Core does (which is not all defined), there is more than zero cases of separate implementations having accidental forks because they didn't do exactly what Core does.

The kernel library should fix this, but it is taking very long and won't be ready any time soon.

The entire fuckin strategy of zionism is to destroy any emergent power and any functional state and any sustainable and growing economy, often with brute force as you see now. Nothing is acceptable around them except small broken failed states.

This strategy of wasteland (that they call mowing the lawn) will continue until they are utterly broken.

This is the part that western societies don't understand, not every nation is a spearate island unlocking the tech tree limited only by their work ethics... for most of us, especially in this region, we have to build and rebuild over and over again while Israel and the USA randomly chooses a state once a decade and utterly destroy it for fun.

"The era of normalization with Israel for free is over. After the war, we will demand that the Arab normalizers pay tribute."

"The difference is that after the war, the Arabs will pay tribute directly to us, not through the Americans as is the case now. I agree with you."

Zionists are not allowed to escape, literally locked in... well to be honest that is fair, if you benefit from Jewish supremacy you should stick and face the miniscule consequences.

You guys are about to get drafted.

Message passing is the paradigm of organising your architecture as actors sending messages to each other, as opposed to say a central hub that everyone writes to and reads from.

Email is Message passing for example, whereas Nostr is a shared heap of data.

Message passing doesn't scale because you need to send n^2 messages (each email server will need to send a message for each other email server mentioned in a thread).

Shared heaps scale because instead of the (many to many) that results in an n^2 messages, you have a (many to one to many) so you need 2*n messages (from each client to the relay, and from the relay to each client).

Of course that ignores another important downside of message passing which is lack of global view, which henders statistics and engagement signals etc... but that is another topic, although it also relevant because if `n` is so small, it is cheaper to do this aggregation and counting on client side.

So it all comes down to how much scale do you need, and there is always a threshold after which you are doomed to be centralised because ...costs and incentives don't match any more for more than few services that can monetize somehow.

This is like saying you don't need Twitter if you have many Matrix public groups.... sure if you want to call that Twitter alternative be my guest. This form of delusion is less wasteful that actually trying to build a Twitter alternative that isn't centralised

It solved it by opting to remaining extremely small. Being small means the basic censorship of illegal material is cheap on relay operators, and accepting remaining small means no one else needs to care about users and their experiences.

Sure if Bluesky ended up just as small as Nostr or merely one order of magnitude better, then Nostr failed cheaper, although you might be surprised how much money is spent on Nostr every month, I heard something like a million dollar, so who knows which network is more efficient at failing to grow 🤔

My point is, no one has any answer to how to build large networks that aren't guaranteed to devolve into centralised platform.

I am trying to encourage people to give up and focus on small networks