TimeLock 是一个基于区块链的去中心化文件时间戳服务,允许用户将文件哈希值记录到区块链上,以证明文件在特定时间点的存在。
- 🔐 文件哈希生成: 本地计算SHA-256哈希值,保护隐私
- ⏰ 区块链时间戳: 将哈希值记录到Polkadot/Substrate区块链
- ✅ 哈希验证: 验证文件是否已上链并获取时间戳
- 💰 费用管理: 透明的费用计算和支付系统
- 🦊 钱包集成: 支持Polkadot.js钱包扩展
- 🌐 多网络支持: 支持多个测试网络(Shibuya、Rococo、Astar)
- 📊 统计面板: 实时显示合约使用统计
- 📚 历史记录: 本地保存操作历史
- 🎭 演示模式: 完整的模拟体验,无需真实代币
- 语言: Rust + Ink! 4.3.0
- 区块链: Polkadot/Substrate
- 功能: 文件哈希存储、时间戳记录、费用管理
- 框架: React 18 + TypeScript
- 样式: CSS3 + 响应式设计
- 钱包: Polkadot.js Extension
- 构建: Create React App + CRACO
- 语言: Rust + Subxt
- 功能: 自动化合约部署到测试网络
- Node.js 16+
- Rust 1.70+
- cargo-contract 3.2.0
- Polkadot.js Extension
- 克隆仓库
git clone https://github.com/Carl7702/ZKP_Mate.git
cd ZKP_Mate- 启动前端
cd frontend
npm install
npm start- 访问应用 打开浏览器访问 http://localhost:3000
应用默认运行在演示模式下,提供完整的用户体验:
- 模拟区块链交互
- 无需真实代币
- 完整功能演示
- 拖拽或选择文件
- 自动生成SHA-256哈希值
- 显示费用估算
- 安装Polkadot.js Extension
- 连接钱包账户
- 查看账户余额
- 确认费用信息
- 签名交易
- 等待区块链确认
- 输入文件哈希值
- 查询区块链记录
- 获取时间戳信息
项目支持多种部署方式:
- Vercel (推荐):
npx vercel --prod - Netlify:
npx netlify deploy --prod --dir=build - GitHub Pages: 推送到gh-pages分支
- Surge:
npx surge build
使用提供的部署脚本:
cd scripts
cargo run --bin deploy_testnettimelock/
├── contract/ # 智能合约
│ ├── src/
│ │ └── lib.rs # 合约主逻辑
│ └── Cargo.toml
├── frontend/ # 前端应用
│ ├── src/
│ │ ├── components/ # React组件
│ │ ├── services/ # 服务层
│ │ └── utils/ # 工具函数
│ └── package.json
├── scripts/ # 部署脚本
│ ├── src/
│ │ └── main.rs # 部署主程序
│ └── Cargo.toml
└── README.md
支持多个测试网络:
- Shibuya: 日本测试网络
- Rococo: Polkadot测试网络
- Astar: Astar测试网络
- 默认价格: 1000 wei/字节
- 可配置的价格策略
- 透明的费用计算
- ✅ 本地哈希计算: 文件不会上传到服务器
- ✅ 钱包安全: 使用官方Polkadot.js扩展
- ✅ 数据隐私: 只有哈希值被记录
- ✅ 去中心化: 基于区块链的不可篡改记录
欢迎贡献代码!请遵循以下步骤:
- Fork 项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
- Ink! - 智能合约框架
- Polkadot.js - 区块链交互库
- Subxt - Substrate客户端库
- React - 前端框架
- 项目地址: https://github.com/Carl7702/ZKP_Mate
- 问题反馈: Issues
🌟 现在就体验区块链时间戳服务,让您的文件拥有不可篡改的时间证明!