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 //このコントラクトは、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)利用可能な関数の全リストを確認してください。
最終編集者: @HiroyukiNaito(opens in a new tab), Invalid DateTime