使用ABAP实现一个最简单的区块链原型
这个测试程序的前半部分来源于SAP Community的博客ABAP Meets Blockchain, 作者是Nabheet Madan。
这部分主要负责生成一个ABAP内表,每行记录是区块链的一个块。为简单起见,每块拥有如下字段:
块索引
块数据 - 这里简单用一个字符串来描述
块哈希 - 这个例子里,将该块所有字段的内容拼成一个长字符串,再经过SHA1计算得到的结果,作为该块的哈希值。
时间戳 - 存储了该块的哈希计算出来的时间戳,即该块诞生的时间戳
前一块的哈希 - 通过这个字段把一系列块串起来形成了链的结构。
NONCE - 这个字段需要和难度层级(difficult level)联合起来理解。
我使用下图的输入执行测试程序,
生成了如下图的区块链:
可以看到每个块的hash都是00000开头。这就对应了输入的难度层级00000。这个层级的意思是,如果根据上文介绍的SHA1计算出来的hash的前5个字符不是以00000开头,则丢弃掉,nonce加1,再继续循环,直至计算出来的hash前5个字符确实是以00000开头为止。因此,nonce字段实际上记录了该块诞生以来一共经过了多少次SHA1计算。
测试程序的后半部分是我自己开发的,作用是接受一个包含了区块链数据的ABAP内表,然后以链式结构输出。因为SAPGUI里没有现成的链表控件,所以我用树形控件做了模拟。
完整测试程序在我的github上。
要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:
相关推荐
Cocolada 2020-11-12
82550698 2020-11-09
mnm0 2020-11-08
gaobudong 2020-11-04
匆匆那些年 2020-10-15
wangdianyong 2020-07-23
webpackvuees 2020-07-23
锋锋 2020-07-14
xlb 2020-07-12
liuttorrie 2020-07-04
XiaoMuFireAnt 2020-06-18
kekeromer 2020-05-07
数据齿轮 2020-03-03
Lophole 2020-03-03
YukiRain 2020-03-01
liuyang000 2020-01-06
zhegechengxuyuan 2019-11-16
woxmh 2019-11-09
bloomrose 2019-11-08