使用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的原創技術文章,請關注公眾號"汪子熙"或者掃描下面二維碼:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2153731/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 300行ABAP程式碼實現一個最簡單的區塊鏈原型區塊鏈原型
- 簡單的實現一個原型鏈原型
- 一個簡單的區塊鏈程式碼實現區塊鏈
- 用java實現一個簡單的區塊鏈Java區塊鏈
- 一個簡單的區塊鏈貨幣,python實現區塊鏈Python
- 一個簡單的區塊鏈區塊鏈
- NodeJS實現簡易區塊鏈NodeJS區塊鏈
- 簡單說區塊鏈區塊鏈
- 什麼是區塊鏈,簡單瞭解區塊鏈區塊鏈
- 61行程式碼構建最簡單區塊鏈行程區塊鏈
- 使用Javascript實現小型區塊鏈JavaScript區塊鏈
- 使用rails實現最簡單的CRUDAI
- JavaScript實現區塊鏈JavaScript區塊鏈
- 和數軟體:以最簡單的方式瞭解區塊鏈技術區塊鏈
- 使用MVC模式實現區塊鏈開發MVC模式區塊鏈
- 區塊鏈-NFT 的實現原理區塊鏈
- 區塊鏈知識,區塊鏈簡史區塊鏈
- 雲+區塊鏈 實現區塊鏈技術的普惠應用區塊鏈
- 比特幣和區塊鏈(2):比特幣中區塊鏈的實現比特幣區塊鏈
- 實現一個簡單的TomcatTomcat
- 使用WebSocket實現一個簡單的頁面聊天Web
- 200行golang 實現的區塊鏈Golang區塊鏈
- 打造一個最小區塊鏈區塊鏈
- 關於一個最簡單的數獨解題實現與疑惑一
- 區塊鏈簡介區塊鏈
- 使用JS實現一個簡單的選項卡效果JS
- websocket+node實現一個最簡單的即時通訊功能Web
- 實現一個簡單的MVVM(Compile)MVVMCompile
- php實現一個簡單的socketPHP
- 實現一個簡單的 RESTful APIRESTAPI
- 一個最簡單的web componentsWeb
- .Net Core實現區塊鏈初探區塊鏈
- 區塊鏈應用|CryptoKitties效應:一個與區塊鏈有關的事故區塊鏈
- 實現一個簡單的 jQuery 的 APIjQueryAPI
- 用 JavaScript 寫一個區塊鏈JavaScript區塊鏈
- 基於Fisco-Bcos的區塊鏈智慧合約-簡單案例實踐區塊鏈
- 實現最簡單的模板替換
- Laravel 使用者認證最簡單的實現 比 Jetstream 要簡單很多Laravel