基于超级账本Fabric的供应链跟踪解决方案【开源】

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

本项目为基于Hyperledger Fabric区块链的供应链资产跟踪解决方案,项目主要包括链码和Web应用两部分。Fabric链码采用GOLANG开发,负责维护资产的状态,后台为采用Node.js开发的Web应用,负责为用户提供访问区块链上资产的操作界面,例如资产的创建、所有权转移等操作。

如果希望快速高效地掌握超级账本Fabric区块链的开发,强烈推荐这个在线互动课程:

  • Fabric区块链链码与应用开发详解

在本项目中要跟踪的资产是大理石,当然可以换成和你的业务相关的任何类型资产。大理石资产的属性定义如下,所有的属性值都是字符串:

  • ID:资产的唯一标识符
  • COLOR:资产的颜色
  • SIZE:资产的尺寸,单位:MM
  • OWNER:持有人

本项目提供一个基于Web的用户界面,以便用户操作区块链上的数据。资产在区块链上以键/值对的形式保存。我们使用资产ID作为键,所有的资产属性构成一个JSON对象,其对应的字符串作为资产的值。在Fabric区块链上,应用与链码的交互是通过与网络上的Peer节点通过gRPC协议通信完成的。

marbles peek

应用通信框架

整个应用的通信流程如下图所示:

communication flow

1、管理员使用浏览器与Node.js应用交互,我们将该Node.js应用称为Marbles。

2、浏览器中的客户端JS代码将通过websocket与Node.js应用交互,当管理员操作界面时,客户端 JS将向后端发送消息。

3、读写账本的操作在Fabric中被称为提议(Proposal),由Node.js应用负责生成提议并发送给Fabric区块链的对等节点(Peer)。

4、Peer节点与部署在其本地的链码通信,链码将执行/模拟交易,如果模拟的结果没有问题,节点 将对交易进行背书并返回响应给Node.js应用。

5、Node.js应用会将背书过的提议发送给Farbic区块链的排序节点(Orderer),排序节点负责将整个网络上的多个提议打包并生成新的区块,然后广播给所有的对等节点。

6、最后,对等节点将验证收到的区块,然后写入自己维护的账本,交易现在就生效了,任何之后 发生的账本读取操作都可以反应账本的变化。

使用手册

安装完成后,访问http://localhost:3001打开web界面,可以执行资产创建、资产交易等操作。

创建新资产

点击**+**图标创建新的资产:

use_marbles1

在弹出的窗口中输入所有的资产属性后,点击CREATE按钮,然后等待新资产在链上创建成功。

资产交易

在web界面中可以通过拖拽方式将一个大理石资产的所有权从一个用户转移给另一个用户。

删除资产

在web界面中也可以将资产拖拽到垃圾桶中,然后等待资产从链上消失:

use_marbles2

资产查询

可以在web页面中按资产持有人或资产公司名称进行查询。

应用源码链接:https://github.com/Incede/SupplyChain


原文链接:基于Fabric区块链的供应链跟踪解决方案 — 汇智网

转载于:https://my.oschina.net/u/3794778/blog/3027089

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/275526.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

同理心案例及故事分享_神经形态,视觉可及性和同理心

同理心案例及故事分享“A good UX designer has empathy”.“优秀的UX设计人员具有同理心”。 This is something every UX designer has heard at some point in their career. Empathy helps us get into the mindset of the user and build solutions that solve real probl…

纯CSS实现beautiful按钮

大家好,我是若川。邀你进源码共读群学习交流。今天分享一篇好文。可收藏~近期工作中遇到一个需求——实现一些酷炫的按钮,看到效果图之后,按钮确实漂亮,有弹跳、颜色渐变、扫光、霓虹灯,瞬间激起了我的好奇…

linux的内核有多小,Linux 内核有小bug?

今天读着读着Linux代码,竟然无意中发现Linux 0.11内核有个小bug,呵呵,人非圣贤孰能无过。// 在目录项数据块中搜索匹配指定文件名的目录项,首先让de 指向数据块,并在不超过目录中目录项数// 的条件下,循环执…

菜单窗口_菜单

菜单窗口The Hamburger Menu widget is on every other site nowadays. It has become synonymous with the web and, perhaps even more so, with web development. Have, for instance, a look at Dribbble or Codepen. There you’ll find a fair share of examples. They c…

帝国cms 打开打开转换表文件失败!

帝国cms 升级到最新版6.6 后 生成列表页面和 搜索 时出现 “打开打开转换表文件失败!” 跟踪文件找到 include($file); 这行代码时出错非常纳闷,这个是php的内部命令啊,跟帝国的编码应该没有关系一直没有再往下细找,只好根据错误提…

怎么在PDF上修改文字,PDF修改文字的步骤

怎么在PDF文件上修改文字呢?其实现在的很多的PDF文件上会出现文字错误的情况,想要修改PDF文件上面的文字却不知道怎么修改,想要修改PDF文件还是比较简单的,使用专业的PDF编辑器就可以进行操作了,下面小编就为大家分享一…

linux raw限制端口访出,使用Linux raw socket时需要注意的一些问题

本文的copyleft归gfree.windgmail.com所有,使用GPL发布,可以自由拷贝,转载。但转载请保持文档的完整性,注明原作者及原链接,严禁用于任何商业用途。作者:gfree.windgmail.com博客:linuxfocus.bl…

读完 Vue 发布源码,小姐姐回答了 leader 的提问,并优化了项目发布流程~

大家好,我是若川。这是 源码共读 第三期活动,纪年小姐姐的第三次投稿。纪年小姐姐学习完优化了自己的项目发布流程,而且回答了leader对她的提问,来看看她的思考和实践。第三期是 Vue 3.2 发布了,那尤雨溪是怎么发布 Vu…

小程序背景图片的坑

本人是前端菜鸟一个,比小白还要白,这完全是自己的经验总结,并不是要给各位分享什么宝贵经验哈,各位大佬不喜勿喷,不然会打击到我的哈哈因为公司要求做几个小程序的页面,我不得不拾起丢弃了几个月的小程序开…

SimpleAdapter类使用方法

SimpleAdapter的构造函数是&#xff1a; public SimpleAdapter (Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to) 官方说明了其各个参数含义&#xff0c;我这里根据自己的理解解释下&#xff1a; 第一个context&…

小程序 富文本自适应屏幕_自适应文本:跨屏幕尺寸构建可读文本

小程序 富文本自适应屏幕Many of you may already know about responsive web design. Cited from Wikipedia, responsive web design (RWD) is an approach to web design that makes web pages render well on a variety of devices and windows or screen sizes. The respon…

Vue、React 之间如何实现代码移植?

大家好&#xff0c;我是若川。面对前端最火的两个框架&#xff0c;学 React 还是 Vue &#xff1f;这可能是每个前端人都曾纠结过的问题。不过&#xff0c;现在你不用纠结了——因为很多公司都是两个框架都有大量的应用&#xff0c;取决于不同团队的技术选型&#xff0c;特别是…

linux mariadb 乱码,配置mariadb远程访问权限,解决数据库乱码问题

配置mariadb远程访问权限&#xff1a;1)登录数据库:# mysql -uroot -p2)配置授权数据库用户远程访问权限&#xff0c;%表示所有远程IP&#xff0c;也可以指定IP。WITH GRANT OPTION表示mysql数据库的grant表中重新加载权限数据&#xff1a;GRANT ALL PRIVILEGES ON *.* TO 用户…

平面设计师和ui设计师_游戏设计师的平面设计

平面设计师和ui设计师Design is a very ancient practice, but graphic design really found its core principles post World War One. Games are also very ancient but video games are still finding their feet. I think graphic design has a few things to teach people…

从零开发一个命令行脚手架工具 等

大家好&#xff0c;我是若川。今天周末&#xff0c;话不多说&#xff0c;这一次花了几小时精心为大家挑选了20余篇好文&#xff0c;供大家阅读学习。本文阅读技巧&#xff0c;先粗看标题&#xff0c;感兴趣可以都关注一波&#xff0c;绝对不亏。前端宇宙小编就职于某大厂&#…

linux的HAL库函数,STM32 HAL库 IIC 协议库函数

/* 第1个参数为I2C操作句柄第2个参数为从机设备地址第3个参数为从机寄存器地址第4个参数为从机寄存器地址长度第5个参数为发送的数据的起始地址第6个参数为传输数据的大小第7个参数为操作超时时间 */HAL_I2C_Mem_Write(&hi2c2,salve_add,0,0,PA_BUFF,sizeof(PA_BUFF),0x10)…

pku acm 2140 Herd Sums http://acm.pku.edu.cn/JudgeOnline/problem?id=2140

2140代码短小精悍&#xff1a;#include<stdio.h> int main() { int cnt0,i; long s; scanf("%ld",&s); for(i1;(i1)*i/2<s;i)if((s-(i-1)*i/2)%i0)cnt; printf("%d\n",cnt); return 0; }转载于:https://www.cnblogs.com/Chinese-Coder-C…

java合成海报的工具类

2019独角兽企业重金招聘Python工程师标准>>> package io.renren.common.utils;import cn.hutool.core.lang.Console; import io.renren.modules.oss.cloud.OSSFactory;import javax.imageio.ImageIO; import javax.imageio.stream.ImageOutputStream; import java.a…

a说b说谎b说c说谎说d说_说谎的眼睛及其同伙

a说b说谎b说c说谎说d说The eye is a complex and temperamental organ. By the end of this article, designers will have a better understanding of how the eye works with the brain, how it deconstructs images that the brain stitches back up again, and how the two…

一名运营,自学一年前端,成功入职杭州某独角兽企业,他的面试经验和学习方法等分享...

大家好&#xff0c;我是若川。这是我的微信群里小伙伴年年 的投稿。他是19年毕业&#xff0c;之前做的是运营相关的工作&#xff0c;在我的交流群里非常活跃&#xff0c;自学一年前端&#xff0c;目前成功转行入职杭州一家独角兽企业。相信他的文章能带给大家一些启发和激励。0…