gnunet-developers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: unsuitable protocols and standards that block innovation


From: carlo von lynX
Subject: Re: unsuitable protocols and standards that block innovation
Date: Tue, 12 Mar 2024 10:14:10 +0100

Hi Sahil,

On Tue, Mar 12, 2024 at 02:37:36AM +0530, Sahil wrote:
> This looks very interesting. "Multicast distribution trees" is a new topic for
> me. I'll read up on this too.

It's the way how cloud technologies achieve scalability, and it is
the biggest failure of the free world that it let free implementations
slowly die out and surrender to corporate clouds. Back in the 90s we
had NNTP and IRC. In the 2000s we had Bittorrent. All these free and
open multicast implementations have lost traction and everything that
needs to reach many human beings is forced to go through corporate
clouds.

> I am under the impression that XMPP can be used in p2p networks and
> to establish p2p sessions via extensions such as XEP-0174 [1].

A XEP from 2018 that I haven't been following. Let me have a look:

    "This specification defines how to communicate over local or wide-area 
networks using the principles of zero-configuration networking for endpoint 
discovery and the syntax of XML streams and XMPP messaging for real-time 
communication. This method uses DNS-based Service Discovery and Multicast DNS 
to discover entities that support the protocol, including their IP addresses 
and preferred ports."

    "Serverless messaging is typically restricted to a local network (or ad-hoc 
wide-area network) because of how zero-configuration networking works. It is 
impossible for clients that communicate via this serverless mode to insert 
messages into an XMPP network, which is why this kind of "mesh" is most 
accurately referred to as an XMPP-like system that exists outside the context 
of existing XMPP networks (though see the Security Considerations regarding the 
ability to "forward" messages from a serverless mesh to an XMPP network or 
vice-versa)."

So this is for smarthome appliances to find each other on a local
network and for XMPP clients interacting with people in the same LAN
using something which is very inappropriately called "Multicast DNS"
for historic reasons. It has NOTHING to do with Multicast. It's just
using a protocol called "IP Multicast" which was supposed to become
the worldwide standard for creating distribution trees in a cleaner
and more efficient way than IRC and NNTP were doing at the time, but
failed to achieve its goal, so LAN broadcasts have remained as the
only use case, which is far from what it was intended for. This
historic failure has tainted the understanding of the word "multicast"
as the majority of technology people only know it by this failed
meaning, not for what it originally stood for.

So, if you ignore the use of DNS in this XEP and have GNUnet-based
discovery instead, then you could indeed start throwing XMPP stanzas
at each other:

    "Any two entities can then negotiate a serverless connection using XML 
streams in order to exchange XMPP message and IQ stanzas."

Since most of XMPP is designed as a client-server-protocol, you
are actually in a territory doing something new. I mean, do XMPP
message and IQ stanzas really provide a lot more than what bare
XML would do? Also, isn't the industry standard in this field
called JSON, which also has its defects, as shown in the PSYC
benchmark, but it's less bad than XML?

It makes sense to implement this XEP if you're already a XMPP
client developer, not if you're wondering whether to use XMPP
at all. De facto the majority of people will continue using
Whatsapp and such, even if they're in the same LAN.

Within GNUnet instead, you can't just do worldwide broadcasts
using "Multicast DNS", but GNS should be able to do a similar
job as the one described in the XEP, indeed.

> Adapting a telegram implementation would make for an interesting project.
> Assuming that this is a nice-to-have GNUnet service, I am not sure if this is
> an appropriate project to begin with as someone who is fairly new to these
> topics.

Probably a biggish one to start with. Not sure how easy it is to switch
off all the extra features the client expects from the server, and reduce
it to start off with the bare minimum - text-based interaction. The
Telegram protocol should be providing some kind of feature negotiation
as it can handle text-based minimal clients.

> I noticed that reimplementing the SMTP transport plugin is part of the
> roadmap and it is unassigned at the moment [2]. Can I work on this project
> instead? It seems to be more beginner-friendly. It might also help lay the
> foundation to tackle projects/tasks that seem more complex.

This should be an easy task indeed. But as Martin points out, it might
not be "useful" anymore.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]