Local timeline
@jti42@infosec.exchange Absolutely. The documentation I mentioned is actually part of the project itself, so it will be released together with littleFedi/littleMesh once everything is ready. It includes the architecture overview, protocol details, identity model, directory design, threat model, and the reasoning behind some of the choices.
So I cannot link it publicly yet, but I definitely will once the project is released.
And yes, with one important distinction: the directory is not intended to be an account directory or a global discovery mechanism.
It only maps a readable node alias to its stable Ed25519 node ID, and a node ID to its current signed lighthouse locators. It stores no information about the accounts hosted by that node.
So enabling the directory does not create an encompassing view of users across the mesh. Account discovery remains the normal Fediverse/WebFinger/ActivityPub business once you know what you are looking for. The directory only helps you get from a human-readable mesh name to the technical node identity and then to a route to that node.
Also, at the moment directory instances do not federate or exchange their contents with each other. A node publishes to a particular directory, and a gateway/client configured for that directory knows what that directory knows. There is deliberately no DHT-like propagation or global mesh-wide index.
The Matrix comparison is interesting, though. There are certainly some similarities in separating identity, discovery, and routing concerns, although littleMesh is considerably narrower in scope: it is primarily a transport and reachability layer for ActivityPub rather than a new application-level federation protocol.
@farooqkz@bsd.cafe @themipper@mastodon.social @stefano@rpi0w.stefanomarinelli.it I know. And I was clarifying that they can happily test as the H3 is a perfect platform for this 😉
This is my very first blog post. There are many blog posts, but this one is mine.
@farooqkz@bsd.cafe @themipper@mastodon.social @stefano@rpi0w.stefanomarinelli.it I have an Orange PI PC and an Orange PI Zero. I tested littleFedi on both of them (on NetBSD).
@oscarfalcon@mastodon.social @themipper @stefano@rpi0w.stefanomarinelli.it sure, why not? We'll also make sure that it will be easy to install and maintain.
I still find this fact quite amazing, especially seeing as I have required full vps Mastodon hosting for the last 5 years. Just incredible #littlefedi can run successfully on a Pi Zero W
@stefano
Just a little reminder on littleFedi's efficiency
The instance https://rpi0w.stefanomarinelli.it - with my user @stefano@rpi0w.stefanomarinelli.it - has been running for over a month on a Raspberry Pi Zero W powered by NetBSD.
Under normal operation, it uses 58 MB of RAM, including caches. And it shows no signs of slowness!
@themipper@mastodon.social @stefano@rpi0w.stefanomarinelli.it that will be a perfect platform for it. RAM won't be an issue and the CPU is much more performant than the original zero w
@jti42@infosec.exchange It's closer to an authenticated circuit/rendezvous relay than either a glorified STUN/TURN setup or a Kademlia-style overlay.
There is deliberately no DHT and no distributed routing/discovery protocol. A node keeps an outbound connection to one or more lighthouses. When another node wants to reach it, the lighthouse establishes a circuit between them, but the actual peer-to-peer session is end-to-end TLS inside that circuit, pinned to the nodes’ Ed25519 identities. The lighthouse therefore relays ciphertext rather than terminating the peer session.
If direct connectivity is available, peers can also discover and use the direct path, bypassing the lighthouse.
There is an optional directory, but it isn’t a DHT either. It holds signed records mapping a stable node identity to its current pinned lighthouse locators, mainly so relays can be replaced without changing the node’s identity, and to support readable aliases.
And yes, there is documentation beyond "read the code" 😉
The littleMesh documentation describes the architecture, circuit establishment, identity model, directory protocol/API, gateway, failover and trust/security model. There's also a separate littleMesh v2 identity study covering the protocol design decisions and threat model in more detail.
@mboelen people here are usually sending DMs or local only posts - and that's perfectly fine. I'm usually bookmarking everything and study them later.
@fasnix "worth" is the key here. People often just vomit negative stuff. The question is: is it "worth" sharing?
It's still very early, but littleFedi looks very very promising. Sure, I already see some minor improvements (that's why I am helping with testing), but this might be the better "mouse trap". Or let me say it in other words: maybe this is what Mastodon should have been? 🤯
I know more people want to share their knowledge, but can't be bothered to start a full blog. The option for people to create their blog here, that's really powerful.
Well done @stefano 🚀
Just a little reminder on littleFedi's efficiency
The instance https://rpi0w.stefanomarinelli.it - with my user @stefano@rpi0w.stefanomarinelli.it - has been running for over a month on a Raspberry Pi Zero W powered by NetBSD.
Under normal operation, it uses 58 MB of RAM, including caches. And it shows no signs of slowness!