samar-syd7/medledger
GitHub: samar-syd7/medledger
基于以太坊智能合约的医疗数据完整性锚定平台,通过链上存证与链下存储分离架构实现医疗数据的防篡改审计。
Stars: 0 | Forks: 0
# MedLedger
区块链锚定的医疗数据完整性平台
MedLedger 是一个面向合规的后端系统,旨在使用 Ethereum 智能合约以加密方式锚定医疗数据完整性。
该平台集成了 HL7、DICOM 和 FHIR 工作流与链上不可变审计日志记录,同时将 PHI(受保护健康信息)保留在链下。
## 概述
医疗系统生成的高价值数据(影像、住院、临床记录)必须具备防篡改和可审计特性。
MedLedger 提供:
- 医疗数据的 SHA-256 哈希处理
- Ethereum 智能合约锚定
- 不可变审计追踪
- 篡改验证引擎
- 访问证明日志记录
- SaaS 风格监控仪表板
该系统展示了适用于注重合规环境的链下存储 + 链上完整性锚定架构。
## 架构
链下数据 → SHA-256 哈希 → 智能合约 (Ethereum) → 不可变记录
医疗数据绝不存储在链上。
仅锚定加密指纹。
详细流程请参见 `/docs/architecture.md`。
## 技术栈
后端: - FastAPI - Web3.py - SHA-256 加密哈希
区块链: - Solidity - Hardhat(本地开发网络) - Ethereum 智能合约
前端: - 基于 Tailwind 的 SaaS 仪表板 - Chart.js 可视化
## 功能特性
- HL7 消息锚定
- DICOM 文件哈希锚定
- FHIR 资源规范化哈希
- 不可变审计日志
- 访问事件证明生成
- 篡改验证端点
- 实时仪表板监控
## 本地设置
### 1. 克隆仓库
```
git clone
cd medledger
```
### 2. 安装 Python 依赖
```
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
```
### 3. 启动本地区块链 (Hardhat)
在 `/blockchain` 目录下:
```
npm install
npx hardhat node
```
重要提示: - 推荐使用 Hardhat v2。 - Node.js 版本高于 20 可能会产生兼容性警告。
### 4. 部署智能合约
在 `/blockchain` 目录下:
```
npx hardhat ignition deploy ./ignition/modules/Lock.js --network localhost
```
复制部署的合约地址并更新到:
`api/blockchain.py`
### 5. 运行后端
从项目根目录:
```
uvicorn api.main:app --reload
```
访问地址:
http://127.0.0.1:8000
Swagger UI: http://127.0.0.1:8000/docs
## 常见设置问题
### Hardhat 版本冲突
如果发生依赖错误:
- 确保安装了 Hardhat v2.x
- 避免混合使用 Hardhat v3 包和 v2 toolbox
- 使用与 ethers v5 兼容的 `@nomiclabs/hardhat-ethers`
### Node.js 兼容性警告
Hardhat 可能会针对 Node v24 发出警告。请使用 Node 18--20 以获得稳定的兼容性。
### CORS 错误
仪表板直接由 FastAPI 提供服务,以避免跨域问题。
## 设计原则
- 区块链上不存储 PHI
- 加密篡改检测
- 确定性哈希比对
- 不可变审计追踪
- 链上与链下数据清晰分离
## 免责声明
这是一个演示医疗完整性锚定的概念验证架构。它不是生产就绪的医疗系统。
标签:AV绕过, DICOM, DNS 反向解析, FastAPI, FHIR, Hardhat, HIPAA合规, HL7, PHI数据保护, SaaS仪表盘, SHA-256, Solidity, Web3.py, Zenmap, 不可篡改记录, 人工智能安全, 以太坊, 区块链, 医疗健康, 医疗数据安全, 合规性, 后端开发, 后端开发, 后端开发, 后端系统, 审计日志, 密码学锚定, 数据完整性, 数据指纹, 智能合约, 网络安全, 访问证明, 逆向工具, 链下存储, 防篡改, 隐私保护