Skip to content

Source Code for my blog post: A Practical Introduction to Blockchain with Python

License

Notifications You must be signed in to change notification settings

adilmoujahid/blockchain-python-tutorial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Blockchain Python tutorial

Important: This project is for educational purposes only and the source code shouldn't be use in production as it doesn't have good security, doesn't scale well and lacks many important features.

The github repository contains a basic implementation of a blockchain and its client using Python. This blockchain has the following features:

  • Possibility of adding multiple nodes to the blockchain
  • Proof of Work (PoW)
  • Simple conflict resolution between nodes
  • Transactions with RSA encryption

The blockchain client has the following features:

  • Wallets generation using Public/Private key encryption (based on RSA algorithm)
  • Generation of transactions with RSA encryption

This github repository also contains 2 dashboards:

  • "Blockchain Frontend" for miners
  • "Blockchain Client" for users to generate wallets and send coins

Dependencies

How to run the code

  1. To start a blockchain node, go to blockchain folder and execute the command below: python blockchain.py -p 5000
  2. You can add a new node to blockchain by executing the same command and specifying a port that is not already used. For example, python blockchain.py -p 5001
  3. TO start the blockchain client, go to blockchain_client folder and execute the command below: python blockchain_client.py -p 8080
  4. You can access the blockchain frontend and blockchain client dashboards from your browser by going to localhost:5000 and localhost:8080

Visit my Blog : http://adilmoujahid.com

About

Source Code for my blog post: A Practical Introduction to Blockchain with Python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published