<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Consensus on Mikhail Wall</title><link>https://mikelle.github.io/tags/consensus/</link><description>Recent content in Consensus 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/consensus/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 ┌─────────────────────────────────────────────────────────────┐ │ Leader Node │ │ ┌──────────────┐ ┌────────────┐ ┌───────────────────┐ │ │ │ BlockBuilder │ │ PostgreSQL │ │ HTTP API (:8090) │ │ │ │ + Geth │--&amp;gt;│ payloads │&amp;lt;--│ /blocks?</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 transitioned to Proof of Stake, Geth introduced the Engine API - a clean interface between execution and consensus layers. While designed for beacon chain integration, it also enables building custom consensus mechanisms.
This series builds a complete custom consensus layer from scratch. We&amp;rsquo;ll start with fundamentals and progress to a production-ready distributed system. Full source code is on GitHub.
Why Build Custom Consensus?</description></item></channel></rss>