Solidity
智能合約和預言機
我無法理解流程:
合約 <==觀察/注入== Oracle <==requestdata==> API
我讀了幾篇這樣的文章,我知道流動的理論。但究竟什麼是神諭?是智能合約嗎?它是監視智能合約事件並因此做出某些事情的外部服務嗎?誰為預言機狀態變化(gas)買單?預言機可以被視為應用程序的客戶端嗎?
預言機是一種外部服務(主要是在區塊鏈之外),它根據請求將資訊輸入到區塊鏈中。
所以流程是這樣的:
你的合約向預言機智能合約發送請求。例如獲取火星上的目前溫度。
預言機合約做了一些事情來引起預言機服務提供商的注意——可能會發出一個事件,但具體的方式並不相關。
預言機的後端系統注意到預言機合約中有一個新的資訊請求,它從某個地方檢索該資訊
Oracle 的後端系統向 oracle 合約發送一個包含請求資訊的交易
預言機合約在交易中收到請求的資訊,它要麼直接將其轉發給你的合約,要麼你的合約必須從預言機合約中提取資訊。或者,oracle 的後端系統可以將交易直接發送到您的合約。
所以 oracle 只是一個外部服務,它有一個智能合約,用於與使用者的智能合約進行通信併中繼數據。當然,使用會產生 gas 費用,但這取決於預言機提供商來決定誰為他們付費以及如何付費——這是一個商業決策。但最終最終使用者為服務(gas)付費。