
Build your own blockchain from scratch using Python and Flask, and develop a peer to peer network to run multiple nodes, broadcast blocks and transactions, and handle mining.
This overview covers setting up Visual Studio and a Python environment, building blocks, private/public keys, transactions, memory pool, mining, and a frontend explorer with peer-to-peer networking.
https://github.com/anni1236012/Advanced-Blockchain-Course---Python
Explore how a memory pool holds validated transactions waiting to be included in a block, as miners validate inputs, check unspent status, and verify signatures.
A 51% attack happens when a malicious actor controls 51% of mining power to reverse transactions and double spend by building the longest chain.
Use requirements.txt to install all the dependencies for this Project as shown in the video
Create a quick blockchain in Python by building block, block header, and blockchain classes, including the genesis block; mine blocks with nonce until four leading zeros, linking via previous hashes.
Implement a disk-based blockchain store with a database module and Blockchain DB class, handling reading, writing, and updating blocks on disk with JSON separation and last-block height/hash.
Unzip the Elleptic Curve Library and copy it as shown in the video.
Create private and public keys, compare compressed and uncompressed keys, and distinguish public key from public address; mainnet public address is user readable, transactions log on public key.
Create a Coinbase transaction by encoding the block height in little endian, deriving hash160 from the miner address, and constructing a pay-to-pubkey-hash script to reward miners with 50.
Refactor the blockchain python code to fetch the last block, handle genesis when the chain is empty, and ensure mining resumes from the last mined block instead of zero.
Verify a transaction by calculating the signature hash, verifying the input with the script public key, and evaluating a stack-based opcode script for pay-to-public-key-hash verification.
Create a memory pool by sharing a dictionary across processes, where verified transactions wait to be included in a block by miners, and the blockchain reads mempool to assemble blocks.
Learn to move transactions from memory pool into a new block, including the Coinbase transaction first, convert transactions to JSON dictionaries, and prepare the Merkle root for mining.
Remove spent transactions from the UTXO list and memory pool; implement logic to delete spent outputs, preserve remaining ones, handle coinbase versus normal transactions, and test by mining blocks.
Define and implement a function to remove transactions from the memory pool once they are added to a block, by reading and deleting their ids from the mempool.
The lecture defines calculate_fee to compute the fee as input minus outputs from prior transactions, then applies it to the coinbase transaction and updates its id.
Build a Flask in Python frontend that reads blockchain data from a file, displays blocks in reverse order, and links to a dynamic block detail page via block hashes.
Design and render the memory pool page to display unconfirmed transactions with details and eta, updating as blocks mine and remove confirmed transactions.
Design a bitcoin address page showing the public address, a QR code, the total transaction count, and the unspent balance, reusing the block detail page code.
Implement a search box that auto-detects blocks, transactions, or addresses from user input by length and leading zeros, routes to the right page, and handles invalid identifiers.
Refactor a blockchain app to handle multiple transactions and enable automatic page refresh by adding a refresh parameter and a ten-second refresh interval, focusing on blockchain.
Explore building a decentralized, peer-to-peer blockchain where miners join and verify blocks, balance data load, perform proof of work, and run a server to listen for requests.
Configure a multi-miner Bitcoin node with a config file to manage localhost and port numbers, and implement a sync manager that requests blocks via a serialized network envelope.
Receive and parse blockchain blocks by implementing parsing functions for blocks, block headers, and transactions in Python, handling read variant and block size, and enabling peer-to-peer data exchange with miners.
Validate each block independently by verifying previous block reference and proof of work, serialize the block, compute and compare the block hash against the target, then add to the chain.
Share the miners list with a newly connected miner to enable a peer-to-peer network where all port numbers are known, using serialized data transmitted alongside blockchain data.
As a developer, learning Blockchain is the best investment you can make. I switched careers from Mainframe to Blockchain developer. Learning a new technology can be intimidating, but trust me, if you join me on this journey, you will not be disappointed. Blockchain is currently a popular skill set. According to Glassdoor, the demand for blockchain-based jobs increased by 600 percent between 2020 and 2021. There is a shortage of Blockchain Developers, and companies are willing to pay high salaries.
This is an excellent time to learn blockchain technology. Blockchain will transform every industry, not just finance, over the next ten years. It is a common misconception that blockchain is only used in banking and finance. Although banking and finance are the most talked about industries, Blockchain is also being used in retail, supply chain, healthcare, and other areas. Blockchain applications are limitless.
In this course, you will learn all of the fundamental Blockchain concepts as well as how to create digital currency similar to Bitcoin. There is no prior Blockchain knowledge required. This course was created with Beginner to Advanced Level learners in mind. Learn Blockchain by creating your own coin from scratch, and you will be able to use that knowledge in your company or to start your own Blockchain start-up after completing this course.
This is a comprehensive Blockchain course in which you will spend 99 percent of your time coding the Blockchain. This course emphasizes Project-based learning over theory. After completing this course, you will be capable of creating your own Blockchain with new rules and applying this knowledge in your professional career. This project can also be added to your portfolio and resume.