Skip to content

douglas-vitoriano/immaculate_chain

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Immaculate - Mini Blockchain

Immaculate is a simple blockchain implementation written in Rust, focused on learning and practicing concepts of cryptography and decentralized networks. This mini blockchain uses the secp256k1 library for public/private key generation, message signing, and block mining through Proof-of-Work (PoW).

Features

  • Wallet Generation: Create a digital wallet with private key, public key, and address.
  • Message Signing: Allows signing messages using the private key of the wallet.
  • Block Mining: The blockchain mines blocks using Proof-of-Work.
  • Block Structure: Each block contains information such as index, timestamp, data, previous hash, block hash, and nonce.

How to Run Locally

Prerequisites

Before running the project, you need to have the following installed:

Steps to Start

  1. Clone the repository:

    git clone https://github.com/your-username/immaculate.git
    cd immaculate
  2. Build the project:

  • If it's your first time compiling the project, run the following command to compile the dependencies:
    cargo build --release
  1. Run the application:
  • To run the project, simply execute:
    cargo run

This will generate a wallet with a private key, public key, and address, sign a message, and mine some blocks.

Code Structure

  • src/wallet.rs: Implementation of wallet generation and message signing.
  • src/chain.rs: Blockchain implementation, with block miners and data structure.
  • src/blocks.rs: Definition of the block model and block data structure.
  • src/main.rs: The entry point for running the application, generating the wallet, signing a message, and mining blocks.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages