
Bitcoin acts as a big public ledger, a decentralized, open-source protocol that lets you own and move a digital asset securely across the globe without permission.
Examine how digital money enables double spending and how a centralized ledger prevents it, while considering central banks' costs and Bitcoin as a potential solution.
Explore public key cryptography, the foundation of Bitcoin security, using public and private keys to enable authentication and message privacy through encryption and digital signatures.
Explore how proof of work uses a nonce value to regulate block creation. Miners race to compute hashes, seeking a hash with leading zeros to meet a ten-minute target.
Learn how bitcoin nodes maintain a memory pool, or mempool, a per-node store of unconfirmed transactions, serving as a waiting room before miners add blocks.
Understand how blockchain stores blocks across full nodes, light nodes, and miners, and why running a full node ensures decentralization, honesty, and independence in the Bitcoin network.
Compare hot and cold wallets to balance convenience and security for crypto storage. Hot wallets stay online, while cold wallets keep private keys offline on hardware devices.
Develop a blockchain class with a genesis block, manage a chain array, and implement mining, difficulty adjustment, and validation to guard against tampering.
Learn how blockchain validity depends on valid transactions, including balance checks, signature verification with elliptic curves, and hash-based integrity, plus validating blocks and guarding the transaction pool.
Explore how gas fees sustain blockchain operation after cap, rewarding miners and funding energy costs, and implement gas as a transaction property with updated balance checks and rewards.
Debug a blockchain app by creating wallets, simulating signed transactions, applying gas fees, and tracking genesis and block rewards to explain miner balances.
Build a basic client-server setup using WebSockets to illustrate how two machines communicate. Then adapt the code toward a true peer-to-peer architecture for a cryptocurrency network.
Build a peer-to-peer network where every node acts as both client and server, connect John’s and Jennifer’s machines over a local area network, exchange messages, and prepare blockchain integration.
Modify the blockchain by using static mint and John keys, making is valid static, and ensure a consistent genesis block timestamp across nodes for reliable wallet and transaction validation.
Debug a small blockchain network by cleaning a light Bob node, validating balances, broadcasting transactions, and mining across John, Jennifer, Minor, and Bob, with verification and gas fee.
Debug a multi-node blockchain by executing transactions, mining blocks, and validating balances, while noting block properties and merkle roots; address merkle root duplication by adding a timestamp to transactions.
Debug a four-terminal blockchain setup, mine blocks, and confirm a light node stores block headers while exploring genesis block details; next course covers Bob Node’s transaction verification.
Debug and refine a blockchain transaction workflow across nodes, resolve a proof object mismatch, reconstruct valid proofs, and implement Merkle tree techniques to empower light nodes.
Extend your blockchain to support smart contracts like Ethereum, turning it into a platform for decentralized applications. Learn about Solidity, Ether, and how to deploy smart contracts on a blockchain.
Explore how a runtime engine stores smart contract results in a global state using LevelDB or the Ethereum state database, and practice put, get, and iterator.
Welcome to our course on building a peer-to-peer network based on blockchain technology!
Do you have an interest in understanding the mechanics behind Bitcoin or Ethereum?
In this course, we will start by exploring the theory behind how blockchain works. You will learn about the key principles that underlie this innovative technology, including decentralization, consensus, and security. We will also delve into the technical details of how blocks are created and added to a blockchain, and how transactions are validated and processed.
Next, you will have the opportunity to put your knowledge into practice by building a blockchain from scratch in Javascript. This hands-on activity will give you a deep understanding of how a blockchain functions at a technical level.
Following this, you will learn about peer-to-peer networks and how they are used to facilitate communication and data transfer in decentralized systems. You will also have the chance to build a simple peer-to-peer network as a way of reinforcing your understanding of this important concept.
Then, you will learn how to implement a blockchain application on a peer-to-peer network, where multiple nodes are connected and can perform transactions with one another. This will give you the opportunity to apply your knowledge of blockchain technology and peer-to-peer networks to a real-world scenario.
Our ultimate goal is to make our blockchain support smart contracts. This means that nodes in the network will be able to deploy and execute smart contracts. These contracts will be written in a unique programming language, similar to how Ethereum uses Solidity, and we will have a customized runtime engine for executing these contracts, akin to Ethereum's Ethereum Virtual Machine (EVM).
Outline of the course content:
Introduction to blockchain theory, covering decentralization, consensus, and security.
Technical details on how blocks are created and added to a blockchain, and how transactions are validated and processed.
Hands-on activity building a blockchain from scratch in JavaScript.
Understanding of peer-to-peer networks and how they are used to facilitate communication and data transfer in decentralized systems.
Building a simple peer-to-peer network.
Implementing a blockchain application on a peer-to-peer network, with multiple nodes connected and able to perform transactions with one another.
Introduction to smart contracts, with the goal of making our blockchain support them.
Developing smart contracts using a unique programming language.
Customized runtime engine for executing smart contracts, similar to Ethereum's Ethereum Virtual Machine (EVM).
Overall, this course will provide you with a solid foundation in blockchain technology and give you the skills and knowledge you need to build and implement your own blockchain applications.