A little story to celebrate the removal of LES from geth
Our journey towards light clients starts a long time ago with ultra-light LES - the light ethereum protocol on which we hoped to build native Ethereum support in the Status application - a sovereign node in every pocket was the motto - the road there has been long and winding, and initially an uphill battle because our priorities turned out to be different than that of upstream maintainers of critical components we needed and the technical capabilities of the protocol at the time.
The idea gained traction that we need to get a seat at the table and approach the problem more rigorously by participating in the development of the new consensus protocol - Nimbus (and later others…).
Where we are now
From there to here, it’s been a long road, but we now have light clients in the ethereum consensus protocol, light wallets and Nimbus-based mobile OS:s, proxies for existing web3 communication protocols and third parties building on top of it.
We develop light client protocols and everything around them. The run in browsers and we continue to write protocol specs to improve them for each hard fork.
Change is possible.
Putting it together
The one thing we don’t have is what we set out to do: a sovereign node in every pocket.
So, without further ado, here’s a brief overview of how to put one together in short time so we again can get used to the idea that the fruit of fundamental change is ripe for picking.
Pragmatic prehistory
From a principled perspective, where we are today is not much different from where we were: on our journey from there to here we have given up on decentralisation in the Status app and start using Infura en masse, later to be supplanted with other trusted solutions, L2-du-jour bridges and similar compromises.
geth
is still in the status-go codebase, but it’s there for decorative purposes mainly rather than for running a node and serves as a source of of technical debt and architectural complexity, significantly slowing down radical progress and keeping us firmly within the confines of small incremental updates approached with great fear, uncertainty and doubt.
The chat protocol, a legacy of the pre-historic Whisper protocol, continues to struggle with message delivery for the same reason as when we started (a lack of end-to-end reliability).
There is much to do, or, in other words, much potential.
Fortunately, there are some problems we can solve here and now.
Stage 1: drop trust
The light proxy is there, waiting to be used - in fact, it was there in 2022:
- we no longer needing to trust infura or any other third-party provider - even L2:s can be brought into this fold if done well - this is a huge leap forwards: data sources stay data sources and are no longer part of the trust surface area for the user - the light client protocol is the only thing we need to trust - like SSL for your bank connection.
Stage 2: fluffy
fluffy
replaces dumb data sources with a DHT / distributed system - because trust has been solved, operators of the DHT know they’re storing valuable data and users can validate the data operators give - it’s nice not to have to trust the provider - this opens up options, including reaching the initial goal of replacing LES in the status mobile app.
Stage 3: nimbus-eth1
- users can use the incremental Nimbus EVM and incremental storage from fluffy to manage their balances, wallets - to create transactions client-side and to access the security that most L2:s depend on: a way to exit to the main chain when shit hits the L2 fan - even so, startup time is almost 0 because only small parts of the Ethereum state need to be loaded - this is like a steam game that downloads the executable and the first level and you can start playing while the rest happens in the background.
Stage 4: research seeds grow
There is no lack of ongoing research efforts: codex working on durable storage, waku working on privacy and protocols, logos rethinking the core architecture and the reasoning behind it.
These efforts however are of no practical use however until they leave their private github repos, their closed notion-notes-driven fear of attention to join with up actual people, few, at first, in a node, in a pocket, but then… in a node, in every pocket.
So why bother?
Dinner is on the table, getting cold - there is risk in change but when upheaval is in the air, even more risk in standing still and forgetting why we move in the first place - we’re now at a point where we’ve been standing around for a while, but risk forgetting what it was like when we started:
- the hunger for hunting our principles and remembering why the app is important, and not just another messenger
- the joy of not staying in the comfortable lane of incremental changes - the world is moving fast and not waiting for us
- our care for people, not figma fidelity - rounded or square corners are important - they signal attention to detail - but they cannot replace a solid foundation and deeply entrenched desire to enable access to technology that otherwise risks ending up in the hands of a select few
- a feedback loop that guides the research which informs the application direction which guides the research - else the research happens in a vacuum and the application grows stale before it gets released
- focus and understanding of what the possibilities are - it’s not just another app being built - it’s an operating system that re-organises the way humans and computers interact
The currently launching IFT is the vehicle that collects all of the above and more… it is an opportunity for those that remember this feeling.