Skip to content

Repository files navigation

⚡ instantContract

一个基于 Web3 技术的即时合约交易平台,提供高效、安全的加密货币合约交易服务。

📋 项目概述

instantContract 是一个完整的去中心化金融(DeFi)交易平台,专注于提供即时合约交易服务。平台采用现代化的微服务架构,结合区块链技术和传统金融交易模式,为用户提供安全、高效、透明的交易体验。

✨ 核心功能

交易功能

  • 🔄 即时合约交易:支持多种加密货币对的合约交易
  • 📊 实时市场数据:提供实时价格行情和K线图表
  • 🎯 价格目标设置:允许用户设置价格目标,自动执行交易
  • ⚖️ 滑点配置:灵活的滑点设置,优化交易执行
  • 📈 AI 预测功能:基于人工智能的价格预测服务

资产管理

  • 💰 多钱包支持:支持 Metamask、TokenPocket 等主流钱包
  • 💳 资产查询:实时查询账户余额和交易记录
  • 📝 充值提现:安全的充值和提现功能
  • 🛡️ 保险钱包:提供额外的资产保障

管理后台

  • 🧑‍💼 用户管理:全面的用户管理功能
  • 📊 数据分析:详细的交易数据分析和统计
  • ⚙️ 系统配置:灵活的系统参数配置
  • 📝 日志记录:完整的操作日志和审计

技术特性

  • 🚀 高性能:采用微服务架构,支持高并发交易
  • 🔒 安全性:多层安全机制,保护用户资产和数据
  • 🌐 去中心化:基于区块链技术,确保交易透明和不可篡改
  • 📱 响应式设计:适配各种设备尺寸

🛠️ 技术栈

后端

  • 语言:Python 3.11+
  • 框架:FastAPI
  • 数据库:PostgreSQL
  • ORM:SQLAlchemy
  • 消息队列:Redis + Celery
  • API文档:Swagger UI + ReDoc

前端

  • 框架:React 18
  • 语言:TypeScript
  • 构建工具:Vite
  • UI组件:自定义组件库
  • Web3库:Ethers.js

价格引擎

  • 语言:Python 3.11+
  • 数据源:Binance WebSocket API
  • 缓存:Redis

部署

  • 容器化:Docker
  • 编排工具:Docker Compose
  • CI/CD:Gitea Actions

📦 项目结构

instantContract/
├── backend/             # 后端服务
│   ├── api/             # API 路由
│   ├── middleware/      # 中间件
│   ├── models/          # 数据库模型
│   ├── schemas/         # 数据模式
│   ├── services/        # 业务逻辑
│   ├── tasks/           # Celery 任务
│   ├── tests/           # 测试用例
│   ├── utils/           # 工具函数
│   ├── alembic/         # 数据库迁移
│   └── main.py          # 应用入口
├── frontend/            # 前端应用
│   ├── public/          # 静态资源
│   ├── src/             # 源代码
│   │   ├── components/  # React 组件
│   │   ├── contexts/    # React 上下文
│   │   ├── hooks/       # 自定义钩子
│   │   ├── pages/       # 页面组件
│   │   ├── services/    # API 服务
│   │   └── types/       # TypeScript 类型
│   └── index.html       # HTML 入口
├── price_engine/        # 价格引擎
│   ├── tests/           # 测试用例
│   ├── utils/           # 工具函数
│   └── main.py          # 应用入口
└── docker-compose.yml   # Docker Compose 配置

🚀 快速开始

环境要求

  • Docker 20.10+
  • Docker Compose 2.0+

启动服务

  1. 克隆仓库

    git clone <repository-url>
    cd instantContract
  2. 启动所有服务

    docker compose up -d
  3. 访问应用

停止服务

docker compose down

查看日志

docker compose logs -f

🧪 测试

后端测试

docker compose exec -T backend pytest tests/

前端测试

docker compose run --rm frontend-test npm test

🔧 开发流程

后端开发

  1. 进入容器

    docker compose exec backend bash
  2. 运行数据库迁移

    alembic upgrade head
  3. 添加新的迁移

    alembic revision --autogenerate -m "Add new table"

前端开发

  1. 安装依赖

    cd frontend
    npm install
  2. 启动开发服务器

    npm run dev

📚 文档

🔧 环境变量配置

后端环境变量

复制并编辑 backend/.env 文件(基于 backend/.env.example):

# 数据库配置
DATABASE_URL=postgresql+asyncpg://postgres:orje13cr3nc7cqnaq0sk9no2s2dsqb6u@postgres:5432/instantcontract

# JWT 配置
JWT_SECRET_KEY=your-secret-key-change-in-production
JWT_ALGORITHM=HS256
JWT_ACCESS_TOKEN_EXPIRE_HOURS=24

# 应用配置
APP_NAME=instantContract API
APP_VERSION=1.0.0
FRONTEND_URL=http://localhost:3000

# CORS 配置
CORS_ORIGINS='["http://localhost:3000"]'

# 频率限制
RATE_LIMIT_PER_MINUTE=60

前端环境变量

编辑 frontend/.env.developmentfrontend/.env.production 文件:

# 应用配置
VITE_APP_NAME=instantContract
VITE_APP_VERSION=1.0.0

# API 配置
VITE_API_URL=http://localhost:3001/api/v1

# Web3 配置
VITE_WEB3_PROVIDER_URL=https://mainnet.infura.io/v3/your-infura-key

🐛 故障排查

端口被占用

# 查看占用端口的进程
lsof -i :3001

# 或修改 docker-compose.yml 中的端口

构建失败

# 清理缓存重新构建
docker compose build --no-cache

数据库连接问题

# 检查 PostgreSQL 容器状态
docker compose ps postgres

# 查看数据库日志
docker compose logs postgres

# 测试数据库连接
docker compose exec postgres pg_isready -U postgres

迁移失败

# 查看当前迁移状态
docker compose exec backend alembic current

# 查看迁移历史
docker compose exec backend alembic history

# 重置数据库(警告:会删除所有数据)
docker compose down -v
docker compose up -d postgres
sleep 10
docker compose exec backend alembic upgrade head

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📞 联系方式

如有问题或建议,请通过以下方式联系我们:


⚡ instantContract - 让合约交易更简单、更高效!

下一代 Web3 去中心化交易平台 - 快速、安全、透明

Releases

Packages

Contributors

Languages