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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 属于魅族的新开端 从魅族20系列正式开始
- 下一篇: 在云环境上使用SLF4J对Java程序进