mascarenhasneil / Blockchain

This project is primarily made to learn Blockchain and Cryptocurrency Technology. It's internal working, how it's set up, and features.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Contributors Forks Stargazers Issues MIT License LinkedIn


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.

  1. Clone the repo
git clone https://github.com/mascarenhasneil/blockchain.git
  1. Install NPM packages - this will install all dependencies
npm install

Usage

Using this app and starting your own block chain is very easy.

  1. 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>"
  1. 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.

  1. 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.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. 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

About

This project is primarily made to learn Blockchain and Cryptocurrency Technology. It's internal working, how it's set up, and features.

License:MIT License


Languages

Language:JavaScript 72.5%Language:HTML 27.5%