Solidity で ETH、BTC、その他の暗号通貨の現在の価格を取得する方法

Chainlinkの価格フィードを使用して価格データを取得する
Chainlink オラクルを通じて外部 API を使用して価格データを取得する
最初のレベルのタイトル
スマートコントラクトにおける正確で信頼性の高い価格データの必要性
DeFiプロトコルは今年爆発的な成長を遂げ、DeFiのロック総額は1月の6億8000万ドルから現在は140億ドルまで急増した。ブロックチェーンは外部データにローカルで直接アクセスできないため、これらの DeFi プロトコルはデータ ソースとして外部価格データに依存しています。さらに、これらのアプリケーションは、価格オラクル攻撃やその他の攻撃などのエクスプロイトからアプリケーションを保護するためのデータ保証を提供する必要があります。
Chainlink 価格フィードは、複数の高品質データプロバイダーから集約されたデータを提供し、Chainlink ネットワーク上の分散型オラクルを通じてオンチェーンにデータをフィードすることで、これらの攻撃のリスクを軽減します。 Chainlinkの分散型オラクルメカニズムは、最終価格データが広範囲の市場情報を反映していることを保証します。つまり、最終価格データは、市場全体のさまざまな価格データを集約した後に決定されます。これは、一部の情報だけでなく、その他の情報も考慮に入れて行われます。量や流動性などの要因。
最初のレベルのタイトル
Chainlink を使用してイーサリアムの価格をフィードする
最初のレベルのタイトル
スマートコントラクトを作成する
最初のステップは、スマート コントラクトのガス料金としてテストネットの ETH を取得することです。ある程度の ETH を獲得した後、Chainlink を使用して価格を供給するスマート コントラクトを構築する最も簡単な方法は、標準価格の消費者コントラクトから始めることです。これは、Chainlink への価格フィード リクエストを開始するために使用される基本コントラクトです。この部分はデモンストレーションを目的としており、標準価格消費者契約ですでに定義されている ETH/USD 価格フィードを使用しますが、どのように機能するかを理解できるように、コードのこの部分について詳しく説明します。
まず、AggregatorV3Interface コントラクト インターフェイスがインポートされていることがわかります。このようにして、私たちのスマート コントラクトは、Kovan テスト ネットワークにデプロイされた価格フィード コントラクトを参照できます。次に、コントラクト インスタンスを作成し、ローカル変数に保存します。

次に、価格フィード参照コントラクトがコンストラクターで初期化されていることがわかります。 Kovan テストネット上の ETH/USD 価格フィード参照コントラクトは、アドレス 0x9326BFA02ADD2366b30bacB125260Af641031331 に展開されます。

最初のレベルのタイトル

スマートコントラクトの導入とテスト
これで、コントラクトをデプロイしてテストする準備が整いました。 Remix でコントラクトをコンパイルし、「デプロイ」オプションで環境を「Injected Web3」に変更し、以下のウォレット アドレスが以前に MetaMask ウォレットで ETH を取得したウォレット アドレスであることを確認し、デプロイ ボタンをクリックします。そして手順に従って操作するだけです。最終結果として、スマート コントラクトが Kovan テストネットにデプロイされました。 Remix コンソールのトランザクション出力を通じて記録された、デプロイされたコントラクト アドレスを記録する必要があります。
画像の説明
最初のレベルのタイトル
Solidity で追加の価格データを取得する
Chainlink Price Feed は、上位の DeFi 価格ペアに関する大量の価格データを提供します。特定の株式の価格など、既存の価格フィード契約でカバーされていない資産価格データがスマート コントラクトで必要な場合は、任意の外部 API を呼び出すように Chainlink オラクルをカスタマイズできます。 Chainlink オラクルを使用して外部価格データを取得する最も簡単な方法は、標準の Chainlink APIConsumer コントラクトから始めることです。これは、Chainlink オラクルを通じて外部データのリクエストを開始する標準化された契約です。
APIConsumer コントラクトを作成した後、価格データを取得する API を見つけることができます。たとえば、Alpha Vantage API を使用して、IBM 株の現在の価格を見つけることができます。
API エンドポイントを取得したら、コントラクトに正しいパラメーターを設定し、リクエストを Chainlink オラクルに送信するだけです。これに関する詳細と、標準 APIConsumer コントラクトの使用方法については、Chainlink ドキュメントを参照してください。
要約する
要約する
Chainlink 価格フィードは、高品質のビットコイン、イーサリアム、その他の暗号通貨の価格データを Solidity スマート コントラクトに取得するための信頼できる方法を提供します。さらに、Chainlink のオラクル フレームワークは、株式、商品、その他の資産などの他の価格データを迅速かつ簡単に取得できる柔軟性を提供します。


