onjehdaniel889-ctrl/StrideCredit
GitHub: onjehdaniel889-ctrl/StrideCredit
StrideCredit 是一个基于 Stellar 区块链的去中心化借贷平台,通过将跨境汇款记录铸造成 NFT 来为缺乏传统信用历史的务工人员建立信用评分,实现公平透明的链上贷款。
Stars: 0 | Forks: 0
# StrideCredit
[](https://opensource.org/licenses/ISC)
[](https://nextjs.org/)
[](https://expressjs.com/)
[](https://soroban.stellar.org/)
[](https://stellar.org)
StrideCredit 将汇款历史视为信用记录。跨境务工人员通过每月跨境转账证明其财务可靠性,从而获得公平贷款,无需支付高额掠夺性费用。作为回报,贷方通过 Stellar 网络获得透明的收益。
## ✨ 核心功能
### 借款人
- **信用建设**:将您现有的汇款历史转化为可操作的信用评分。
- **公平利率**:获取透明、非掠夺性利率的贷款。
- **自主托管**:使用 Stellar 钱包完全掌控您的资产。
### 贷方
- **透明收益**:通过向经过审计的借贷池提供流动性来赚取利息。
- **风险评估**:基于可验证的链上汇款证明(Remittance NFT)做出明智决策。
### 技术亮点
- **NFT 抵押品**:Remittance NFT 作为可靠性证明和贷款抵押品。
- **去中心化借贷池**:贷方提供流动性并获得透明收益。
- **透明且可审计**:所有交易和贷款条款均记录在链上。
## 🏗 项目结构
本仓库为 monorepo 结构,包含三个核心包:
- **`backend/`**:Node.js/Express 服务器,提供 API 支持、评分生成和元数据管理。
- **`frontend/`**:Next.js Web 应用程序,为借款人和贷方提供用户界面。
- **`contracts/`**:Soroban(Rust)智能合约,涵盖借贷池、贷款管理和 NFT 抵押品逻辑。
*有关这些组件如何交互的详细信息,请参阅我们的[架构图](ARCHITECTURE.md).*
*新贡献者?请从仓库内 wiki 开始:[docs/wiki/README.md](docs/wiki/README.md).*
## 🛠 技术栈
- **区块链**:[Stellar](https://stellar.org)(Soroban 智能合约)
- **前端**:Next.js 14、React、TypeScript、Tailwind CSS
- **后端**:Node.js、Express、TypeScript、Jest
- **钱包集成**:[Stellar Wallet Kit](https://github.com/stellar/stellar-wallet-kit)(Freighter)
## 🏁 快速开始
### 前置条件
- [Node.js](https://nodejs.org/)(v18 或更高版本)
- [npm](https://www.npmjs.com/) 或 [yarn](https://yarnpkg.com/)
- [Docker & Docker Compose](https://www.docker.com/)(推荐用于简化设置)
- [Rust & Cargo](https://rustup.rs/)(合约开发所需)
- [Soroban CLI](https://soroban.stellar.org/docs/getting-started/setup)(合约部署所需)
- [Stellar 钱包](https://www.stellar.org/ecosystem/wallets)(测试推荐使用 Freighter)
### 使用 Docker 快速开始(推荐)
1. **克隆仓库:**
git clone https://github.com/your-username/stridecredit.git
cd stridecredit
2. **配置环境:**
cp backend/.env.example backend/.env
如需可编辑 `backend/.env`(默认值适用于本地开发)。
3. **启动所有服务:**
docker compose up --build
Docker Compose 使用健康检查以确保服务正常启动:
- PostgreSQL(`db`)通过 `pg_isready` 标记为健康
- 后端在启动前等待 PostgreSQL 健康,运行 `npm run migrate:up`,然后启动 API
- 后端容器通过每 10 秒轮询 `GET /health`(3 次重试)标记为健康
4. **访问应用程序:**
- 前端:[http://localhost:3000](http://localhost:3000)
- 后端 API:[http://localhost:3001](http://localhost:3001)
- API 文档:[http://localhost:3001/api-docs](http://localhost:3001/api-docs)
### 手动设置
#### 后端设置
1. **进入后端目录:**
cd backend
2. **安装依赖:**
npm install
3. **配置环境:**
cp .env.example .env
使用您的配置更新 `.env`(至少需要 PostgreSQL 的 `DATABASE_URL`):
CORS_ALLOWED_ORIGINS=http://localhost:3000
PORT=3001
NODE_ENV=development
DATABASE_URL=postgres://postgres:postgres@localhost:5432/stridecredit
4. **应用数据库迁移**(创建 `scores`、`loan_events`、`indexer_state` 等表):
npm run migrate:up
迁移脚本使用冒号形式(`migrate:up` / `migrate:down`),这是标准的 npm 约定。
5. **运行开发服务器:**
npm run dev
6. **可用脚本:**
- `npm run dev` - 启动带热重载的开发服务器
- `npm run build` - 构建生产版本
- `npm start` - 运行生产构建
- `npm test` - 运行测试套件
- `npm run lint` - 检查代码质量
- `npm run format` - 使用 Prettier 格式化代码
#### 前端设置
1. **进入前端目录:**
cd frontend
2. **安装依赖:**
npm install
3. **运行开发服务器:**
npm run dev
4. **访问应用程序:**
在浏览器中打开 [http://localhost:3000](http://localhost:3000)
5. **可用脚本:**
- `npm run dev` - 启动开发服务器
- `npm run build` - 构建生产版本
- `npm start` - 运行生产构建
- `npm run lint` - 检查代码质量
#### 智能合约设置
1. **安装 Rust 和 wasm32 目标:**
rustup target add wasm32-unknown-unknown
2. **安装 Soroban CLI:**
cargo install --locked soroban-cli
3. **进入合约目录:**
cd contracts
4. **构建所有合约:**
cargo build --target wasm32-unknown-unknown --release
5. **运行测试:**
cargo test
6. **部署到测试网(示例):**
部署前,请使用 [Stellar Friendbot](https://friendbot.stellar.org/?addr=) 为您的测试网账户充值。
soroban contract deploy \
--wasm target/wasm32-unknown-unknown/release/loan_manager.wasm \
--source \
--rpc-url https://soroban-testnet.stellar.org \
--network-passphrase "Test SDF Network ; September 2015"
## 🗺 路线图
- [ ] **真实汇款提供商集成** — 连接 Wise 和 Western Union API 的实时数据,替代模拟历史记录。
- [ ] **移动钱包支持** — 扩展 Stellar Wallet Kit 集成,支持移动优先的 Freighter 和 LOBSTR 流程。
- [ ] **争议解决 UI** — 通过面向借款人的仪表板面板展示现有的链上争议合约。
- [ ] **主网部署** — 审计合约并从 Stellar 测试网迁移到公共网络。
### 快速贡献指南
1. Fork 本仓库。
2. 创建功能分支(`git checkout -b feature/amazing-feature`)。
3. 进行更改并提交(`git commit -m 'Add amazing feature'`)。
4. 推送到您的分支(`git push origin feature/amazing-feature`)。
5. 提交 Pull Request。
## 📄 许可证
本项目基于 ISC 许可证授权。详情请参阅 `LICENSE` 文件。
标签:DeFi借贷池, DNS解析, Express, MITM代理, NFT抵押, Rust, Soroban, Stellar, Web3金融服务, 信用评分, 加密借贷, 区块链, 去中心化借贷, 去中心化身份, 去中心化金融, 可视化界面, 开源项目, 无剥削贷款, 普惠金融, 智能合约, 替代性信用评分, 汇款历史转信用记录, 测试用例, 移民工人金融包容, 网络流量审计, 自动化攻击, 自托管钱包, 请求拦截, 跨境汇款, 透明利率, 透明收益, 链上可审计