使用ABAP實現一個最簡單的區塊鏈原型

i042416發表於2018-05-03

這個測試程式的前半部分來源於SAP Community的部落格ABAP Meets Blockchain, 作者是Nabheet Madan。

這部分主要負責生成一個ABAP內表,每行記錄是區塊鏈的一個塊。為簡單起見,每塊擁有如下欄位:

  • 塊索引

  • 塊資料 - 這裡簡單用一個字串來描述

  • 塊雜湊 - 這個例子裡,將該塊所有欄位的內容拼成一個長字串,再經過SHA1計算得到的結果,作為該塊的雜湊值。

  • 時間戳 - 儲存了該塊的雜湊計算出來的時間戳,即該塊誕生的時間戳

  • 前一塊的雜湊 - 透過這個欄位把一系列塊串起來形成了鏈的結構。

  • NONCE - 這個欄位需要和難度層級(difficult level)聯合起來理解。

我使用下圖的輸入執行測試程式,

使用ABAP實現一個最簡單的區塊鏈原型

生成了如下圖的區塊鏈:

使用ABAP實現一個最簡單的區塊鏈原型

可以看到每個塊的hash都是00000開頭。這就對應了輸入的難度層級00000。這個層級的意思是,如果根據上文介紹的SHA1計算出來的hash的前5個字元不是以00000開頭,則丟棄掉,nonce加1,再繼續迴圈,直至計算出來的hash前5個字元確實是以00000開頭為止。因此,nonce欄位實際上記錄了該塊誕生以來一共經過了多少次SHA1計算。

測試程式的後半部分是我自己開發的,作用是接受一個包含了區塊鏈資料的ABAP內表,然後以鏈式結構輸出。因為SAPGUI裡沒有現成的連結串列控制元件,所以我用樹形控制元件做了模擬。

使用ABAP實現一個最簡單的區塊鏈原型

完整測試程式在我的github上。

要獲取更多Jerry的原創技術文章,請關注公眾號"汪子熙"或者掃描下面二維碼:

使用ABAP實現一個最簡單的區塊鏈原型
使用ABAP實現一個最簡單的區塊鏈原型

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2153731/,如需轉載,請註明出處,否則將追究法律責任。

相關文章