Hyperledger Fabric医疗供应链项目构建及技术集成、测试网络问题咨询
假药追踪供应链项目问题解答与入门指导
一、Docker镜像报错解决
你遇到的hyperledger/fabric-tools:latest找不到的问题,是因为Hyperledger Fabric已不再维护latest标签的镜像推送,必须指定具体版本拉取:
- 方法1:使用Hyperledger Fabric官方提供的
install-fabric.sh脚本,指定版本拉取镜像和二进制文件(以2.5版本为例):
注:拉取./install-fabric.sh docker 2.5fabric-samples仓库时会自动包含该脚本。 - 方法2:手动拉取指定版本镜像:
docker pull hyperledger/fabric-tools:2.5
拉取完成后,重新执行测试网络启动命令即可。
二、技术问题解答
1. 能否基于Hyperledger Fabric构建Web应用?
完全可以。Hyperledger Fabric提供多语言SDK(Node.js、Java、Go等),Web应用可通过以下方式实现:
- 后端用SDK编写API,与Fabric网络交互(提交交易、查询链上数据);
- 前端通过调用后端API,实现药品上链、溯源查询、扫码验证等可视化操作。
2. 能否集成QR Code与IPFS?
可行,且是假药追踪场景的常用组合方案:
- QR Code:生成包含药品唯一资产ID的二维码,用户扫码后即可通过ID查询链上溯源信息;
- IPFS:用于存储药品的大文件(如质检报告、生产记录),将文件上传至IPFS后得到唯一哈希,把该哈希与药品基础信息(批次、厂家、有效期等)一起写入Fabric链上。链上仅存哈希避免存储成本过高,验证时通过哈希从IPFS获取原始文件,对比链上哈希即可确认文件未被篡改。
三、供应链Demo搭建入门步骤
1. 环境准备
确保已安装Docker、Docker Compose,拉取fabric-samples仓库及对应版本的Fabric镜像、二进制文件(参考前文镜像拉取方法)。
2. 启动测试网络
进入fabric-samples/test-network目录:
- 清理旧环境(若之前启动失败):
./network.sh down - 启动测试网络并创建通道:
./network.sh up createChannel -c mychannel -ca
该命令会创建两个组织、一个排序节点,并生成通道mychannel。
3. 部署定制化链码
以asset-transfer-basic示例链码为基础,修改链码逻辑适配假药追踪场景:
- 调整资产结构体,新增
drugId(药品ID)、manufacturer(生产厂家)、batchNo(批次号)、expiryDate(有效期)、ipfsHash(IPFS文件哈希)等字段; - 部署修改后的链码到通道:
./network.sh deployCC -ccn drug-trace -ccp ../asset-transfer-basic/chaincode-go -ccl go
4. 搭建Web应用后端
使用Node.js SDK编写API:
- 配置SDK连接测试网络(使用
fabric-samples/test-network中的连接配置文件); - 实现核心接口:
- 药品上链接口:接收药品信息+IPFS哈希,调用链码写入链上数据;
- 溯源查询接口:根据药品ID查询链上完整溯源信息;
- IPFS文件上传接口:将药品相关文件上传至IPFS并返回哈希。
5. 前端与QR Code集成
- 用HTML/JS实现简单交互界面,集成
jsQR库实现扫码功能; - 扫码获取药品ID后,调用后端查询接口,展示链上溯源信息及IPFS文件预览链接。
6. 测试流程
- 模拟药品生产:上传质检报告到IPFS获取哈希,提交药品基础信息+哈希上链,生成对应QR码;
- 扫码验证:扫描QR码,查询链上数据,对比IPFS文件与链上哈希,确认药品真实性;
- 模拟假药场景:篡改IPFS文件内容,验证时哈希不匹配,即可识别假药。
内容的提问来源于stack exchange,提问作者Rashmika Satish
相关产品推荐
相关产品推荐

