`
JerryWang_SAP
  • 浏览: 1032608 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

使用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的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

 
 
0
0
分享到:
评论

相关推荐

    ABAP中正则表达式的简单使用

    使用`d+.d+.d+.d+`这一表达式,其中`d+`代表一个或多个数字,`.`则是字面量的点,整个表达式用来匹配标准的IPv4地址格式。 ```abap DATA(str) = 'IP1:172.16.32.12IP2:192.168.1.1'. DATA(result_tab) = NEW match_...

    ABAP_实现F4帮助联动

    1. F4帮助联动是SAP ABAP系统中的一个重要功能,能够根据用户的输入值,动态地提供相关的搜索结果。 2. 在ABAP语言中,可以使用SELECT-OPTIONS语句定义选择屏幕变量,并使用LOOP语句遍历选择屏幕的所有字段。 3. 在...

    BOM按层展开在ABAP中的几个实现方法

    4. **树形结构和循环**:在ABAP中创建一个树形结构的数据对象,然后通过循环遍历BOM层次,每次迭代都添加新的子节点。这种方法适合在前端用户界面展示层次结构。 5. **ABAP OO编程**:使用面向对象的编程方式,定义...

    abap简单的ole练习

    本文档的描述部分简要地介绍了本文档的主要内容,并表明这篇文档是一个简单的练习,旨在帮助读者学习ABAP中OLE技术的应用。 标签解释 OLE 本文档的标签仅有一个,即OLE,这表明本文档的主要内容是关于OLE技术的...

    abap简单递归算法

    本文将深入探讨一个ABAP中的简单递归算法——计算阶乘,并通过SE38报表的形式进行展示。 #### 二、递归算法简介 递归算法是一种通过调用自身来解决问题的方法。它通常用于解决那些可以通过子问题的解来构建整个...

    sap abap oo实现alv框可编辑

    首先,我们需要定义一个事件接收器类(Event Receiver Class),用于处理ALV框中的事件。在这个类中,我们需要定义三个方法:toolbar、user_command和handle_data_changed。这些方法将用于处理ALV框中的工具栏、用户...

    ABAP实现股票实时行情.docx

    ### ABAP实现股票实时行情 #### 一、项目概述 本文档主要介绍如何利用ABAP编程语言实现股票实时行情的功能。通过本项目,用户可以...对于想要了解SAP系统中ABAP编程技术及其应用的人来说,这是一个很好的实践案例。

    SAP变式配置-相关性程序如何调用ABAP函数[参照].pdf

    这个步骤是实现复杂的算法和业务逻辑,使用ABAP语言编写代码。 最后,需要定义自己的功能来实现相关性程序调用ABAP函数,事务码为CU01。这个步骤是将ABAP函数与相关性程序集成,实现复杂的算法和业务逻辑。 通过这...

    abap逻辑数据库ABAP数据库操作

    在ABAP程序中,可以将数据选择到内表中,这样做的好处是可以对数据进行更复杂的处理,比如将数据从一个表转移到另一个表。通过使用内表读取数据时,通常会用到loop语句。 查询条件的动态指定允许在程序运行时根据...

    ABAP程序相互调用

    ABAP程序相互调用是指在ABAP中,通过SUBMIT关键字实现程序之间的调用,这是一个非常有用的关键字。下面我们将详细介绍ABAP程序相互调用的方法和用法。 一、调用另一个程序 在ABAP中,我们可以使用SUBMIT关键字来...

    ABAP日期函数(求月末日,第几周,search help 只显示年月) 使用方法实例

    使用 F4_DATE 函数可以弹出一个窗口,显示一个日历,允许用户选择一个日期。 5. 获取一个月的最后一天 使用 RP_LAST_DAY_OF_MONTHS 函数可以获取一个月的最后一天。 6. 获取期间首日和末日 使用 FIRST_DAY_IN_...

    ABAP 调用ABAP PROXY

    ABAP Proxy是SAP提供的一个强大的接口技术,它允许开发者创建安全、高效的远程调用机制。接下来,我们将深入探讨这个主题,包括ABAP Proxy的原理、创建过程以及调用方法。 ### ABAP Proxy简介 ABAP Proxy是SAP ...

    abap2xlsx 5个demo程序.zip

    YDemo_01是最基础的示例,展示了如何使用ABAP2XLSX创建一个简单的Excel表格,包括定义工作表、添加行、设置单元格值等基本操作。通过这个DEMO,我们可以学习到如何初始化XLSX对象,添加列头,以及填充数据到工作表...

    《abap经典面试题》

    内表类型是ABAP中的一个重要数据类型,用于存储大量数据。 2.ABAP语句 ABAP语句可以分为两类:声明语句和执行语句。声明语句用于定义变量、结构、内表等,而执行语句则用于实现具体的逻辑操作。常用的ABAP语句包括...

    sap abap oo实现ALV

    ### SAP ABAP OO 实现 ALV 的方法与实践 #### 一、背景介绍 ...以上就是使用面向对象技术实现SAP ABAP ALV的基本方法和步骤。通过这种方式,开发者能够更高效地创建和管理复杂的用户界面,提高应用程序的用户体验。

    30天学会ABAP很好的教程

    在实际学习过程中,本教程会从基础篇开始,逐步讲解ABAP的基础知识,包括ABAP的定义、开发环境的搭建、获取Access Key、ABAP Workbench和Dictionary的使用,以及编写第一个"Hello World"程序。接着,会深入到ABAP的...

    SAP_ABAP_4.7.rar_SAP abap4_abap_abap chm_abap 4_abap4

    ABAP 4.7是SAP ABAP的一个重要里程碑,引入了许多新特性,如增强的对象导向编程支持、改进的调试工具、新的开发环境以及对Web服务的支持。这些更新使得开发更加高效,代码更加结构化。 3. ABAP编程基础: - 数据...

    何创建简单 的 ABAP/4 程序

    本节描述如 何创建简单 的 ABAP/4 程序。了解 如何创建 ABAP/4 程序将有助 于了解本指 南中的其它 主题。 创建简单的 ABAP/4 程序涉及下 列基本步骤 : 1. 命名 程序 2. 指定 程序属性 3. 编写 程序代码 4. 测试 ...

    sap abap query高级功能

    总的来说,SAP ABAP Query 不仅仅是一个简单的查询工具,它实际上是一个功能齐全的报表开发平台。通过其高级特性,用户可以构建出满足各种需求的复杂报表,而且无需具备深厚的 ABAP 编程技能。尽管有时可能需要借助 ...

Global site tag (gtag.js) - Google Analytics