使用ABAP实现一个最简单的区块链原型

这个测试程序的前半部分来源于SAP Community的博客ABAP Meets Blockchain, 做者是Nabheet Madan。git

这部分主要负责生成一个ABAP内表,每行记录是区块链的一个块。为简单起见,每块拥有以下字段:github

  • 块索引区块链

  • 块数据 - 这里简单用一个字符串来描述测试

  • 块哈希 - 这个例子里,将该块全部字段的内容拼成一个长字符串,再通过SHA1计算获得的结果,做为该块的哈希值。blog

  • 时间戳 - 存储了该块的哈希计算出来的时间戳,即该块诞生的时间戳索引

  • 前一块的哈希 - 经过这个字段把一系列块串起来造成了链的结构。开发

  • NONCE - 这个字段须要和难度层级(difficult level)联合起来理解。字符串

我使用下图的输入执行测试程序,get

生成了以下图的区块链:博客

能够看到每一个块的hash都是00000开头。这就对应了输入的难度层级00000。这个层级的意思是,若是根据上文介绍的SHA1计算出来的hash的前5个字符不是以00000开头,则丢弃掉,nonce加1,再继续循环,直至计算出来的hash前5个字符确实是以00000开头为止。所以,nonce字段实际上记录了该块诞生以来一共通过了多少次SHA1计算。

测试程序的后半部分是我本身开发的,做用是接受一个包含了区块链数据的ABAP内表,而后以链式结构输出。由于SAPGUI里没有现成的链表控件,因此我用树形控件作了模拟。

完整测试程序在个人github上。

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

相关文章
相关标签/搜索