AstonJ

AstonJ

@Garrison’s comment in another thread reminded me of this post by Joe:

With the big five exerting more control than ever, new (AI) players entering the fray, and *increasingly draconian internet laws being passed all over the world more and more people want to take back control of the internet or to find an alternative - with the original promise of the net in tact and something fit for a modern free world.

*details/articles

So with the call for a new or freer internet being at an all time high, what kind of role do you think Elixir could play in its creation from a technical standpoint?

Maybe:

  • Peer-to-peer networks?
  • Local mesh networks?
  • Blockchain based domains with decentralized DNS systems?
  • Decentralised VPNs?
  • IPFS (InterPlanetary File System)?
  • Pluggable Transports?
  • Something else?

Is a free and open web important to you?

Can you think of ways in which Elixir can help?

Showing Posts 1 to 10

plcholder

plcholder

The elixir comm is most definitely missing out on “web 3”, I understand many people dont like crypto and the usual languages used in this space are golang, java, rust & c#. Elixir can play in the c#, golang, java arena side of things and can help in some aspect for the rust side of things

For example in ethereum there is something called client diversity , the aim is that if you have the same protocol & vm programmed in different programming language’s, if one programming language has a glaring flaw in the future like an rce, since the control of the consensus is spread out between multiple implementations in different PL mitigation would be trivial. I always thought an elixir implementation would show the world how great elixir is at running network applications

Another point, some people in the evm community felt the “standard” golang implementation go-ethereum was slow at certain tasks and then attempted the herculean tasks of rewriting everything in rust, to fit there high performance checklist, I think it took them ~3 years to get to 1.0 and I thought if the standard implementation was written in a beam language and the high performance parts were brought in with rust NIFs how fast would there time to market have been?

I think elixir is perfect for the crypto/decentralized space, now granted ethereum is on the slower end of things with ~12s block times, you have something like solana that builds tx in 200ms, but again how much of the code could’ve been simplified if you handled all the network stuff to the beam and then rust NIFs for the heavy lifting stuff? Alot of decentralized protocols have slow build times

pawoc50825

pawoc50825

Decentralized technologies are a very interesting topic. Here are some loose thoughts off the top of my head.

~urbit

  • Bespoke decentralized personal server platform that allows users to own and control their data, functioning as their own server in a peer-to-peer network
  • I like it in principle, I strongly believe it won’t gain widespread adoption for many reasons.
  • Ethereum is essential for identity/ownership system, which I see as a weak point of the design.

LBRY

  • Free-speech-focused alternative to YouTube, censorship-resistant content publishing, monetization through their cryptocurrency “LBC”.
  • I liked both the design and implementation, unfortunately leadership made some suboptimal legal decisions.
  • In 2022, U.S. District Judge ruled that LBC was an unregistered security. As a result, LBRY Inc. announced its shutdown in 2023.
  • Perhaps Elixir’s Membrane Framework could be used in this space.

Bonfire Networks

  • It will be the best Fediverse platform, and it’s built entirely with Elixir (including LiveView for the frontend)
  • It could be a good choice for communities. Unfortunately I don’t ever see widespread adoption, mainly due to the limitations of the ActivityPub Protocol.
  • Worth noting, when I did a deep dive on the project in it’s inception a few years ago, I vaguely remember them getting EU grands for developing censorship tools…

AT Protocol

bitchat

  • Earlier this year I was looking for a bluetooth chat app and every option was insufficient. Glad to see I wasn’t the only one. Jack Dorsey, the founder of Twitter, announced working on his own just 3 months ago.
  • Bitchat is a decentralized peer-to-peer messaging app with dual transport architecture: local Bluetooth mesh networks for offline communication and internet-based Nostr protocol.
  • Nostr flips the current internet paradigm of “dumb client/smart server” to “smart client/dumb server”, by using relays and public-key cryptography. Nostr empowers users to control their own data.

SimpleX Chat

  • A private and encrypted messenger without any user IDs (not even random ones)
  • I strongly believe it to be the leader in the private messaging space.
  • You can already reliably use it to talk to non-tech-savvy friends and relatives.
  • In 2024 it got around $1 million investment, led by Jack Dorsey. Around the same time the cryptographic design got independently reviewed.
  • Broadly, instead of user IDs, the fundamental are anonymous pairwise connections between each contact. The messages then travel mixed in a network in some ways similar to Tor Network. Metadata exposure is minimized.
  • It’s build in Haskell. :jack_o_lantern:
  • I imagine integrating the protocol in Elixir applications would work well.

I hope this was on-topic enough :slight_smile:

derek-zhou

derek-zhou

I believe the future of a free internet lies with personal web applications. A personal web application is self hosted, often self-developed, has few power users other than the owner himself, yest still provide public access. Elixir is easier to get started (Phoenix generators), easier to reuse other people’s code (hex.pm), and easier to host (self-contained release, fly.io); it is a natural fit to develop you personal web applications.

woylie

woylie

At that point, the question becomes why you need a web application in the first place.

There are only a few use cases that make web applications a necessity: Collaboration, social sharing, publication. Everything else could better be solved by desktop or mobile applications with local data storage, plus an optional (and generic) data sync service (cloud storage) to make the data available on multiple devices.

derek-zhou

derek-zhou

Ideally yes, but the sad state of cross-platform desktop development and crazy gate keeping of the mobile platforms make them less viable.

Which is exactly the thing what I want to avoid. less dependency is my goal.

woylie

woylie

Right, less dependency is good. If the main storage location is offline on your machine, you can opt for a self-hosted storage service, or just use a NAS, or external storage, you might reach for syncthing, or rclone, or none of that. My point is, not everything needs to be a web application, and I don’t want to host a fleet of self-hosted services. Your point about cross-platform desktop development and closed-off mobile ecosystems is very valid, of course.

derek-zhou

derek-zhou

I agree it is a bit like the hammer finding nail situation, and self hosting is a commitment not to be taken lightly. However, I don’t see any alternative:

  • I want to avoid the big five
  • I got burned by smaller SaaS providers pivoting or going out of business serveral times

Elixir is the best language for self-hosted web applications so it is a good hammer fr me.

pawoc50825

pawoc50825

This is an exciting topic I meant to talk about in my original post!

inkandswitch.com/keyhive

  • Keyhive is a project exploring local-first access control. It aims to provide a firm basis for secure collaboration, similar to the guarantees of private chat but for any local-first application.

I highly recommend for anyone interested to read the whole linked article, I can’t really do it justice. Here’s some pretty pictures from the notebook :slight_smile:










sanswork

sanswork

You can’t really fix something with tech that most people don’t see as broken. There is a reason people flock to the biggest sites and its not because the technology for self hosting smaller sites and forums doesn’t exist.

When I was younger I modded a lot of forums and there was a pattern you’d see on most forums where at some point a group of people would get annoyed at the modding or some other rules and declare that they were leaving to start their own forum with better rules and they’d post a bunch about it then disappear for a few days to chat between themselves in their new forum. No one would follow though because of switching costs and because the conversations and people were already where they were and so after a week or two the people that left would inevitably come back.

We’re seeing the same thing with the push for web3 and distributed web apps now as that. The % of people that care about this stuff is a rounding error so their sites are dead and thus when people do decide to go have a look they see a wasteland and bounce quickly.

mudasobwa

mudasobwa

Creator of Cure

That’s absolutely correct save for several exceptions. Calendars work exactly the way self-hosting-people do propose. I host my calendar, G hosts yours, and yet they are both fully functional, because of handy interchange format. Oh, wait, even mail does work that way.

The issue, in my humble opinion, is not people are stuck to their facebooks, but the interchange which is broken (intentionally by bigcorps, but also because self-hosters are not always smart enough to understand what you’ve just said.) Fediverse tries to fix it. To some extent it even succeeded, and one might get to bluesky fellows from self-hosted mastodon instances.

But in general, unfortunately, nobody cares. Can I connect my blog (supporting fediverse shenanigans) to that forum?—Nah. Why?—Because nobody gave a shot.

That said, I think we need a working interchange before self-hosted-world. Then the migration of some of us happens and there might (or might not) be a snowball effect.

Where Next? Top

Trending in Discussions Top

AstonJ
As the title says, please share what you’ve been up to with Elixir. Whether that’s been learning it, looking into it, making stuff with i...
2977 91898 914
New
AstonJ
The obligatory hello world thread! Who are you and where are you from? :stuck_out_tongue:
4616 55835 594
New
byu
@chrismccord : I just saw the Extract AGENTS.md from Phoenix.new into phx.new generator commit to the phoenix project. My initial shotgu...
New
arcanemachine
I was working on an Ecto migration and I needed a timestamp. So, for the nth time, I looked up the different data types for timestamps, a...
New
alexslade
Fly’s CEO posted this recently - Turn And Face The Strange · The Fly Blog It says that Fly is going all-in on sprites, which is a worry ...
New
Herve37
We’re evaluating API mocking tools for OpenAPI-based projects and would love to hear what other teams are using. We’re particularly inte...
New
matt-savvy
Is there a word for the ~> symbol used in Version strings? Do you also just call it a Squiggle Arrow™ ?!
New

Other Trending Topics Top

JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
ausimian
Emily is an Elixir library that runs Nx computations on Apple’s MLX. Install it as the default Nx backend and Nx, defn, Axon, Nx.Serving,...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews