This is a project I've been working on to create decentralized, peer to peer, "serverless" websites using several technologies including webtorrent, dmt (mutable torrent BEP-46), and handshake decentralized domains.<p>You can create either an immutable (uneditable) torrent site, or you can create a ed25519 keypair and create a mutable (updatable) torrent site.<p>This is great for blogging, whistle blowing, and other things. It also scales well since torrent technology is great although it had previous been pigeonholed to other use cases.<p>Please give it a try and let me know your thoughts! I don't take any credit for this since I just weaved the great technologies others already made together!
This is a fantastic work!<p>The best part of Federalist is reading and displaying the websites from BitTorrent using BEP-46. The Handshake part is less impressive for me personally, since it basically reads Handshake values from a service (query.hdns.io/dns-query).<p>If Federalist adds a Handshake daemon, it will be much more decentralized, but at the same time much heavier on resources.<p>For historical perspective, decentralized websites (or p2p websites) are here since like 20 years. Here's a super concise list of what I recall off the top of my head.<p>- Freenet is the first project I'm aware of doing that<p>- ENS+IPFS websites is a strong movement now (see esteroids.eth.limo, I'm a co-creator of this)<p>- ZeroNet was going strong like 5 years ago, and even though it's less popular now it's still functional and a nice project.<p>- Agregor browser brings decentralized website the Hypercore (a successor of DAT protocol)<p>- BitTorrent was supposed to have a project especially for decentralized websites (Maelstrom web browser), but it didn't took off eventually<p>- Magnetico is a search engine built on top of BitTorrent, very similar to Federalists, but without the Handshake part.<p>- Skynet is a project meant almost only for decentralized websites, based on Sia. They have integration with ENS, and afaik, also with Handshake (check it out!)<p>- Swarm, Namecoin etc. could also be used for decentralized websites. I saw some people doing demos with it, but can't recall any links/names atm.
> I don't take any credit for this since I just weaved the great technologies others already made together!<p>You should <i>absolutely</i> take credit for <i>your</i> part in this. Others may have created the technologies you used, but <i>you</i> tied them together into something "more" than the individual pieces. There's room enough for all players to take their credit for their part in this existing.
This looks like a great project, thank you.<p>One aspect of censorship resistance is the ability for people to publish and read content anonymously (or pseudonymously). Could you add something to the README about that threat model?<p>Also, I see that your IRC channel is hosted on Freenode. That seems an odd choice for a project that is opposed to censorship. Please consider a network with a better track record in that regard.
BitTorrent is so good and I am surprised that I don’t see it in more places<p>Using a private key for mutations is a great idea. I believe it is similar to how BitTorrent Live (undocumented) was implemented, where new content was added to a merkle tree. That is at least how RFC7574 proposed doing it
Bravo dude! Absolutely phenomenal work. I'm going to star this and attempt to tinker with it in a few days. I love seeing stuff like this get built, IMO the more interesting tools like this get built the better the world becomes.
Very nice work ! I wanted to do something similar a long time ago but never took the time. Congratulations !<p>A few points:<p>- is this using webtorrent-the-library or webtorrent-the-protocol ? If it's the latter it's a bit useless. The only reason the protocol exists is to make web browsers speak a similar language as bittorrent, but both protocols are strictly different. Which means if you want to talk both you need to implement both (and fortunately webtorrent-the-library does so)<p>- The Readme says this is good for whistleblowing. Actually this is one of the worst ways of doing it. When using DHT you tell the whole world your IP is interested in a specific content. When using bittorrent your IP connects with other peers interested in a specific content. There is nothing easier for LE than watching a specific content of interest and see who is interested in it: journalists, sources, ... An anonymisation layer is mandatory for this use case
This is cool.<p>I'm also working on a decentralized distribution mechanism based on torrents, and while i've being working on a different architecture, the network mechanism are basically the same with a couple of differences on the network level.<p>In my case i'm working on a very customized version of chrome where the web api is actually available for native applications beyond Javascript.
Well done, good luck. Always wanted to implement something like this.<p>> dmt (mutable torrent BEP-46),<p>Is dmt supported (made scalable?!) by the existing torrent infra structure (DHT/trackers/etc??). Sorry if this question doesnt make sense.
I would love it if someone could change my mind on this:<p>The words unblockable and uncensorable have been misused in the documentation.<p>Real-world example: 99% of my colleagues cannot bring their own devices into our corporate workplace to access torrents via DHT. There are some network rules and filters in place to block most non 443 traffic. Those 99% are effectively blocked.<p>Setting a remote HAProxy server to mask miscelaneous traffic as https was a practical way out through the firewall, which then exposed my HAProxy server to a block by IP rules.<p>This is an idea I'd love to be wrong about. Bock-resistant is the most appropriate statement for this project in its present form. Change my mind :)
How would you compare this in a use-case sense to something like Beaker browser?<p>Also -- and I'm unfamiliar with handshake -- but is the sort of thing that could work over ad hoc networks?
This doesn't solve the problem that users have to host files themselves, which makes the network unsuitable for many use cases. With torrents and IPFS, only popular content will be hosted by voluntarists with varying levels of service.<p>This is the drawback of traditional decentralized networks compared to blockchain-based networks such as Sia/Skynet, where users can pay to get their files hosted with guaranteed service level.
Seems cool at first glance! I've never heard of Handshake, will be looking at that more in particular.<p>So I see the address in the screenshot starts with federalist://<p>Is it possible to access these sites with a normal web browser from the internet too?
I cloned it. I don't see how to get to the publius or federalist scripts. I wanted to try to create a blog; is this documented somewhere?<p>It's an exciting project.
> This is great for blogging, whistle blowing, and other things.<p>Could this support user authentication for uploading content? Maybe with something like metamask?<p>Using this tech to make a medium/substack/twitter-style site would lower the barrier to entry for non-technical journalists.
WebTorrent has never worked for me. It's included in Brave now but whenever I try to open a magnet link it just sits and waits while qbittorrent downlads everything i before I can manage to make a cup of coffee.
Instead of blockchain/web3, I wish these type of projects would pop up more. They are drowned (in my circles) out by 'decentralized everything blockchain' hype... we need this indeed.
this is actually nice, imagine a world where devices have software like this and acts as a node, so like install it on your smart coffee pot, tv, etc. seems silly but i think as time progresses and as technology advances and gets cheaper and cheaper to build that we will one day have normal everyday appliances os's in them, maybe even a type of wifi that will eventually create mesh networks
i remember dreaming about something like this almost 20 years ago, when understanding torrents drew me
into learning about networking and computing generally. huge props, it fills me with a warm feeling to see that these systems are not just possible but manifest.
These sorts of things are still blockable through DNS and IP filters cutting off access to the root nodes and such I would guess.<p>As such, what is the use case?