All projects
2020

Cardano Stake Pool

During my degree, I set up and operated a Cardano stake pool on mainnet, running the Cardano's provably secure proof-of-stake consensus protocol, based on peer-reviewed research. Slot leader election is determined privately via a Verifiable Random Function (VRF). consensus protocol. I wanted to understand proof-of-stake infrastructure from the inside: node operations, network topology, key management, and what it actually takes to produce blocks on a live blockchain.

ROLE

Single Pool Operator (SPO)

STACK

cardano-node, cardano-cli, Docker, Linux

HIGHLIGHT

Minted block #4882184

Context

Cardano transitioned from the federated Byron era to the decentralised Shelley era, introducing stake pools and the Ouroboros Praos consensus protocol to mainnet. I registered my pool on-chain and operated it as a self-directed university project to explore decentralised systems hands-on, from initial node deployment through to successfully minting blocks.

Infrastructure and node operations

  • Deployed and maintained The official Haskell-based node software that connects to the Cardano network, validates transactions, and produces blocks. across a The recommended Cardano network topology. The block producer holds the signing keys and mints blocks, but connects only to its own relay nodes, never directly to the public network. Relays handle all external traffic. , following the recommended topology where the block producer connects exclusively to its own relays, never directly to the public network.
  • Containerised the entire node setup with Docker, allowing reproducible deployments and streamlined version upgrades without risking configuration drift between the block producer and relay.
  • Managed pool registration on-chain via cardano-cli, including configuring pool parameters: pledge amount, fixed cost, margin, and metadata. Understood how the The pledge influence factor. A protocol parameter that determines how much a pool's pledge amount affects its rewards. Higher a0 means pledge matters more for reward calculations. and The saturation parameter. Controls the target number of stake pools and the maximum effective stake per pool. Pools exceeding saturation offer diminishing returns to delegators. protocol parameters affect pool desirability and reward calculations.
  • Handled Key Evolving Signature. A hot key used to authenticate the node, which must be rotated every 90 days (each KES period). If it expires, the node can no longer produce blocks. rotation and generated The certificate that links the operator's offline cold key to the operational hot key. Generated offline using the cold key and includes an issue counter and KES period start date. to link the offline cold key signing authority to the running node, keeping cold keys strictly air-gapped from the server environment.
  • Hardened the server with restrictive firewall rules (block producer only accepting connections from known relay IPs), SSH key-only authentication, and fail2ban.

Consensus and staking mechanics

  • Gained practical understanding of Ouroboros Praos, where slot leader election is determined privately via a A cryptographic function that produces a provably random output. Each pool evaluates its VRF key against the slot ID and epoch nonce. If the output falls below a threshold (based on the pool's stake), the pool becomes the slot leader for that slot. , with the probability of selection proportional to the pool's active stake.
  • Worked with the Each Cardano epoch lasts 5 days (432,000 slots). Stake snapshots are taken at epoch boundaries, with a multi-epoch delay from delegation to active stake. Rewards are distributed based on blocks produced versus blocks assigned (pool performance). : stake snapshots at epoch boundaries, the multi-epoch delay from delegation to active stake, and reward distribution calculated from blocks produced versus blocks assigned.
  • Understood how Delegators assign their stake to a pool ID by posting a delegation certificate on-chain. Their ADA is never locked or transferred. They retain full spending control while contributing to the pool's weight in slot leader election. works at the protocol level, where delegators contribute to a pool's weight in slot leader election via on-chain delegation certificates without ever locking their ADA.

What I took away

Operating a stake pool on mainnet gave me direct experience with production-grade infrastructure concerns: uptime discipline, key rotation procedures, network isolation, and the operational overhead of keeping a containerised node stack synchronised across software updates and epoch transitions. The Linux administration and server hardening skills I built here carried directly into my professional work, particularly around monitoring, reliability, and reasoning about failure modes in distributed systems.