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.
- 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.
To get started with this dashboard, follow these steps:
- Ensure you have node installed.
- Clone this repository to your local machine.
- Start your server and ensure it's running on
http://localhost:8000
to access the dashboard.
To use the dashboard:
- Select the desired action from the URL dropdown.
- Choose the method (GET or POST) based on the action.
- If adding a new block (and the method is POST), enter the required data in the Data field.
- Click the "Send Request" button to execute the action.
- The response from the server will be displayed in the response container below the form.
This project is licensed under the MIT License.
- Create a peer-to-peer network.
- Make the blockchain distributed with a concensus algorithm that can handle forks.
- Create a mempool for nodes where we can send data and for each new block this data will be included.
- Create a currency and reward miners for block proof. Coinbase.
- Add transactions. (format, UTXOs, merkle trees, UTXO storage)
- Signing transactions. (private/public keys, wallets)
- Transaction validation. (syntax, signature, double spending, verification, transaction fees, script execution)
- Create SVPs
Somewhere down the line: Create a React project to display everything that is happening on a node.