LearnBitcoin

The Bitcoin School

For people who want to understand Bitcoin. Not flip it.

Start the Journey

Plain language. Sourced chapters. Live on-chain data from a real node. Huge glossary, Rabbit Holes, and one opinionated Journey from "what is money?" to running a full node. No altcoins, no affiliate links, no newsletter pitch.

Bitcoin only.

No altcoins. No tokens. No "crypto." Other coins have other sites. We have one.

No bullshit.

No price predictions. No affiliate-bait. No fear marketing. Every chapter cites its sources, and the live on-chain numbers come straight from a full Bitcoin node.

Have fun.

Interactive, opinionated, well-crafted. Rabbit-hole vibes. Built by Bitcoiners for people who want to actually understand.

New on the site.

Down the rabbit hole.

All rabbit holes

Corrected in public.

All corrections
  • Node Autoban

    Automatic bans ended with 0.20.1 in 2020, when discouragement replaced them, and 28.0 (2024) dropped the score, so one offense means disconnection and discouragement. Under the old system a consensus-invalid transaction cost the full 100 points, and since 30.0 it is not punished at all. Bans are set only by hand, and Bitcoin Core's code says neither bans nor discouragement protect against denial of service.

    What was wrong
  • Peer Bookmark

    By default -whitelist applies only to incoming connections, so it does nothing for peers added with -addnode or -connect unless its out flag is set. Those peers are already never disconnected or discouraged for misbehavior, and current Bitcoin Core has no ban score.

    What was wrong
  • Peer Management

    There is no score or automatic ban: a peer that breaks certain protocol rules is disconnected after one offense and its address discouraged, and bans are set only by hand. Outbound peers are limited to one per address group (/16 for IPv4) and spread across reachable networks. Grouping by network operator needs -asmap, which stays off by default even though 31.0 embeds the map, and nothing selects peers by geography.

    What was wrong
Edit this page on GitHub