A comprehensive blockchain laboratory package with various implementations
Project description
Blockchain Lab Package
A comprehensive Python package containing various blockchain implementations and cryptographic utilities developed for blockchain laboratory exercises.
Features
- RSA Key Generator: Generate RSA key pairs using OpenSSL
- Simple Blockchain: Basic blockchain implementation with proof-of-work
- Wallet Shell: Interactive crypto wallet shell using Web3
- Merkle Blockchain: Advanced blockchain with Merkle tree verification
Installation
Option 1: Install from source
cd blockchain-lab-7th-sem
pip install -e .
Option 2: Install dependencies manually
pip install web3
Usage
Import and use modules
# Import the package
import blockchain_lab_package
# List available modules
blockchain_lab_package.list_modules()
# Print source code of any module
blockchain_lab_package.print_source('simple_blockchain')
# Print all source codes
blockchain_lab_package.print_all_sources()
# Use individual modules
from blockchain_lab_package import simple_blockchain, rsa_key_generator
# Run demonstrations
simple_blockchain.demo()
rsa_key_generator.demo()
Interactive Examples
Simple Blockchain
from blockchain_lab_package.simple_blockchain import Blockchain
# Create a blockchain
chain = Blockchain()
chain.add_block("Alice pays Bob 10 coins")
chain.add_block("Bob pays Charlie 5 coins")
# Validate the chain
print("Valid chain:", chain.is_chain_valid())
RSA Key Generator
from blockchain_lab_package.rsa_key_generator import generate_rsa_keys
# Generate RSA keys
generate_rsa_keys("my_private.pem", "my_public.pem", 2048)
Wallet Shell
from blockchain_lab_package.wallet_shell import start_shell
# Start interactive wallet shell
start_shell()
Merkle Blockchain
from blockchain_lab_package.merkle_blockchain import Blockchain, MerkleTree
# Create advanced blockchain
bc = Blockchain(diff=2)
block = bc.add(["Alice->Bob:5", "Carol->Dave:2"])
# Generate and verify Merkle proof
tree = MerkleTree(block.txs)
proof = tree.proof(0)
is_valid = tree.verify(block.txs[0], proof, tree.root())
Quick Start - Print Source Codes
The primary feature of this package is to easily access and print source codes:
import blockchain_lab_package as blp
# Print specific module source
blp.print_source('rsa_key_generator')
blp.print_source('simple_blockchain')
blp.print_source('wallet_shell')
blp.print_source('merkle_blockchain')
# Or print all at once
blp.print_all_sources()
Requirements
- Python 3.7+
- web3 (for wallet shell functionality)
- OpenSSL (for RSA key generation)
Modules Overview
1. RSA Key Generator (rsa_key_generator)
- Generate RSA public/private key pairs
- Uses OpenSSL for secure key generation
- Configurable key sizes
2. Simple Blockchain (simple_blockchain)
- Basic blockchain implementation
- SHA-256 hashing
- Chain validation
- Genesis block creation
3. Wallet Shell (wallet_shell)
- Interactive command-line wallet
- Web3 integration with Ethereum test provider
- Send/receive transactions
- Balance checking
- Block inspection
4. Merkle Blockchain (merkle_blockchain)
- Advanced blockchain with Merkle trees
- Proof-of-work mining
- Transaction verification
- Merkle proof generation and verification
License
MIT License
Author
Blockchain Lab - Educational Implementation
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file blockchain_lab_package-1.0.0.tar.gz.
File metadata
- Download URL: blockchain_lab_package-1.0.0.tar.gz
- Upload date:
- Size: 9.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f34e85284a952df23df825c6fa3b8ae3236e31c2712990a053cbcab0f74b938d
|
|
| MD5 |
7bdc654a23e0b83dbd1a621d8ce082b8
|
|
| BLAKE2b-256 |
3a4a7191e5ed95003f00fc9eebb72443bd1f5c1a341a00bd7736917af612a1cd
|
File details
Details for the file blockchain_lab_package-1.0.0-py3-none-any.whl.
File metadata
- Download URL: blockchain_lab_package-1.0.0-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b60bd0c376ff1d53430632a98f8f761a6896bc647d2328503eee44573478c924
|
|
| MD5 |
fa2f44d83c227729f43cd6c21674d316
|
|
| BLAKE2b-256 |
efe898e29e6de12065b3f1b205bd9789750aa97c4e5263a6c1f14995d32f4bf5
|