使用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的原創技術文章,請關注公衆號"汪子熙"或者掃描下面二維碼:

相關文章
相關標籤/搜索