Binance Smart Chain で安全なデータ入力を使用して dApps を構築する
2019年4月、有名な仮想通貨取引所Binanceがサービスを開始しました。バイナンスチェーン)、資産の迅速な交換のために構築および最適化されたネットワークであり、BNB トークンが誕生した場所です。バイナンスチェーンでは次のことができます
BNBトークンの送受信
新しいトークンを発行する
トークンの送信、受信、書き込み/ミント、凍結/凍結解除
2 つの異なるトークン間の取引ペアの作成を提案する
オンチェーンで作成された取引ペアを通じて資産を売買する注文を送信します
Binance Chain は、より高速なトランザクションを求めるユーザーに最適です。ただし、設計上 EVM 互換ではなく、スマート コントラクトをサポートしていません。スマート コントラクトを作成できるようにするために、Binance チームはまた、バイナンス スマート チェーン(BSC) は、Proof of Stake Authorization (PoSA) コンセンサス アルゴリズムを使用し、EVM と互換性のあるネットワークで、スマート コントラクト開発者がバイナンス チェーンとネイティブに統合されたプログラム可能な dApp を構築できるようにします。
このデュアルチェーン アーキテクチャにより、資産交換側での高速トランザクションが可能になる一方で、スマート コントラクトもサポートされます。実際、Binance チームは、このハイブリッド アプローチを説明するために「CeDeFi」という用語を作り、または「集中型分散金融」と呼んでいます。これは、開発者がパーミッションレスでアプリケーションを展開できることを保証しながら、トランザクション スループットの向上を達成するために、あまり分散化されていないアーキテクチャを使用するというトレードオフになります。また、Solidity やチェーンリンクの価格フィード。
Binance Smart Chain Chainlink価格フィード最初のレベルのタイトル
副題
私たちが使用するツール
BSC は EVM と互換性があるため、Solidity 開発環境で使用するものと同じツール セットを使用できます。Truffle,Hardhat,MetaMask待って。このチュートリアルでは、Python スマート コントラクト開発フレームワークを使用します。BrownieBSC で開発されました。Binance テストネットは現在 Chainlink 価格フィードをサポートしておらず、Brownie フレームワークにはローカルで使用できる強力なフォーク チェーン機能があるためです。
Brownie の代わりに Binance Smart Chain で Truffle と Hardhat 開発を使用することに興味がある場合は、チェックしてください。ganache-cli のフォークチェーン機能副題
必要とする
python3
nodejs
ganache-cli
brownie

入門ガイド
すべての設定が完了したので、開梱に進みますブラウニーのチェーンリンクミックス。これは、Chainlink スマート コントラクトを使用するための定型テンプレートです。さらに詳しく知りたい場合は、次のサイトで読むことができますブログ投稿でPythonを使用してブロックチェーンにスマートコントラクトをデプロイする方法。Binance Smart Chain のメインネットまたはテストネットを使用するには、通常、BNB トークンが必要です。これは、イーサリアム ブロックチェーンで ETH を使用するのと似ています。スマート コントラクトを展開する場合は、BNB トークンが必要です。
すべてを 100% ローカルで行うため、始めるのに ETH、LINK、BNB などのテストネット トークンは必要ありません。
まず、Brownie mix プロジェクトを作成する必要があります。
brownie bake chainlink-mixcd
chainlink
ここでプロジェクトに入ります。 ls コマンドを実行すると、ディレクトリの内容が表示されます。
build: これは、プロジェクトがデプロイされたスマート コントラクトとコンパイルされたコントラクトを追跡するために使用するフォルダーです
契約: 契約のソース コード。通常は Solidity または Vyper 言語で書かれています。
インターフェイス: デプロイされたコントラクトと対話するために必要なインターフェイス フォルダー。コントラクトとのやり取りにはすべて、ABI とコントラクト アドレスが必要です。インターフェイスはコントラクトの ABI を取得する優れた方法です
スクリプト: 契約プロセスを自動化するために作成したスクリプト
テスト: テスト
Brownie-config.yaml: このファイルは、スマート コントラクトの処理方法を理解するために必要なすべての情報を Brownie に提供します。どのブロックチェーン ネットワークに展開したいですか?何か特別なパラメータを設定する必要がありますか?これらすべてはこの構成ファイルで設定されます。
requirements.txt , README.md , LICENSE ,.gitignore のようなファイルは無視できるようになりました。演習中にそれらが何に使用されるかを学びます。
副題
フォークされたネットワークを追加する
Binance Chainを使用するには、リモート プロシージャ コール (RPC) リンクまたはホストフィールド。これは、Binance Smart Chain に接続するための API 呼び出しを行う接続です。興味があれば独自のコインを実行することもできますスマートチェーンノードそしてそのノードに接続します。
我々はできるBinance Chain のドキュメントにありますRPC リンク。 ChainID も必要です。ここでは、次のものを使用します。
host=https://bsc-dataseed.binance.org/ chainid=56
最後に、Chainlink 価格フィードを使用するための特定の契約アドレスが必要になります。 Brownie のchainlink-mix プロジェクトには、Binance ETH/USD 価格フィードがプリインストールされていますが、Binance のすべての Chainlink 価格フィードのリストが必要な場合は、Binance または Chainlink のドキュメントで詳細を確認できます。 Brownie-config.yaml ファイルを見ると、ネットワーク フィールドに binance-fork というセクションが表示されます。 Binance フォーク チェーンを使用するために必要なすべての変数は次のとおりです。
ここで、Brownie に Binance Chain に接続するように指示しますが、チェーンをフォークすることになります。チェーンをフォークするということは、チェーンをコピーしてローカルで実行することを意味するため、ガス料金を支払うことなく、テストを迅速に繰り返すことができます。ただし、これは、フォークされたチェーンがオフラインになると、すべてのデータが削除されることも意味します。次のコマンドを使用して、Binance Chain のフォークを Brownie ネットワークに追加できます。

これにより、localhost のポート 8545 でローカルの ganache-cli チェーンが実行されます。デプロイ時に使用されますhttps://bsc-dataseed1.binance.orgフォークソースとして。正しく実行されれば、次のような内容が表示されるはずです。

副題
デプロイ契約
すべての設定が完了したので、ローカルのガナッシュ フォークにコントラクトをデプロイして読み取ることができます。存在する scriptsフォルダがありますdeploy_price_consumer_v3.py脚本。次のコマンドで実行できます。

次のような出力が表示されるはずです。

そこで、次のようにしました。
Binance チェーンをフォークしてローカルで実行する
スマートコントラクトをデプロイする
そこからETHの価格を読み取ります
The current price of ETH is 135462000000
副題
さらに遠く
Binance スマート チェーンを使用してスマート コントラクトをデプロイする方法がわかったので、BSC をさらに詳しく調べたり、Matic、xDai、その他のレイヤー 2 ネットワークなどの他のサイドチェーンを使用したりすることもできます。 Hardhat および Truffle フレームワークを好む場合は、それらのフレームワークで ganache-cli コマンドを実行し、いくつかのローカル テストを実行できるかどうかを確認してください。今後もたくさんのハッカソンが開催されるので、この分野の他の才能ある人々と協力し、いくつかの賞を獲得し、本物の契約開発者として成長する機会を得るために、ぜひ参加してください。
スマート コントラクトの機能を拡張し続けたい場合は、次のサイトをご覧ください。Chainlink 開発者向けドキュメントそして参加してくださいDiscordの技術的な議論。 Binance Smart Chain、Brownie、Truffle、Hardhat、またはその他の Chainlink 統合を使用してクールなプロジェクトを構築する場合は、必ず @chainlink のタグを付けてください。これにより、あなたが行った素晴らしい成果を確認できるようになります。


