Solidity
如何從乙太坊區塊鏈儲存和讀取數據?
我正在做一個項目,我想在 Etherum 上儲存一些基本資訊,例如:姓名、ID、身高、體重。我怎樣才能將它儲存在區塊鏈上,然後才能讀取它。我讀了這篇我如何在乙太坊區塊鏈中儲存數據, 它說我需要創建一個合約並將其部署在區塊鏈上。
我怎樣才能做到這一點?我只找到編寫發送/接收硬幣的智能合約的教程。
好吧,雖然上面的使用者 Dan Garland 提出了一些您應該考慮的有趣觀點,但執行您打算做的事情的智能合約並不是很複雜。註冊數據並不太昂貴,並且假設您確實想利用區塊鏈的不變性,那裡有一個案例。我可以在醫療記錄類型的場景中看到這一點。
這是一個簡單的範例,說明如何執行此操作:
pragma solidity^0.4.25; contract PatientRecords { struct Patient { string name; string ID; uint weight; uint height; } address doctor; constructor() public { doctor = msg.sender; } modifier onlydoctor() { if (msg.sender == doctor) { _; } } Patient[] public patients; function registerPatient( string _name, string _ID, uint _weight, uint _height) public onlydoctor { patients.push(Patient(_name, _ID, _weight, _height)); } }
因此,上述契約將讓您儲存所需的資訊,並且查詢該資訊不會花費您任何費用。雖然我確實添加了“onlydoctor”修飾符,但那是那裡唯一的額外功能。為了正確實施,出於隱私原因,您必須考慮將某些數據(例如 ID 或名稱)儲存為雜湊值。
在Remix上進行測試,看看它能做什麼。希望這可以幫助。