Skip to main content

Educational blockchain implementations with source code printing functionality and Solidity contracts

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
  • Solidity Contracts: Smart contracts including BalanceTransfer and LabCoin

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()

# Print Solidity contracts
blockchain_lab_package.print_solidity_contracts()

# Use individual modules
from blockchain_lab_package import simple_blockchain, rsa_key_generator, solidity_contracts

# Run demonstrations
simple_blockchain.demo()
rsa_key_generator.demo()
solidity_contracts.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')
blp.print_source('solidity_contracts')

# Print Solidity contracts only
blp.print_solidity_contracts()

# 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

5. Solidity Contracts (solidity_contracts)

  • Smart contract source codes
  • BalanceTransfer contract for Ether transfers
  • LabCoin ERC-20 style token contract
  • Contract deployment templates

License

MIT License

Author

Blockchain Lab - Educational Implementation

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

blockchain_lab_educational-1.1.0.tar.gz (10.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

blockchain_lab_educational-1.1.0-py3-none-any.whl (12.6 kB view details)

Uploaded Python 3

File details

Details for the file blockchain_lab_educational-1.1.0.tar.gz.

File metadata

File hashes

Hashes for blockchain_lab_educational-1.1.0.tar.gz
Algorithm Hash digest
SHA256 2215e3ca63496188985bc7e5eb6d27c64c3af55c07bcd92abec04091a2f48d48
MD5 b7222ea969cce67ced1d19e87d211c87
BLAKE2b-256 3b87858ff16d8f178bb5d5f8af6b4892656d55bbe3d3f05f2cb9fb693c5fa8d1

See more details on using hashes here.

File details

Details for the file blockchain_lab_educational-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for blockchain_lab_educational-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 287a9edd122930aa904b9abbdd9b85c5fc74b1e770be6884af3ce52d3ac4b770
MD5 4edbfda32a2bde669f9c413257bb54cf
BLAKE2b-256 9964d019b79c2a06cc18dec0499c1aeb49576702558fbaf8efd51a885ec7c106

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page