-
Chaincode (Smart Contract)
-
chaincode/hash-chaincode/package.json -
chaincode/hash-chaincode/index.js -
chaincode/hash-chaincode/lib/chaincode.js - Functions: recordFile, verifyFile, fileExists, getAllFiles
-
-
Backend API
-
backend/package.json -
backend/src/app.js- Main Express application -
backend/src/fabricClient.js- Hyperledger Fabric integration -
backend/src/minioClient.js- MinIO object storage integration -
backend/src/utils.js- Utility functions (hashing, formatting)
-
-
Configuration
-
.env.example- Environment variables template -
backend/.env- Default environment configuration -
.gitignore- Git ignore rules -
docker-compose.yml- MinIO container setup
-
-
GET /health- Health check -
POST /upload- Upload file and record on blockchain -
GET /verify/:fileID- Verify file integrity -
GET /files- List all files -
GET /file/:fileID- Get file metadata
-
tests/tamper-test.sh- Tamper detection test -
tests/api-test.sh- API endpoint tests -
backend/scripts/benchmark.sh- Performance benchmarking -
backend/scripts/enrollUser.js- User enrollment script - Sample test files in
tests/sample-files/
-
README.md- Main project documentation -
SETUP.md- Detailed setup instructions -
fabric/README-FABRIC.md- Fabric network setup -
docs/evaluation-plan.md- Testing and evaluation methodology -
hyperledger_fabric_min_io_prototype_readme.md- Original specification
-
start.sh- Quick start script -
package.json- Root package.json with convenience scripts
- Docker & Docker Compose
- Node.js v18+
- Git
- cURL (for testing)
- (Optional) jq for JSON parsing
- MinIO container running (
docker-compose up -d) - MinIO accessible at http://localhost:9000
- MinIO Console accessible at http://localhost:9001
- Login credentials working (minioadmin/minioadmin)
- Downloaded fabric-samples repository
- Downloaded Fabric binaries and Docker images
- Test network started (
./network.sh up createChannel) - Peer and orderer containers running
- CA containers running
- Chaincode dependencies installed (
cd chaincode/hash-chaincode && npm install) - Chaincode deployed to test network (
./network.sh deployCC) - Chaincode container running (dev-peer*)
- Backend dependencies installed (
cd backend && npm install) -
.envfile created and configured - Connection profile copied from test-network
- User identity enrolled (
node scripts/enrollUser.js) - Wallet directory created with appUser identity
- Backend server starts successfully (
npm start) - Health endpoint responds (
curl http://localhost:3000/health) - File upload works
- File verification works
- Tamper detection works
- All API tests pass
- Upload a small file (< 1KB)
- Upload a medium file (1-10MB)
- Upload a large file (> 10MB)
- Verify file integrity (should pass)
- Tamper with file and verify (should fail)
- List all files
- Get specific file metadata
- Measure upload latency (1KB, 10KB, 100KB, 1MB, 10MB)
- Measure verify latency
- Test with 10 concurrent users
- Test with 50 concurrent users
- Test with 100 concurrent users
- Record throughput (TPS)
- Tamper detection works 100%
- Blockchain records are immutable
- Hash mismatches are detected
- Audit trail is maintained
- System handles multiple files
- Storage overhead is reasonable
- Database growth is predictable
- System recovers from failures
- Add API authentication (JWT tokens)
- Implement file deletion
- Add file versioning
- Improve error messages
- Add request validation
- Add rate limiting
- Multi-organization support
- Client-side encryption
- File access control (permissions)
- Web UI for file management
- Automated backup and recovery
- Advanced monitoring and alerting
- Integration with public blockchain
- Decentralized storage (IPFS)
- Smart contract upgrades
- Compliance reporting
- Enterprise integration
- Production deployment guide
- Check SETUP.md for common issues
- Review logs in
docker logs <container> - Verify all prerequisites are installed
- Ensure all containers are running
- Check network connectivity
The prototype is considered successful if:
-
✅ All core functionality works:
- File upload
- Hash recording on blockchain
- File verification
- Tamper detection
-
✅ Performance is acceptable:
- Upload latency < 5 seconds
- Verify latency < 1 second
- Handles 50+ concurrent users
-
✅ Security is demonstrated:
- 100% tamper detection rate
- Immutable blockchain records
- Cryptographic integrity
-
✅ Documentation is complete:
- Setup instructions work
- API is documented
- Tests are reproducible
-
✅ Evaluation is thorough:
- Performance metrics collected
- Security validated
- Scalability tested
- Results analyzed
Status: ✅ COMPLETE - All components implemented and ready for testing!
Last Updated: October 7, 2025