Video wird geladen...
Video konnte nicht geladen werden
Cardano v2 is coming It includes not just Leios (scalability) and Peras (finality) but also potentially a new node rewrite 👀 Here is my deep dive on the potential new node architecture ↓
77,832 Aufrufe • vor 1 Jahr •via X (Twitter)
17 Kommentare

Before we get into it, just a disclaimer: Leios & Peras will be big user improvements, but a new node is more of a developer feature than a end-user feature Not a dev? Maybe you aren't the target audience (but you may have to vote on the architecture through governance)

Cardano has two big improvements to the consensus you can read about below: - Leios for scalability: - Peras for finality:

Leios contains some fundamental rethinking of multiple parts of how Cardano works in order to achieve its scalability gains So the question is: - Should we try and integrate Leios into the current Cardano node integration? - Or should we take this opportunity for a new node?

Notably, Cardano has had 2 node implementations so far: cardano-sl (2016 ~ 2019) cardano-node (2019 ~ present) The latest rewrite includes many specifications making a new node easier to write (just make sure it matches the spec!)

If we do a node rewrite, what other thing could be improved? One of the main topics of interest is: how can we make the Cardano node more extensible? The Cardano is really really slim to promote decentralization Compare node requirements (Cardano left, Solana right)↓

Keeping Cardano node slim helps with decentralization (anybody can easily run a node!) But the node doing little means that it delegates a lot of the node API to external services leading to some fragmentation (Oura, Carp, Blockforst, Ogmios, etc. etc.)

Compare this to Ethereum where the node itself provides a more full API (often no need to run other tool!) Example: - Want to get the user's balance? Just call eth_getBalance - Want smart contracts events? Just call eth_getLogs

So there is a clear tradoffs: Building features into the node API avoids fragmentation, but increases node complexity and system requirements So how would we tackle fragmentation by allowing the node to do more without increasing node requirements?

There are two main approaches that exist out there: 1. Polkadot / Substrate: having a common compilation target Substrate has a palette system where anybody can write their own extensions to the system as long as it compiles to WASM

2. Cosmos SDK: having a message passing system Different components can be created to extend the core system, but thees components are loosely coupled through messages passed between them

Since Ethereum has a similar issue, how are they thinking about this? @VitalikButerin recently put out some blog posts on this exact topic: and @drakefjustin (from the Ethereum Foundation) has a video on this topic:

The tl;dr: they're thinking about removing a lot of things from the node! You can see a long list of just some of the stuff they're trying to remove to slim down the core node

One way Ethereum hopes to extend while removing core protocol features is ZK cryptography ("snarkification") ZK allows having proofs that a program was executed correctly This means you can take code out of the node and replace it with accepting proofs generated externally

Notably, there are now multiple tools that can generate ZK proofs of any computer program that compiles to a common target (mostly WASM or riscv) And these tools get 10x faster every year, so they will run in realtime very soon

It's why projects like Reth (Rust Etheruem) by @gakonst are focus on things like Execution Extensions (ExEx) ExExs allow packing custom rust code into the node itself, and does this while supporting general ZK provers like SP1 by @succinctlabs !

ZK-ification of more general message passing systems that don't bundle everything together is possible In fact, it's achievable with techniques like recursive SNARKs and folding schemes (i.e. the tech that powers tools like @MidnightNtwrk, @MinaProtocol, @NovaNet_zkp , etc.)

Hope this thread & video helps you understand potential directions of a new Cardano node! Cardano has decentralized governance, so holders will have to vote on the best path forward 👀 Not sure how to vote on technical topics? You can delegate to me ↓
