Tellorをオラクルとしてセットアップする方法
確認クイズ:あなたのプロトコルはもうすぐ完成しますが、オフチェーンのデータにアクセスするにはオラクルが必要です。何をすればよいでしょうか?
(ソフトな)前提知識
この投稿は、なるべくシンプルかつ明快に、オラクルフィードにアクセスする方法を説明するものです。 ただし、オラクルについて理解するには以下のプログラミングスキルが必要です。
前提条件:
- ターミナルを操作できる
- npmがインストール済みである
- npmを使って、依存関係を管理できる
Tellorは、実装可能かつ開発継続中のオープンソースのオラクルです。 この初心者向けガイドは、Tellor がいかに簡単に導入、稼働できるかを説明するもので、完全に分散化され、検閲耐性を持つオラクルをプロジェクトに追加する方法を学びます。
概要
Tellorは、オフチェーンのデータポイントの値(例:BTC/USD)を請求できるオラクルシステムです。報告者は、イーサリアムの全スマートコントラクトがアクセスできるオンチェーンのデータバンクに対してこの値を追加するために競います。 このデータバンクへの入力は、ステーキング済みの報告者で構成されるネットワークにより保護されています。 Tellorは、暗号資産経済におけるインセンティブの仕組みを活用し、Tellorのトークン、トリビュート(TRB)、および紛争メカニズムに基づき、正直なデータを提出した報告者に報酬を与え、悪意のユーザーを処罰します。
このチュートリアルでは、以下について説明します:
- 導入および稼働に必要な初回ツールキットの設定方法
- 簡単な実例に基づくステップごとの説明
- 現在Tellorをテストできるネットワークのアドレスリスト
Tellorを使うには
まず、Tellorをオラクルとして使用するために必要な基本ツールをインストールします。 Tellorのユーザーコントラクトをインストールするには、このパッケージ(opens in a new tab)を使ってください。
npm install usingtellor
インストールが完了すると、「UsingTellor」のコントラクトから関数を継承できるようになります。
うまく行きましたね! ツールが準備できたので、ビットコイン価格の情報を取得するという単純なエクササイズを実行してみましょう:
BTC/USDの例
この「UsingTellor」コントラクトを継承し、Tellorのアドレスをコントラクタの引数として渡します:
具体的なコードは、以下のようになります:
1import "usingtellor/contracts/UsingTellor.sol";23contract PriceContract is UsingTellor {4 uint256 public btcPrice;56 //This Contract now has access to all functions in UsingTellor78constructor(address payable _tellorAddress) UsingTellor(_tellorAddress) public {}910function setBtcPrice() public {11 bytes memory _b = abi.encode("SpotPrice",abi.encode("btc","usd"));12 bytes32 _queryId = keccak256(_b);1314 uint256 _timestamp;15 bytes _value;1617 (_value, _timestamp) = getDataBefore(_queryId, block.timestamp - 15 minutes);1819 btcPrice = abi.decode(_value,(uint256));20 }21}すべて表示コピー
コントラクトアドレスの完全なリストについては、こちら(opens in a new tab)を参照してください。
利便性のために、UsingTellorのリポジトリには簡単な統合を目的としたバージョンであるTellor Playground(opens in a new tab)コントラクトが含まれています。 有益な関数のリストについては、 こちら(opens in a new tab)を参照してください。
Tellorオラクルをより堅牢に実装したい場合は、こちらで(opens in a new tab)利用可能な関数の全リストを確認してください。
最終編集者: @nhsz(opens in a new tab), 2023年8月15日