区块链前后端交互过程

  • vue
  • application
  • chaincode

此文章基于github中的开源项目“基于区块链的房地产交易系统模型”进行介绍。对于新手来说,就算可以运行此项目,也不知该如何修改代码来满足自己的需求,因此此篇文章对区块链项目的前后端进行介绍,感兴趣的小伙伴可去github下载源代码。
首先明确目录结构:
application : go gin + fabric-sdk-go 调用链码,提供外部访问接口,前端静态资源放在dist目录下
chaincode : go 编写的智能合约
deploy : 区块链网络的配置以及启动停止脚本
vendor : 项目所需依赖包,防止网络原因下载失败
vue : vue + element的前端展示页面

vue

vue/src/views/: 所有前端展示页面存放在该文件夹中
vue/src/router/index.js: 所有页面的url写在该文件中
vue/src/api/: 所有与后端application交互的接口文件存放在该文件夹中

application

application/routers/router.go: 所有与前端vue交互的接口写在该文件中
application/router/api/v1/: 所有与底层chaincode交互的接口文件存放在该文件夹中

chaincode

chaincode/chaincode.go: 所有与后端application的交互写在该文件中
chaincode/lib/type.go: 底层chaincode的数据结构
chaincode/routers/: 所有操作超级账本的函数都存放在该文件夹中

通过新增房地产的例子来说明整个流程,用户在前端输入房地产信息,调用vue/src/api/realEstate.js文件中的createRealEstate函数,将数据传到后端application,后端在application/routers/router.go中接收到POST(“/createRealEstate”),进而调用application/router/api/v1/realEstate下的CreateRealEstate函数,在此函数中将数据传到chaincode中,通过chaincode/chaincode.go调用chaincode/routers/realEstate.go中的CreateRealEstate函数,将数据写入超级账本。