Build a blockchain from scratch in Python. Implement hashing, blocks, chains, proof-of-work, and consensus mechanisms as a working simulation.