Contract-Development

如何使用乙太坊在連接的機器之間發送消息?

  • March 15, 2016

我想知道如何在賬戶和合約之間發送消息。

這個想法是我有三個 Raspberry Pi 設備。每個都連接到一個對象(第一個連接到溫度感測器,第二個連接到 LED,第三個連接到 LCD)。

我想創建一個自治系統,其中這些對象可以通過乙太坊網路進行通信。

如何使用乙太坊在連接的機器之間發送消息?

對於臨時消息,我會使用Events

它們可用於向設備發送單獨的指令。

對於像目前溫度這樣的持久性數據,您可以使用儲存變數。

例如,如果溫度升高到 60 度以上,這可能會打開 LED。

contract IOT {

   uint public temperature;
   address sensor;
   address led;

   event Instruction( address device, string instruction)

   function IOT (address _sensor, address LED ){
       sensor = _sensor;
       led = LED;
   }

   function updateTemp(uint temp){
       if(msg.sender != sensor) throw;
       temperature = temp;
       if (temperature > 60) {
           Instruction(led, "ON");
       {
       else Instruction (led,"OFF");
   }
}

客戶端只需使用其地址監視事件。該設備也可以直接讀取溫度,但我想展示一些邏輯。

乙太坊網路上各方之間的通信,如果消息是暫時的,不應該永遠儲存,可以通過Whisper協議完成。

如果您想試一試並使用 geth,請確保使用--shh標誌啟動您的節點。這將啟用耳語。

您可以在此處找到有關 Whisper API的更多資訊。可以在此處找到一個有效的聊天範例。

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