<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tutorial on Mikhail Wall</title><link>https://mikelle.github.io/tags/tutorial/</link><description>Recent content in Tutorial on Mikhail Wall</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Wed, 04 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://mikelle.github.io/tags/tutorial/index.xml" rel="self" type="application/rss+xml"/><item><title>CometBFT Integration: BFT Finality for Geth</title><link>https://mikelle.github.io/blog/cometbft-geth-consensus/</link><pubDate>Wed, 04 Mar 2026 00:00:00 +0000</pubDate><guid>https://mikelle.github.io/blog/cometbft-geth-consensus/</guid><description>Part 4 of the Custom Geth Consensus Series The Redis-based system from Part 3 tolerates crashes: if the leader dies, a standby takes over. But it can&amp;rsquo;t handle a malicious leader that proposes invalid blocks. This article replaces the entire custom stack with CometBFT (formerly Tendermint), giving us Byzantine fault tolerance, multi-validator voting, and instant finality. Full source code is on GitHub.
What We&amp;rsquo;re Building Each validator runs a CometBFT node paired with a Geth instance.</description></item><item><title>Distributed Consensus with Redis, PostgreSQL, and Member Nodes</title><link>https://mikelle.github.io/blog/redis-distributed-consensus/</link><pubDate>Mon, 09 Feb 2026 00:00:00 +0000</pubDate><guid>https://mikelle.github.io/blog/redis-distributed-consensus/</guid><description>Part 3 of the Custom Geth Consensus Series A single-node consensus layer (Part 2) works until the node dies. This article adds Redis-based leader election for failover, PostgreSQL for durable payload storage, and member nodes that sync blocks from the leader and execute them on their own Geth instance, making each member a full execution replica. Full source code is on GitHub.
What We&amp;rsquo;re Building M S + e y P B R - - m n o l e b c s o d E S e e t c + i l t r r g k s e a + r B G c t 1 G e u e t e e S i t i t Q l h o h L d n e r P o p M S + L s a e y P e t y m n o a g l b c s d r o e e t e e a r r g r S d + r Q s 2 G e N L G e S o E t Q d T h L e / b l o c H / k T b s T l ?</description></item><item><title>Single Node Consensus: Building a Complete Implementation</title><link>https://mikelle.github.io/blog/single-node-consensus/</link><pubDate>Sun, 08 Feb 2026 00:00:00 +0000</pubDate><guid>https://mikelle.github.io/blog/single-node-consensus/</guid><description>Part 2 of the Custom Geth Consensus Series Part 1 left us with raw Engine API calls that build and finalize a single block. This part wraps those calls into a production-ready application with retry logic, health checks, and graceful shutdown. Full source code is on GitHub.
What We&amp;rsquo;re Building A single-node consensus layer that:
Produces blocks continuously Handles transient failures with exponential backoff Exposes health checks for orchestration Supports graceful shutdown Provides Prometheus metrics Application Structure The application has four main components:</description></item><item><title>Writing Custom Consensus for Geth: A Practical Guide</title><link>https://mikelle.github.io/blog/custom-geth-consensus/</link><pubDate>Sat, 07 Feb 2026 00:00:00 +0000</pubDate><guid>https://mikelle.github.io/blog/custom-geth-consensus/</guid><description>Part 1 of the Custom Geth Consensus Series When Ethereum moved to Proof of Stake, Geth introduced the Engine API to split the execution layer from the consensus layer. It was built for beacon chain clients, but nothing stops you from putting your own consensus logic on the other end.
This series does exactly that. It starts with raw Engine API calls and ends with a distributed, fault-tolerant system. Full source code is on GitHub.</description></item></channel></rss>