BlockLedger is a Java-based blockchain implementation that demonstrates the fundamental concepts of blockchain technology, including wallet creation, transaction processing, and block mining. This project serves as an educational tool for understanding the mechanics of cryptocurrencies and distributed ledger systems.
- Wallet Generation: Create unique wallets with public and private key pairs for secure transactions.
- Transaction Management: Facilitate transactions between wallets, including signature generation and verification to ensure authenticity.
- Block Mining: Implement a proof-of-work consensus mechanism to mine new blocks and add them to the blockchain.
- Blockchain Validation: Verify the integrity of the blockchain by checking hashes and ensuring no tampering has occurred.
To set up BlockLedger locally, follow these steps:
-
Clone the repository:
git clone https://github.com/Sam-Orion/BlockLedger.git
-
Navigate to the project directory:
cd BlockLedger -
Build the project using Gradle:
Ensure you have Gradle installed. Then, run:
gradle build
To run the BlockLedger application:
-
Execute the main class:
java -cp build/classes/java/main noobchain.Main
-
Observe the console output:
The application will generate wallets, perform transactions, mine blocks, and display the blockchain status in the console.
Contributions to BlockLedger are welcome. To contribute:
-
Fork the repository.
-
Create a new branch:
git checkout -b feature/your-feature-name
-
Make your changes.
-
Commit your changes:
git commit -m "Add your commit message here" -
Push to your branch:
git push origin feature/your-feature-name
-
Create a Pull Request detailing your changes.
This project is licensed under the MIT License. See the LICENSE file for more details.
- Inspired by educational resources on blockchain technology and Java programming.
- Utilizes the Bouncy Castle library for cryptographic functions.