Hyperledger(超级账本)的worldstate和SAP CRM的CRMD_CUMULAT_H
Hyperledger fabric是基于区块链技术的一个开源项目,由Linux基金会于2015年发起,目的是推进区块链数字技术和交易验证的发展和落地。

Hyperledger由多个区块构成了一个有序链表,每个区块里包含多条交易(trasanction,缩写为tx)。Jerry在学习账本的数据结构时,发现一个有趣的现象:上图中WorldState(世界状态)的设计目的,是为了提升性能。比如,有一个channel里共发生了1千次交易,为了获取该channel的当前状态值,需要沿着区块链的首块出发执行这1千次交易,有点像SAP HANA内存数据库实时计算的思路。
而Hyperledger Fabric选择了在每次新交易处理完后,都同步更新一个称之为levelDB的数据库。这样每次查询当前状态时,无需遍历区块链每个区块重复执行交易,只需要查询该levelDB数据库即可。

这个levelDB的概念和CRM里的订单抬头的很多字段,比如总价,毛重(Gross weight)等等设计思路是一样的。
比如我在ID为IMU的产品主数据里维护了1个ST的单位重50KG,那么下图订单包含了两个行项目,一共8个ST,毛重50 × 8 = 400KG。

这个400KG是存储在表CRMD_CUMULAT_H的GROSS_WEIGHT字段。

顾名思义,这个字段的值是从另一张存放行项目明细信息的表CRMD_PRODUCT_I里的GROSS_WEIGHT累加而来的,这也是这张表的部分名称CUMULAT的由来:(cumulate累积)

每次行项目里产品数量发生变化时,会触发one order框架的回调函数,更新CRMD_CUMULAT_H的GROSS_WEIGHT.

最后数据更新通过CRM_CUMULAT_H_UPDATE_DU写回到CRMD_CUMULAT_H里。CRMD_CUMULAT_H扮演的角色同Hyperledger Fabric里的levelDB相同。




要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:


Hyperledger(超级账本)的worldstate和SAP CRM的CRMD_CUMULAT_H的更多相关文章
- 阿里云成为Hyperledger超级账本全球会员,发力区块链生态建设
摘要: 阿里云将会与Hyperledger社区共同推进全球区块链技术和商业生态在多行业领域的建设. 2018年12月12日在瑞士巴塞尔的2018Hyperledger全球峰会上,阿里云正式加入Hype ...
- Hyperledger超级账本在Centos7下搭建运行环境
超级账本(hyperledger)是Linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目,加入成员包括:荷兰银行(ABN AMRO).埃森哲(Accenture)等十几个不同利益体 ...
- 区块链学习7:超级账本项目Hyperledger与Fabric以及二者的关系
☞ ░ 前往老猿Python博文目录 ░ 一.超级账本(hyperledger) 超级账本(hyperledger)是Linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目,成员包括 ...
- SAP云平台,区块链,超级账本和智能合约
前一篇文章<Hyperledger Fabric on SAP Cloud Platform>,我的同事Aviva已经给大家介绍了基于区块链技术的超级账本(Hyperledger)的一些概 ...
- Hyperledger Fabric Model——超级账本组成模型
超级账本组成模型 本文主要讲述Hyperledger Fabric的关键设计特性,并细述如何实现了一个全面的.可定制的企业级区块链解决方案: 资产定义--资产这里理解为任何具有货币价值的东西,它们都可 ...
- HyperLedger Fabric 1.4 超级账本项目(5.4)
超级账本(Hyperledger)项目分框架类和工具类两种项目,框架类有Hyperledger Burrow.Hyperledger Fabric.Hyperledger Indy.Hyperledg ...
- HyperLedger Fabric 1.4 超级账本简介(5.2)
超级账本(Hyperledger)是推动区块链跨行业应用的开源项目的总称,组织成员可以发起新的区块链项目,加入到超级账本项目(Hyperledger)中,但需要遵循Hyperledger的生命周期. ...
- HyperLedger Fabric 1.4 超级账本起源(5.1)
至比特币开源以来,无数技术人员对其进行研究,并且对该系统经过了无数次改进,超级账本项目(Hyperledger)最初也是用来改善比特币的底层技术,最终由Linux基金会组织发展起来. 开放 ...
- 联盟链IBM的超级账本Hyperledger Fabric框架,JP Morgan’s Quorum
联盟链IBM的超级账本Hyperledger Fabric框架,JP Morgan’s Quorum JP Morgan’s Quorum https://www.coindesk.com/jpmor ...
随机推荐
- 安装YouCompleteMe时,编译依赖的python版本不对
启动vim打开文件时出错: The ycmd server SHUT DOWN (restart with ':YcmRestartServer'). YCM core library compile ...
- [Selenium] 如何使用Chrome Options 定制测试Chrome 浏览器的特定属性 (类似FirefoxProfiles)
Chrome Options 类似于FirefoxProfiles,用于定制待测试的Chrome 浏览器的特定属性 1)如果希望测试某个浏览器插件,可通过addExtensions方式提前加载以.cr ...
- Watir: 应用Watir-Webdriver 访问需要证书的网站情况
#Suppose we will access an SVN net require 'watir-webdriver' b = Watir::Browser.new :chrome b.goto ' ...
- make的link_directories命令不起作用
按照<CMake Practice>中第六章的设置,采用include_directories命令去寻找共享库的路径,src/CMakeLists.txt如下: ADD_EXECUTABL ...
- HTTP node静态资源请求加载demo
MIME type的缩写为(Multipurpose Internet Mail Extensions)代表互联网媒体类型(Internet media type),MIME使用一个简单的字符串组成, ...
- bzoj4750
单调栈+前缀和 max很明显用单调栈搞,但是异或和呢?异或和我们拆位,对于每段区间的异或和[l[i]-i],[i,r[i]]答案就是0->1,1->0的乘积,但是统计的时候事实上是[l[i ...
- BackTrack5(BT5)各版本下载
BT5R3(最新版本)http://www.nigesb.com/backtrack-5-r3-released.html BT5R2KDE版32位: http://ftp.halifax.rwth ...
- git提交历史不显示自己账户的问题
其实这个问题本身也不大好描述.还是上图好了 问题就如同途中倒数第二次提交.明明就是我提交的,却不显示我的账号.个人页面也不反映这次提交. 后来发现问题所在,要想正确显示,必须要把对这个项目的邮箱设 ...
- Unity局部高效实时阴影的思考和实现
http://game.ceeger.com/forum/read.php?tid=23305&fid=2 无意间看到一篇文章,说是Unity5 demo中为了实现角色的良好阴影,单独给角色设 ...
- thinkphp5 +elasticsearch
php7使用elasticsearch 1.安装 官网下载地址:https://www.elastic.co/downloads/elasticsearch # 解压到非root目录,运行时使用非ro ...