Blockchain
This project is primarily made to learn Blockchain and Cryptocurrency Technology.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
About The Project
In this project you will see all of the following concepts and the blockchain will have all of the following features below:
Blockchain Essentials
- A Proof-of-Work Algorithm to secure the network.
- Hashing algorithms to secure the data within the blockchain we are using SHA256 algotithm for hashing.
- Mine (to create) new blocks that contain transaction data.
- Create transactions and store them in blocks.
- An API/server to interact with the blockchain from the internet (We are using localhost for demo).
- Hosted on a decentralized blockchain network.
- A consensus algorithms, verifying that the network nodes have valid data and are synchronized.
- A broadcasting system, keeping the data in the blockchain network synchronized.
Built With
This section lists major frameworks that built this project using.
Getting Started
This project can run locally or on a server setting up your project locally is very easy. To get a local copy up and running follow these simple steps below.
Prerequisites
For this project nodejs is must. The official link to download and install nodejs is nodejs.org/en/download/current
- npm
npm install npm@latest -g
Installation
Installation of this project is easy.
- Clone the repo
git clone https://github.com/mascarenhasneil/blockchain.git
- Install NPM packages - this will install all dependencies
npm install
Usage
Using this app and starting your own block chain is very easy.
- I have pre-created 5 nodes for this network. If needed you can add more. Do this by addding this to package.json file. For example:
node_<Number>": "nodemon --watch dev -e js dev/api.js <Port Number> http://localhost:<Port Number>"
- We need to run each node in different terminal so to create a network. To start the node enter this command. For node 1:
npm run node_1
Follow this by replacing the number of each node till all nodes are running.
- I need a break, having a coffee. brb
Roadmap
See the open issues for a list of proposed features (and known issues).
Contributing
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
License
Distributed under the MIT License. See LICENSE for more information.
Contact
Neil Mascarenhas - About me?
Project Link: https://github.com/mascarenhasneil/Blockchain
Acknowledgements
- BC - also known as Blockchain Community blockchain.community
- Book: Blockchain: Blueprint for a New Economy- Book by Melanie Swan. You can buy book here - no strings attached.
- Book: Blockchain Basics: A Non-Technical Introduction in 25 Steps- Book by Daniel Drescher
- Eric Traub - codingjavascript.com
- Hasib Anwar - 101blockchains.com