A decentralized version control system inspired by Git, but powered by blockchain and IPFS. Features cost-optimized local commits with efficient blockchain checkpoints.
π¦ NPM Package Users: After installing via npm, BVC works out-of-the-box with Sepolia testnet! Just run
bvc config --setupto get started. No local blockchain deployment needed.
- π Decentralized: No central server required
- βοΈ Blockchain-powered: Immutable commit history on Ethereum
- π IPFS storage: Decentralized file storage
- π° Cost Optimized: Local commits (free) + blockchain checkpoints (efficient)
- π Cryptographically secure: SHA256 file hashing
- π» Git-like CLI: Familiar commands and workflows
- π Multi-network: Supports Sepolia testnet, local dev, and mainnet
- β©οΈ Version Revert: Revert to any previous commit state
npm install -g bvc-eth
bvc config --setup # Quick setup wizardnpm install bvc-eth
npx bvc config --setup # Quick setup wizardgit clone https://github.com/Lviffy/BVC.git
cd BVC
npm install
npm link # or use: node bin/bvc.js# Global installation
bvc config --setup
# Local installation
npx bvc config --setupWhat you'll need:
- Ethereum wallet private key (create a new one for testing!)
- Network choice (Sepolia testnet recommended for beginners)
- Test ETH from Sepolia Faucet (free!)
bvc init my-project
cd my-projectbvc add README.md
bvc commit -m "Initial commit"bvc pushbvc log # View commit history
bvc revert <commit-hash> # Revert to any previous versionBVC is designed for cost efficiency:
bvc add file.js
bvc commit -m "Add feature" # No gas fees!bvc checkpoint --message "Batch multiple commits" # Single transactionBenefits:
- β Unlimited local commits (0 gas fees)
- β Batch commits into single blockchain transaction
- β 50-90% gas savings vs individual commits
- β Full Git-like workflow
bvc init my-project # Create blockchain repository
bvc init --local-only my-repo # Create local repository only
bvc init --interactive # Interactive setup
bvc init --upgrade-blockchain # Upgrade local repo to blockchainbvc config --setup # Interactive setup
bvc config --private-key <key> # Set wallet private key
bvc config --rpc-url <url> # Set blockchain RPC
bvc config --ipfs-endpoint <url> # Set IPFS endpoint
bvc config --show # Show current configbvc clone 12345abc... # Clone by repository IDbvc status # Show staged/untracked filesbvc add file.js # Add single file
bvc add . # Add all files
bvc add *.js # Add with glob patternsbvc commit -m "Add feature" # Local commit (free)
bvc commit --blockchain -m "msg" # Direct blockchain commitbvc revert 436b0deb # Revert to specific commit
bvc revert abc123 --force # Force revert (overwrite changes)
bvc revert def456 --no-backup # Skip backup creationbvc push # Push individual commitsbvc checkpoint --message "Batch" # Batch multiple commits
bvc checkpoint --dry-run # Preview cost savingsbvc pull # Fetch from blockchain/IPFSbvc log # Show commit history
bvc log --checkpoints # Show checkpoint historybvc list # Show all repositoriesBVC requires blockchain and IPFS configuration:
- Private Key: Your Ethereum wallet private key
- RPC URL: Blockchain network endpoint (Sepolia/Mainnet)
- IPFS Endpoint: IPFS node for file storage
bvc config --setupThis will prompt for:
- Wallet private key (keep secure!)
- Blockchain RPC URL
- IPFS endpoint URL
# Setup
bvc config --setup
# Create repository
bvc init my-app
cd my-app
# Development (free local commits)
echo "console.log('Hello');" > app.js
bvc add app.js
bvc commit -m "Add basic app"
echo "console.log('Hello World');" > app.js
bvc add app.js
bvc commit -m "Improve greeting"
# Efficient blockchain sync
bvc checkpoint --message "Initial app development"# Traditional approach (expensive)
bvc commit --blockchain -m "commit 1" # Gas fee #1
bvc commit --blockchain -m "commit 2" # Gas fee #2
bvc commit --blockchain -m "commit 3" # Gas fee #3
# BVC approach (efficient)
bvc commit -m "commit 1" # Free
bvc commit -m "commit 2" # Free
bvc commit -m "commit 3" # Free
bvc checkpoint --message "All commits" # Gas fee #1 only# View commit history
bvc log
# Revert to previous version
bvc revert 436b0deb # Revert to specific commit
bvc status # Check restored files
# Continue development
bvc add . && bvc commit -m "Fix after revert"my-project/
βββ .bvc/
β βββ config.json # Repository configuration
β βββ commits.json # Local commit history
β βββ staging.json # Staged files
β βββ user-config.json # User blockchain config
βββ .bvcignore # Ignore patterns
βββ README.md # Project files
- Local Commits: Files hashed and stored locally
- IPFS Upload: File contents uploaded to IPFS on checkpoint
- Blockchain Anchor: Commit metadata anchored on Ethereum
- Merkle Proofs: Cryptographic integrity verification
# Solution: Configure blockchain first
bvc config --setup# Install IPFS
# Option 1: Use public gateway
bvc config --ipfs-endpoint https://ipfs.infura.io:5001
# Option 2: Run local IPFS node
ipfs daemon- Ensure repository was created with
bvc init - Check repository ID with
bvc status
- Sepolia Testnet: For testing (recommended)
- Ethereum Mainnet: For production use
- IPFS: For decentralized file storage
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
MIT License - see LICENSE file for details.
- Quick Start Guide - 5-minute setup and basic usage
- Usage Examples - Real-world scenarios and workflows
- Cost Optimization Guide - Save 50-90% on gas fees
- Key Features:
- β Local commits (free)
- β Blockchain checkpoints (efficient batching)
- β IPFS integration
- Command Reference - Complete command documentation
- Technical Architecture - System design and internals
- RPC Guide - Blockchain network configuration
- Sepolia Deployment - Testnet deployment guide
echo "console.log('Hello BVC!');" > index.js
bvc-eth add index.js
bvc-eth commit -m "Initial commit"bvc-eth pushbvc-eth log# Share your repository ID with others
bvc-eth list --mine
# Others can clone your repository
bvc-eth clone <your-repo-id>
# Pull latest changes
bvc-eth pull| Command | Description | Status |
|---|---|---|
bvc-eth init [name] |
Create new repository | β Working |
bvc-eth config |
Configure wallet/blockchain | β Working |
bvc-eth add <files> |
Stage files for commit | β Working |
bvc-eth commit -m "msg" |
Create commit with IPFS upload | β Working |
bvc-eth status |
Show repository status | β Working |
bvc-eth log |
View commit history | β Working |
bvc-eth push |
Push commits to blockchain | β Working |
bvc-eth pull |
Pull commits from blockchain | β Working |
bvc-eth clone <id> |
Clone repository from blockchain | β Working |
bvc-eth checkpoint |
Create commit batches | β Working |
bvc-eth list |
List all repositories | β Working |
BVC requires configuration for blockchain and IPFS integration:
bvc config --setupRequired settings:
- Private Key: Your wallet private key
- RPC URL: Blockchain RPC endpoint (Sepolia, Mainnet, etc.)
- IPFS Endpoint: IPFS node URL
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β BVC CLI βββββΆβ Smart Contract βββββΆβ Blockchain β
β (Commander) β β (Solidity) β β (Ethereum) β
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β β β
βΌ βΌ βΌ
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β Local Storage β β File Hashing β β IPFS β
β (.bvc/) β β (SHA256) β β (Distributed) β
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
npm testMIT Β© Lviffy
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- π§ Issues: GitHub Issues
- π Documentation: Command Guide
- π Website: GitHub Repository