Tellorをオラクルとしてセットアップする方法
確認クイズ:あなたのプロトコルはもうすぐ完成しますが、オフチェーンのデータにアクセスするにはオラクルが必要です。何をすればよいでしょうか?
(緩やかな) 前提条件
この投稿は、なるべくシンプルかつ明快に、オラクルフィードにアクセスする方法を説明するものです。 ただし、オラクルについて理解するには以下のプログラミングスキルが必要です。
前提知識:
- ターミナルを操作できる
- npmがインストール済みである
- npmを使って、依存関係を管理できる
Tellorは、実装可能かつ開発継続中のオープンソースのオラクルです。 この初心者向けガイドは、Tellor がいかに簡単に導入、稼働できるかを説明するもので、完全に分散化され、検閲耐性を持つオラクルをプロジェクトに追加する方法を学びます。
概要
Tellorは、オフチェーンのデータポイントの値(例:BTC/USD)を請求できるオラクルシステムです。報告者は、イーサリアムの全スマートコントラクトがアクセスできるオンチェーンのデータバンクに対してこの値を追加するために競います。 このデータバンクへの入力は、ステーキング済みの報告者で構成されるネットワークにより保護されています。 Tellorは暗号経済的なインセンティブの仕組みを活用し、TellorのトークンであるTributes(TRB)の発行と紛争メカニズムを通じて、誠実なデータを提出したレポーターに報酬を与え、悪意のあるアクタを罰します。
このチュートリアルでは、以下について説明します:
- 導入および稼働に必要な初回ツールキットの設定方法
- 簡単な実例に基づくステップごとの説明
- 現在Tellorをテストできるテストネットのネットワークアドレス一覧
UsingTellorの使用
まず、Tellorをオラクルとして使用するために必要な基本ツールをインストールします。 Tellor User Contractsをインストールするには、このパッケージ (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 //このコントラクトは、UsingTellor のすべての関数にアクセスできるようになりました78constructor(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)で確認してください。
最終更新: 2025年10月21日