Dapps
使用乙太坊進行數據驗證
我對不列顛哥倫比亞省,特別是乙太坊世界還很陌生,我才剛剛開始接觸這項強大技術的潛在應用。
當我即將建構我的第一個項目時,我想創建一個簡單的 dApp 來驗證 Web 平台數據庫上的數據。基本上這個 dApp 有兩個功能:
- 第一個在 BC 上發布數據的 SHA-256 雜湊;
- 第二個檢索儲存在 BC 上的特定散列,並根據儲存在 db 中的散列對其進行驗證,以檢查它是否已被更改。
顯然,散列的數量將從 1 開始,隨著新數據輸入數據庫而隨著時間的推移不斷擴展。實現我的目標的最佳方式是什麼?分佈式雜湊表是否合適?最後,這個解決方案的交易成本是多少?
提前感謝您幫助我。期待您的建議。
您可以在區塊鏈上創建一個智能合約,用於跟踪雜湊。與在乙太坊上儲存數據相比,儲存雜湊值便宜。
交易成本可以使用以下公式計算:
Cost = Gas Cost * Estimated Gas Required
您可以使用 web3j 函式來計算執行交易所需的氣體成本和估計氣體。以下功能可能有用:
web3.eth.estimateGas(callObject [, callback]) web3.eth.getGasPrice([callback])
儲存 32 字節散列需要大約 25000 氣體,大約是$0.1545,
關於 DHT 與區塊鏈,這將取決於您計劃如何設計系統,因為 DHT 有利於查找並為您提供鍵值映射,而區塊鍊為您提供防篡改數據。DHT 是去中心化的,但與區塊鏈不同,並非每個節點都會保留數據。
如果您決定使用乙太坊智能合約,您將創建大致如下所示的內容:
mapping (uint => string) hashes; function storeHash(ID, hash) onlyOwner { hashes[ID] = hash; } function retreiveHash(ID){ return hashes[ID]; }
這是一個很好的初學者教程,類似於您的案例