这个测试程序的前半部分来源于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的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24475491/viewspace-2153731/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24475491/viewspace-2153731/