Skip to content

开发文档

版本号修改修改时间备注
v1.0.0王小琱2024.12.20初次修订
v1.0.1王小琱2025.5.20完善细节

1. 项目简介

  • 服务名称exchange-elliptic-bridge-backend
  • 服务描述:本项目旨在为交易所和金融业务提供合规分析能力,帮助快速完成用户KYA/KYT信息查询和报告获取。
  • 所属模块:基础服务组件。
  • 负责人:王小琱(wang746277441@gmail.com

2. 功能描述

  • 给定任意用户的钱包地址,查询其 KYA 信息。
  • 给定区块链上的交易哈希,查询其 KYT 信息。
  • 给定报告ID,查询其 KYA/KYT 详细信息。

3. 系统架构

3.1 主要技术栈

备注:以上技术栈仅为示例,具体版本以项目中的依赖文件为准。详见go.mod文件。

3.2 架构图

3.3 架构概括

  • 业务层(Business Layer)

    包含 Risk Service,负责业务风控逻辑,向内部服务提供风控能力。

  • 基础服务层(Infrastructure Layer)

    包含 Elliptic Bridge,专注于提供 KYT(Know Your Transaction)/ KYA(Know Your Address)等底层监测和反洗钱服务,供业务层调用。

3.4 业务流程

3.4.1 查询KYA/KYT流程

3.4.2 查询报告流程

4. 依赖组件

组件版本说明
MySQL8.x关系型数据库
Elliptic-KYT/KYA服务提供商

5. 接口设计

接口文档

使用make doc可以重新生成接口文档。

6. 数据库设计

数据库设计文档

7. 项目部署

部署文档

8. 错误码定义

错误码错误信息说明
ErrCallElliptic请求失败调用Elliptic失败
ErrSystem内部错误内部服务调用失败
ErrGetEllipticReport获取失败报告内容格式错误

9. FAQ

1. reportIdscreeningId的区别是什么?

  • reportId是报告ID,screeningId是筛选ID。reportId是跟着addressTxHash走的,screeningId是跟着查询走的,意思就是相同的addressTxHashreportId是一样的,但是screeningId是不一样的。

2. riskScore的取值范围是多少?

  • riskScore的取值范围是0-10,0表示风险最低,10表示风险最高。

3. blockchain值如何选择?

  • blockchain值可以参考Elliptic API文档的API文档,如果你不确定,可以使用HOLISTIC

4. 查询返回空数据?

  • 确认请求参数(地址、交易哈希、报告ID)正确;
  • 如果为 KYA/KYT 报告ID查询,请先确保报告数据已经同步到数据库。

5. 访问 Elliptic API 超时或失败?

  • 检查 Elliptic API Key 是否正确配置;
  • 检查 Elliptic API URL 是否正确配置;
  • 查看服务日志,排查请求参数或超时时间设置。

6. 如何找到接口文档?

  • DDL文件中有接口描述,可以参考DDL文件

10. 参考资料

11. 致谢

感谢 elliptic 提供的 API 服务。

🚀 构建现代化数字资产交易平台