原项目链接:https://github.com/togettoyou/fabric-realty
此项目链接:https://gitee.com/real__cool/fabdeal
演示链接:https://www.bilibili.com/video/BV1rR4y1P7Mv?spm_id_from=333.999.0.0&vd_source=dd8b89b32688f1462bc0dd9be11c6093

以下是项目搭建步骤,已默认搭好ubuntu环境,如果还没有装好可以参考https://blog.csdn.net/qq_41575489/article/details/125054931?spm=1001.2014.3001.5501

1.安装docker与docker-compose

 #安装dockercurl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun#将用户添加到docker组sudo usermod -aG docker $USER#更新用户组newgrp docker #安装docker-composesudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose#增加运行权限sudo chmod +x /usr/local/bin/docker-compose#测试是否安装成功,有输出内容即可docker-compose #给docker换源 编辑 /etc/docker/daemon.json 写入以下内容保存
{"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
#重启docker
sudo systemctl restart docker

2. 一个命令启动项目

cd 项目路径/network && ./stop.sh && ./start.sh && cd ../application && ./stop.sh && ./build.sh && ./start.sh && cd ../network/explorer && ./stop.sh && ./start.sh

3.在浏览器中访问项目

如果是主机访问虚拟机内的项目则将127.0.0.1换成虚拟机ip

#项目链接
http://127.0.0.1:8000/web
#区块链浏览器链接
http://127.0.0.1:8080/
账号密码 admin 123456

4.项目目录介绍

区块链部分

  1. crypto-config.yaml文件
    crypto-config.yaml定义了生成证书的数量,还有用户的数量,使用cryptogen工具读取改文件生成相应的公私钥和证书,生成的证书在crypto-config文件夹中
  2. configtx.yaml文件
    configtx.yaml中定义了组织与Fabric共识、区块大小,超时时间等参数,用于生成创世区块
  3. docker-compose文件
    这个时docker-compose启动时读取的文件,将一次性启动多个容器,这些容器是peer节点和orderer节点,文件中写明了具体的配置信息,比如挂载一些本地文件,使用的镜像文件等,比如使用1.4.12版本的fabric镜像
  4. start.sh 文件
    这个是启动区块链网络的脚本,每一步都有注释
  5. hyperledger-fabric-linux-amd64-1.4.12 文件夹
    文件夹内有上述1,2中生成证书、创世区块的工具
  6. explorer文件夹
    这个是区块链浏览器的文件夹,了解怎么启动就可以,注意文件夹中的start.sh文件,每次重启区块链网络时私钥会变,因此该文件中有替换密钥的操作。connection-profile中的network_temp.json是配置文件,定义了读取区块链网络的信息与登陆区块链浏览器的账号密码。

智能合约部分

  1. go.mod 文件
    这个文件是定义了一个模块,一般就是本目录,在本项目中是chaincode,然后有go的版本和需要的依赖
  2. go.sum文件
    这个是固定项目的依赖文件版本
  3. chaincode.go文件
    这个里边主要关注两个函数,一个是Init函数,就是在链码进行实例化时会进行的操作,在这个项目中是向区块链中写入预先设定的账户;下边是Invoke函数,除了Init时对区块链的操作都是Invoke,可以看到当传入参数时,会读取api里相应的函数。
  4. api中的.go文件
    这里就是智能合约中函数的位置,当接收到sdk的请求时,调用这里的函数,实现相应的操作。比较重要的有QueryAccountList(),CreateRealEstate(),QueryRealEstateList(),分别完成了对账户的查询、创建商品与查询商品列表。
  5. model文件夹中的model.go文件
    该文件定义了一些结构体,包含了字段的属性,例如定义了一个商品的所有属性

app部分 使用vue框架https://panjiachen.gitee.io/vue-element-admin-site/zh/

  1. build.sh
    这个是构建app的容器,将app放在容器中运行,具体做的事情在Dockfile文件里
  2. start.sh、docker-compose.yml就是启动app容器
  3. server文件夹就是后端,使用的gin框架
    当后端接收到web的请求后,就会查看routers的路由信息,找到对应的api进行操作。在api中,接收到web发来的请求后进行处理,然后调用智能合约实现对区块链网络的交互
  4. blockchain/sdk.go config.yaml
    这里定义了 sdk的配置信息
  5. web文件夹是前端的部分 使用的vue + element ui
  6. api文件夹中的js文件定义了函数相对应的url、method、携带的数据,就是与后端进行交互
  7. route文件夹
    这一部分参考https://panjiachen.gitee.io/vue-element-admin-site/zh/guide/essentials/router-and-nav.html#%E9%85%8D%E7%BD%AE%E9%A1%B9
  8. views文件夹是前端
    当用户在页面填写数据后,使用vue文件里的方法,调用api里的函数,与后端进行交互

基于区块链/Hyperledger Fabric的商品交易溯源系统搭建步骤相关推荐

  1. 基于区块链/Hyperledger Fabric的商品交易溯源系统开发模式搭建

    搭建该项目的开发模式主要有链码的开发模式和前后端的开发模式. 以下内容暂时没有核验,可能有bug 链码开发模式 窗口1:开启dev组件 cd /home/real/project/fabric-sam ...

  2. 基于区块链的防护物资捐赠监管系统(二):系统结构

    基于区块链的防护物资捐赠监管系统(二):系统结构 第1章 对研究背景及内容进行介绍 第2章 智能合约.密码学知识.共识机制等相关技术 第3章 系统的整体设计 第4章 系统功能的具体实现 第5章 系统的 ...

  3. 基于区块链的学生课程成绩查询系统

    基于区块链的学生课程成绩查询系统 [摘 要]传统成绩管理系统存在数据易窜改的问题.本文根据区块链不可窜改的原理设 计并实现课程成绩查询系统.系统基于以太坊技术开发,采用 Node.js 作为服务器后端 ...

  4. 基于区块链的防护物资捐赠监管系统(三):功能设计

    基于区块链的防护物资捐赠监管系统(三):功能设计 第1章 对研究背景及内容进行介绍 第2章 智能合约.密码学知识.共识机制等相关技术 第3章 系统的整体设计 第4章 系统功能的具体实现 第5章 系统的 ...

  5. 区块链 HyperLedger Fabric安装

    前提条件 centos 7.4 64位 安装docker并配置阿里云加速器 安装docker compose 安装golang 由于被禁的关系,是没有办法直接访问golang.org网站的, 不过国内 ...

  6. 基于区块链技术的溯源系统-总结

    主要工作 设计了一个基于区块链技术的新型的溯源系统, 并实现一个原型系统.该溯源系统同时使用公有链与许可链两条区块链.上述溯源系统在具有高吞吐量的同时,能够利用比特币或以太坊等公有链来保证溯源信息的安 ...

  7. 《基于区块链与IPFS的视频版权存证系统》专栏简介

    更新中,预计7月25日前更新完毕 本专栏包含了"基于区块链(Hyperledger Fabric)与IPFS的视频版权存证系统"的全部源码与从0开始的搭建视频(订阅专栏后请站内私信 ...

  8. 基于区块链的RFID数据采集溯源系统设计与实现

    基于区块链的RFID数据采集溯源系统设计与实现 随着区块链技术的发展以及与金融.物联网和人工智能等领域的融合应用[1],随之而来的相关安全事件频繁发生,区块链信息系统中数据来源的安全性和可追溯性正变得 ...

  9. 基于区块链的医疗记录存储系统研究与开发

    参考转自 https://www.qklbishe.com/ 基于区块链的医疗记录存储系统研究与开发   摘    要 随着互联网的飞速发展,医疗行业呈现出信息化的发展趋势.EMR(电子病历)记录了患 ...

最新文章

  1. OpenCL通用异构开放环境
  2. 迁移学习之MobileNet(88层)和MobileNetV2(88层)
  3. python替换字符串内容
  4. c++版 mulSpectrums
  5. Date.prototype.format
  6. 考研数学一历年真题小题(选择填空)整理
  7. Innumerable Ancestors 尺取 dfs序 lca
  8. 管道和过滤器模式----POSA模式助记格式
  9. 谷歌翻译api_翻译:TensorFlow on Android APP 示例
  10. 计算机综合基础作业,《计算机网络基础》综合作业(参考答案).doc
  11. JS-函数(匿名-自调用-回调)-递归
  12. android中所有颜色大全
  13. CentOS6 图形界面(gnome)安装(转)
  14. A New Romance Is Likely to End up like Your Previous Relationship 为什么每次恋爱总会走向相似的结局?
  15. html 时间控件 只选择年,js时间控件只显示年月
  16. win7计算机病毒制作教程,怎么制造计算机病毒
  17. linux直播电视软件下载,周末了!通过Linux Mint开发的IPTV播放器观看海量国内外直播电视...
  18. 支持向量机(Vladimir Vapnik)
  19. three.js 入门详解(一)
  20. WGS84(GPS)、火星坐标系(GCJ02)、百度地图(BD09)坐标系转换案例教程(附转换工具下载)

热门文章

  1. linux filo顺序是什么意思,嵌入式系统复习 南京邮电大学 期末复习 答案 提纲
  2. 用户行为分析案例——天池数据集User Behavior Data from Taobao
  3. 又一嵌入式开源仿真器
  4. Swift 在淘宝商品评价的技术重构与实践
  5. 长图预警,全网最全的23个免费无背景PNG素材网站汇总,让你有用不完的资源!!
  6. 单片机是什么?在大学里学习单片机,对以后的就业会有帮助吗
  7. “善于治”和“以善治”:华为云Stack在智慧城市的十年踪迹十年心
  8. 基于HTML5 Canvas的工控SCADA模拟飞机飞行
  9. 2008 r2 server 提权_Windows Server 2012 R2的提权过程解析
  10. MediaCoder的CUDA H.264编码技术预览及测试报告