Cryptos. Learn how Bitcoin actually works by building it yourself in Python.

github.com/karpathy/cryptos

Vaya's read on this project

Problem, audience, market, and the verdict — sign in to see it.

Updates

June 2021
  • adding blog post as jupyter notebook
May 2021
  • disable pylint unused variable warnings that have been bugging me and…
  • update the docs with the partial block chain validation with our ligh…
  • fix bug where I was not clamping new target at max target oops
  • allow verbosity setting in SimpleNode
  • add genesis block for mainnet/testnet and some parsing tests to make …
  • add headers message of the protocol
  • add getheaders message of the protocol
  • modify the version handshake to be exactly to spec as per docs
  • handshake with a node on the network!!!
  • don't copy paste code not cool, make proper netaddr struct much nicer
  • add version message payload serialization
  • actually move the key pair generation into a helpful util so we're no…
  • fix docs references that had gone stale
  • add NetworkEnvelope for comms between nodes
  • new bits calculation from the time difference between two blocks 2,01…
  • add proof of work validation to Block class
  • difficulty calculation
  • implement pow target from bits field
  • Block class is born! We're going to group transactions into blocks an…