Skip to content

This project is a foundational blockchain application, simulating Bitcoin's core functionalities, designed for educational purposes and future scalability, including blockchain visualization and transaction handling.

Notifications You must be signed in to change notification settings

Screpuh/simple-btc-blockchain

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple Bitcoin Blockchain

Introduction

This project introduces an initial, simplified implementation of blockchain technology, designed with scalability in mind to accommodate the integration of more complex features in future updates.

Currently, the system encompasses:

  • A Blockchain structure, encapsulating the entire chain.
  • Individual Blocks, characterized by attributes such as height, previousHash, timestamp, hash, nonce, and data.

Upon execution, the software automatically generates a new blockchain, initializing it with a genesis block—the very first block in the chain.

Subsequently, the program undertakes the creation and mining of three new blocks. Each block undergoes a mining process until a valid proof of work is discovered, after which it is appended to the blockchain.

Features

  • View Blockchain: Allows users to view the current state of the blockchain.
  • Validate Blockchain: Offers functionality to validate the integrity of the current blockchain.
  • Add New Block: Users can add a new block to the blockchain.

Setup

To get started with this dashboard, follow these steps:

  1. Ensure you have node installed.
  2. Clone this repository to your local machine.
  3. Start your server and ensure it's running on http://localhost:8000 to access the dashboard.

Usage

To use the dashboard:

  1. Select the desired action from the URL dropdown.
  2. Choose the method (GET or POST) based on the action.
  3. If adding a new block (and the method is POST), enter the required data in the Data field.
  4. Click the "Send Request" button to execute the action.
  5. The response from the server will be displayed in the response container below the form.

License

This project is licensed under the MIT License.

Future steps

  1. Create a peer-to-peer network.
  2. Make the blockchain distributed with a concensus algorithm that can handle forks.
  3. Create a mempool for nodes where we can send data and for each new block this data will be included.
  4. Create a currency and reward miners for block proof. Coinbase.
  5. Add transactions. (format, UTXOs, merkle trees, UTXO storage)
  6. Signing transactions. (private/public keys, wallets)
  7. Transaction validation. (syntax, signature, double spending, verification, transaction fees, script execution)
  8. Create SVPs

Somewhere down the line: Create a React project to display everything that is happening on a node.

About

This project is a foundational blockchain application, simulating Bitcoin's core functionalities, designed for educational purposes and future scalability, including blockchain visualization and transaction handling.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published