区块链系统运行逻辑

这篇具有很好参考价值的文章主要介绍了区块链系统运行逻辑。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、开发工具

  1. hyperledger-fabric:1.4.7,hyperledger-ca:1.4.7。ca是用来生成证书文件,管理成员身份。
    下载方法:点击此链接到百度云下载脚本,提取码:1234,在已经安装docker和git后,运行脚本即可下载,例如运行:./download.sh 1.4.7 1.4.7将会下载hyperledger-fabric:1.4.7,hyperledger-ca:1.4.7,及对应版本的docker镜像。若某个文件下载缓慢,可转到github文件下载代理处下载(前提是要能看明白.sh脚本语言,明白缺少什么文件,该在什么地方解压下载好的文件),下载后放入fabric-sample内解压即可。
  2. docker: 20.10.12,服务都是在docker容器内运行的。
  3. golang: 1.17.5,fabric的底层的开发语言,同时也是编写链码,搭建后端服务器的语言。
  4. git: 1.8.3.1,下载文件时需要用到。
  5. go-gin最新版,开发后端服务器的框架,该框架目前性能最好。
  6. fabric-go-sdk,操作区块链网络的软件包。

二、程序运行完整逻辑

2.1 总体逻辑

  1. 在启动fabric网络后,运行mian函数,它将首先运行初始化函数,创建SDK、资源管理客户端、创建通道、将所有节点加入通道、配置锚节点更新、安装链码、通道管理客户端、实例化链码。然后开启后端接口服务。
  2. 利用接口,接收前端传入的数据,用结构体保存数据,再调用go sdk的软件包,利用通道管理客户端将数据发送给链码。
  3. 链码根据接受的数据,调用对应的函数,将数据存入区块链或者查询区块链账本中的数据。
  4. 用go sdk接收链码的执行结果,利用gin将结果以json形式的数据返回给前端。

2.2 详细过程(以添加数据(AddData)为例)

首先初始化
区块链系统运行逻辑
开启接口,前端访问该接口时,则会执行后面的AddData(…)函数
区块链系统运行逻辑

在这函数里,接收前端传入的数据,用如下的函数将接受到的前端数据保存至结构体中。
区块链系统运行逻辑

再用如下函数,将数据反序列化,为存入区块链中做准备(区块链中存储的数据都是序列化的):
区块链系统运行逻辑
指定函数fcn,链码会根据传入的fcn函数信息,调用对应的函数。
区块链系统运行逻辑
执行strar.go文件中调用的链码函数:
区块链系统运行逻辑
在InvokeCC函数中,首先将请求封装,在封装的请求中,需要指明执行链码的ID,请求链码的函数信息fcn,及序列化了的待添加数据。
区块链系统运行逻辑
执行调用链码的请求(go sdk调用链码的核心函数):
区块链系统运行逻辑
此时安装的链码将会收到请求数据,在链码中用该函数接收请求调用函数的信息及序列化后的待添加数据。
区块链系统运行逻辑
此时传入的请求函数信息是"addData",那么它将会调用对应的函数进行处理:
区块链系统运行逻辑
在该函数中,先是将序列化的数据反序列化,并用结构体保存数据,这样做的目的是取出其中的ID和Batch,将其以Batch+ID的方式组合为一个唯一Key值,作为该数据唯一的“身份证”,溯源就是根据此“身份证”查看该身份证下的一切改动。
区块链系统运行逻辑
调用PutData函数,准备将数据写入区块链中。
区块链系统运行逻辑
在PutData函数中,首先将数据序列化,再用Putstate将数据写入区块链。
区块链系统运行逻辑
最后将链码执行的结果以JSON形式的数据返回给前端,若成功执行链码“err”:nil,否则返回错误原因:
区块链系统运行逻辑文章来源地址https://www.toymoban.com/news/detail-513356.html

到了这里,关于区块链系统运行逻辑的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Android】在AndroidStudio开发工具运行Java程序

    在Android Studio开发工具中,Android系统开始就是用java语言开发的,还可以java代码来写程序,控制台,桌面应用,还可以写可调用的模块,这里讲一下创建Java程序步骤,方便入门java语言开发。 新建一个Android项目时,要选择第一个,就是空的(不带模板)的项目,这里打开会有

    2024年02月11日
    浏览(56)
  • 通过HBuilderX运行uniapp到微信者开发工具

    目录 一、安装开发工具 二、配置运行微信开发者工具 三、异常处理 1.[微信小程序开发者工具] ? Enable IDE Service (y/N) [27D[27C 2. [error] Error: Fail to open IDE 3.[app.json 文件内容错误] app.json: 在项目根目录未找到 app.json 安装HBuilderX 官方下载地址【官方IDE载地址】 HBuilderX是通用的前端

    2024年02月16日
    浏览(35)
  • vscode开发小程序项目并在微信开发者工具运行

    需求:vscode开发uniapp之后在微信开发者工具运行,更改的时候微信开发者也同步更改 创建微信小程序所需插件,在vscode的插件管理里面安装就可以了 1.微信小程序开发工具 2.vscode weapp api 3.vscode wxml 4.vscode wechat 1.创建小程序命令 这里的uniapp-vue是项目名称,不能大写 2.选择un

    2024年02月09日
    浏览(61)
  • Web3、区块链、合约开发语言、框架、工具深度对比选型【万字长文】

    目录 前言 1. 智能合约语言 Solidity Vyper Rust 智能合约语言总结 Chainlink

    2023年04月09日
    浏览(46)
  • hbuilder运行uniapp,微信开发者工具打开但没有运行项目

    最近接手公司uniapp项目,使用Hbuilder运行uniapp,微信开发者工具打开但没有运行项目 :     检查微信小程序开发工具是否最新版; 微信开发者工具登录的微信号,可能未绑定该小程序项目的appid,需要到小程序管理后台绑定该微信账号为开发者账号; 将项目直接拉入微信开发者工具

    2024年02月09日
    浏览(57)
  • HBuilderX 开发的uniapp项目在微信开发者工具中调试运行

    第一步下载需要的开发工具: 下载HBuilderX:https://www.dcloud.io/hbuilderx.html 下载微信开发者工具:https://developers.weixin.qq.com/miniprogram/dev/devtools/nightly.html 第二步将自己在HBuilderX 开发的uniapp项目打开并保证能运行,然后点击 工具 进行配置微信开发者工具路径: 第三步打开微信开

    2024年02月11日
    浏览(45)
  • 微信开发者工具运行报错‘app.json 未找到’

    问题 在微信开发者工具中报错 app.json未找到 ; uniapp项目在微信开发者工具中不能直接引入当前整个项目 解决方法 1.在开发者工具中, 点击选择目录 。 2.打开项目, 项目名/unpackage/dist/dev/mp-weixin 。 3.配置对应的AppID,点击确定即可。

    2024年02月11日
    浏览(61)
  • 解决前端项目问题,uniapp运行微信开发工具小程序,出现× initialize报错,以及浏览器无法运行

    uniapp进行小程序以及多端web页面都不知道如何配置讲项目运行起来。 就会报出无法运行错误。 [微信小程序开发者工具] - initialize [微信小程序开发者工具] [微信小程序开发者工具] × IDE may already started at port , trying to connect如图 这是因为没有配置好安全设置和运行设置。 一,

    2024年01月20日
    浏览(73)
  • uni-app运行微信开发工具小程序,出现× initialize报错。

    uni-app运行微信开发工具小程序,出现× initialize报错: 这是由于微信开发者工具服务端口未开启,导致出现 × initialize报错。 打开设置,找到安全设置:      2. 开启服务端口:   

    2024年02月12日
    浏览(50)
  • uni-app运行微信开发工具小程序,出现× initialize报错

     解决方案  

    2024年02月13日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包