AlphaSea チュートリアル
AlphaSeaのチュートリアルです。
このチュートリアルでやること
やること
- alphasea-agentを動かす
- alphasea-example-modelを動かす (Predictor)
- alphasea-trade-botを動かす (Executor)
実現されること
- 毎ラウンド予測を共有 (Predictor)
- メタモデルポジションに従って仮想通貨取引所で自動トレード (Executor)
注意
- このチュートリアルはPolygonのmainnetで動かすので、実際にガス代がかかります
- alphasea-trade-botを動かすと自動トレードで損失する可能性があります
- バグも含めて自己責任
* PredictorとExecutorについてはAlphaSeaの仕組み参照
1. Google Compute Engineインスタンスを作る
alphasea-agent, alphasea-example-model, alphasea-trade-botを動かすためのサーバーを用意します。 Google Compute Engineで以下の構成のインスタンスを2つ作ってください。 以後、インスタンスA, Bと呼びます。
- マシンタイプ: e2-medium
- OS: Container optimized OS 93 LTS (docker version 20.10.0以上 補足)
- ディスク: 40GB
インスタンスと動かすプログラムの対応は以下のようになります。
インスタンス | 動かすプログラム |
---|---|
A | alphasea-agent |
B | alphasea-example-model, alphasea-trade-bot |
インスタンスAはインスタンスBからアクセスされるので、 再起動してもIPアドレスが変わらないように、 静的内部 IP アドレスの予約 をすると良いかもしれません。
Google Compute Engineの代わりにAWSや他のVPSでも良いです。 ただし、dockerとdocker-composeが動く必要があります。
2. docker-composeをインストール
インスタンスA, Bそれぞれで以下のコマンドを実行し、docker-composeをインストールします。 Container optimized OSを使った場合、dockerはすでにインストール済みなので、docker-composeのみでokです。
echo alias docker-compose="'"'docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
-v "$PWD:$PWD" \
-w="$PWD" \
docker/compose:1.24.0'"'" >> ~/.bashrc
source ~/.bashrc
source: Running Docker Compose with Docker
以下のコマンドを実行し、バージョン情報が表示されたら正常にインストールできています。
docker-compose version
3. インスタンスAでalphasea-agentを動かす
インスタンスAで alphasea-agent を動かします。
alphasea-agentは、AlphaSeaスマートコントラクトを、 シンプルなインターフェースで扱えるようにするためのHTTPサーバーです。 後で出てくるalphasea-example-modelとalphasea-trade-botを動かすために必要です。
まず、以下のコマンドを実行し、alphasea-agentリポジトリをホームディレクトリにクローンします。
cd ~/
git clone https://github.com/alphasea-dapp/alphasea-agent.git
以下のリンク先の手順に従い、alphasea-agentを動かします。 リンク先ではウォレット作成、MATIC入金、.envファイル作成、起動を行います。
4. インスタンスBでalphasea-example-modelを動かす
インスタンスBで alphasea-example-model を動かします。
alphasea-example-modelは alphasea-agent に対して毎ラウンド、予測を投稿するプログラムです。 Predictorをやるために必要です。
まず、以下のコマンドを実行し、alphasea-example-modelリポジトリをホームディレクトリにクローンします。
cd ~/
git clone https://github.com/alphasea-dapp/alphasea-example-model.git
以下のリンク先の手順に従い、alphasea-example-modelを動かします。 リンク先では.envファイル作成、起動を行います。 .envに設定するALPHASEA_AGENT_BASE_URLには、インスタンスAの内部IPアドレスを設定してください。
5. インスタンスBでalphasea-trade-botを動かす
インスタンスBで alphasea-trade-bot を動かします。
alphasea-trade-botは、定期的にalphasea-agent からメタモデルポジションを取得し、仮想通貨取引所の無期限先物(Perpetual)のポジションを自動でリバランスするボットです。 Executorをやるために必要です。 対応している取引所はFTXとBinanceです。
まず、以下のコマンドを実行し、alphasea-trade-botリポジトリをホームディレクトリにクローンします。
cd ~/
git clone https://github.com/alphasea-dapp/alphasea-trade-bot.git
以下のリンク先の手順に従い、alphasea-trade-botを動かします。 リンク先では.envファイル作成、起動を行います。 .envに設定するALPHASEA_AGENT_BASE_URLには、インスタンスAの内部IPアドレスを設定してください。
6. リーダーボード確認
以下のリンクでAlphaSea (Polygon mainnet)のリーダーボードを見れます。 ブロックチェーン上にあるデータを表示しています。
AlphaSea Leaderboard (mainnet)
alphasea-example-modelのセットアップが正常に完了していれば、 2時間以内にリーダーボード上に自分のモデルが表示されます。
もし、表示されない場合は、各プログラムのログを確認してみてください。 以下のコマンドでログを確認できます。
docker-compose logs
以上でセットアップは完了です。
次に何をすれば良い?
以下に従ってモデルを改良します。
FAQ
わからないことがあれば、ツイッターかgithub issueで質問してください。