Solidity

如何從乙太坊區塊鏈儲存和讀取數據?

  • October 6, 2018

我正在做一個項目,我想在 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上進行測試,看看它能做什麼。希望這可以幫助。

引用自:https://ethereum.stackexchange.com/questions/60029