【ブロックチェーン】分散型金融DeFiのプログラミング

この記事では、DeFiのプログラミングについてご紹介します。Defiを一言で言うとブロックチェーン上に構築される金融サービスのことです。
はじめに
この記事では、DeFiのプログラミングについてご紹介します。Defiを一言で言うとブロックチェーン上に構築される金融サービスのことです。
Defiとは
DefiはDecentralized Financeの略で日本語では分散型金融と言われるものです。
DeFiは、金融市場を革新することになると言われており非常に注目を集めています。主にブロックチェーン上にスマートコントラクト技術を活用して構築されます。
DeFiに注目すべき理由は、ブロックチェーンの用途を単なる価値の移動から、金融での複雑な用途に拡大することにあります。
これまでの金融は銀行のような一部の機関が管理しているイメージがなかったでしょうか。これからそのイメージが大きく変わっていきます。その際のキーワードがDeFiなのです。
DeFiは、金融市場を革新することになると言われており非常に注目を集めています。主にブロックチェーン上にスマートコントラクト技術を活用して構築されます。
DeFiに注目すべき理由は、ブロックチェーンの用途を単なる価値の移動から、金融での複雑な用途に拡大することにあります。
これまでの金融は銀行のような一部の機関が管理しているイメージがなかったでしょうか。これからそのイメージが大きく変わっていきます。その際のキーワードがDeFiなのです。
PythonでDeFiを使う
まず、 node.jsとnpmをインストールする必要があります 。node.jsはJavaScriptランタイムであり、node.jsにはnpmがインストールされています。次のコマンドを実行して、正しく実行されたかどうかを確認できます。
次に、コマンドラインからGanacheをインストールします。
Ganacheとは、イーサリアムブロックチェーンを実行するためのコマンドラインインターフェイスであり、イーサリアム分散型アプリケーション(dApps)を急速に開発およびテストすることができます。
Ganacheは、Pythonで記述されており、ローカルブロックチェーンを簡単に起動できます。npmとnode.jsを使用してダウンロードする必要があります。
以下のコマンドでインストールします。
次に、Brownieをインストールします。Brownieは、イーサリアム仮想マシンを対象としたスマートコントラクトのためのPythonベースの開発およびテストフレームワークです。
以下の特徴を持ちます。
・SolidityとVyperを完全にサポート
・トレースベースのカバレッジ評価を含む、pytestによる契約テスト
・仮説によるプロパティベースのステートフルテスト
・Pythonスタイルのトレースバックやカスタムエラー文字列などの強力なデバッグツール
・プロジェクトをすばやく操作するための組み込みコンソール
・ethPMパッケージのサポート
まず、以下のコマンドでBrownieをインストールします。
pipとは正式名称を「Pip Installs Packages」または「Pip Installs Python」と呼び、パッケージ管理ツールの1つです。パッケージ管理ツールは、OSの中にある色々なソフトウェアのインストールや削除・依存関係の管理をしてくれます。つまり、Pythonを使った開発や、作成したシステムの管理をしてくれるものということです。
次に、ターミナルを閉じて再起動します。
# npm --version
# node --version
次に、コマンドラインからGanacheをインストールします。
Ganacheとは、イーサリアムブロックチェーンを実行するためのコマンドラインインターフェイスであり、イーサリアム分散型アプリケーション(dApps)を急速に開発およびテストすることができます。
Ganacheは、Pythonで記述されており、ローカルブロックチェーンを簡単に起動できます。npmとnode.jsを使用してダウンロードする必要があります。
以下のコマンドでインストールします。
# npm install -g ganache-cli
次に、Brownieをインストールします。Brownieは、イーサリアム仮想マシンを対象としたスマートコントラクトのためのPythonベースの開発およびテストフレームワークです。
以下の特徴を持ちます。
・SolidityとVyperを完全にサポート
・トレースベースのカバレッジ評価を含む、pytestによる契約テスト
・仮説によるプロパティベースのステートフルテスト
・Pythonスタイルのトレースバックやカスタムエラー文字列などの強力なデバッグツール
・プロジェクトをすばやく操作するための組み込みコンソール
・ethPMパッケージのサポート
まず、以下のコマンドでBrownieをインストールします。
# python3 -m pip install --user pipx
# python3 -m pipx ensurepath
pipとは正式名称を「Pip Installs Packages」または「Pip Installs Python」と呼び、パッケージ管理ツールの1つです。パッケージ管理ツールは、OSの中にある色々なソフトウェアのインストールや削除・依存関係の管理をしてくれます。つまり、Pythonを使った開発や、作成したシステムの管理をしてくれるものということです。
次に、ターミナルを閉じて再起動します。
# pipx installeth-brownie
チェーンリンクプロジェクトの開始
Brownie を使い始めるには、ブラウニー ミックスと呼ばれるものを使って定型コードを提供します。
以下のコマンドを実行します。
これにより、いくつかのデフォルトコードがビルドされた状態で新しいプロジェクトに配置されます。
build:プロジェクトがデプロイされたスマートコントラクトとコンパイルされたコントラクトの場所
contract:契約のソースコード。通常、SolidityまたはVyperで記述されています。
interface:デプロイされたコントラクトを操作するために必要なインターフェースのレイアウト。契約とのすべてのやり取りには、 ABI とアドレスが必要です。
script:契約を処理するプロセスを自動化するために作成するスクリプト
test:テスト
brownie-config.yaml:Brownieがスマートコントラクトの操作方法を理解するためのすべての情報があります。
以下のコマンドを実行します。
# brownie bake chainlink-mix
# cd chainlink
これにより、いくつかのデフォルトコードがビルドされた状態で新しいプロジェクトに配置されます。
build:プロジェクトがデプロイされたスマートコントラクトとコンパイルされたコントラクトの場所
contract:契約のソースコード。通常、SolidityまたはVyperで記述されています。
interface:デプロイされたコントラクトを操作するために必要なインターフェースのレイアウト。契約とのすべてのやり取りには、 ABI とアドレスが必要です。
script:契約を処理するプロセスを自動化するために作成するスクリプト
test:テスト
brownie-config.yaml:Brownieがスマートコントラクトの操作方法を理解するためのすべての情報があります。
まとめ
今回はブロックチェーン上に構築される金融サービスであるDeFiについてご紹介してきました。
PythonでDeFiを構築するには今回ご紹介した方法で可能です。Pythonに慣れている場合は公式サイトに載っているチュートリアルを参考にしながら行うとよいでしょう。
https://blog.chain.link/develop-python-defi-project/
PythonでDeFiを構築するには今回ご紹介した方法で可能です。Pythonに慣れている場合は公式サイトに載っているチュートリアルを参考にしながら行うとよいでしょう。
https://blog.chain.link/develop-python-defi-project/