TL;DR: yevm — (Yield-aware | Yet another) EVM implementation — async-first, WASM-native Ethereum VM in Rust, ~12.7K lines across 8 crates. 99.6% on GeneralStateTests at Cancun, cross-validated against revm on Osaka/Fusaka mainnet. Three application layers on top: in-browser simulation, yevm-lens for decoding execution side effects, and yevm-gate — a local RPC proxy that holds outgoing transactions…
TL/DR: ecc - porting “Elliptic Curve Cryptography for Developers” from C/GMP to Rust, chapter by chapter. From modular arithmetic to a working SNARK in ~3700 lines.
TL/DR: solenoid - lightweight, async-first, WASM-friendly Ethereum VM implementation in Rust. ~6800 lines of code, processes real mainnet blocks, runs in a browser. Try it live!
TL/DR: ZKP - a learning journey through zero-knowledge proof systems: Groth16, PLONK, and Halo2. Same problem, three frameworks, one surprising insight.
This is me joining the crowd of self-proclaimed AI experts (thank you LinkedIn for showing me posts of people doing every obvious thing you can do with AI).
While I was doing-some-blockchain recently, I have found out that Elliptic Curve algebra does not seem to fit easily into u128, so this is a second attepmt, now done properly, using arkworks-rs.
Some 10+ years ago on a job interview I was asked to query the database for the comments tree in a front-end friendly way, meaning no heavy processing/sorting to happen on the back-end. Turns out this question was to check if I knew about the Hierarchical Queries with Oracle (WITH RECURSIVE on other databases), which I did not back then.
TL;DR: See sergey-melnychuk/project-one. INFO: Optional fields missing from Cargo.toml: ‘description’, ‘repository’, and ‘license’. These are not necessary, but recommended INFO: ✨ Done in 2.43s INFO: 📦 Your wasm pkg is ready to publish at /home/work/Temp/project-one/build.
AWS Lambda shows memory peak-usage, but when memory usage hits the limit, breaking down where exactly too much memory is being used might be a very useful things. The runtime is kind of a black box (at least in my understanding), so any telemetry/measurements need to be baked into the function. For this example, I only describe an approach useful for Rust runtime.
The 10x engineer - whole industry was discussing it, laughing at it, learning how to become it quite for some time. Googling “10x engineer” gives tons of content (as probably with any other catch-phrase), including some stuff to watch and read. Quite a lot whas told & written about it, but I feel the World needs one more post on the topic!
Every now and then there is a need to pass arguments to the command-line application. While there are a lot of libraries/frameworks to do that in Java, I still had this feeling “why such an easy thing must be so cumbersome and require so much boilerplate?”.
Building up on my previous posts about MIO-based server and parser combinators, this post is about making a very simple HTTP server capable of running on multiple threads and implementing WebSocket protocol.
One evening I was thinking why don’t I implement throttling dispatcher in Go. I even had to find “The Go Programming Language” book on the shelf, it was waiting for this for more than a year.
Why don’t I implement a nice monadic parser combinator library in Rust? That’s what my thought was when after implementing low-level mock-HTTP server in MIO and actually needed to parse the bytes received by server.