Sidekick概要とセットアップ
Sequence Sidekickは、Sequenceのインフラを活用し、シンプルなAPIを通じてブロックチェーンの読み書きを可能にする、充実したバックエンドを提供します。
主な機能 🚀
簡単セットアップ
公開されているDockerイメージを利用するか、最小限の設定で開発モードを開始できます。
柔軟なウォレットオプション
ローカルで管理する秘密鍵を使ったSequenceスマートウォレット、またはAWS/GCP KMSと安全に連携してセキュリティを強化できます。
Webhook管理
高性能なSequence Indexerを活用し、独自のカスタムWebhookを構築・設定できます。
Tenderly連携
Tenderlyを利用してトランザクションのデバッグが簡単に行えます。Sidekick経由で実行された各トランザクションにはシミュレーション用URLが付与されます。
自動コントラクト検証
コントラクトの検証は手間がかかりますが、Sidekickがデプロイごとに自動で対応します。
Sequence Builderとの統合
すでにSequence Builderのプロジェクトをお持ちですか?すべてのコントラクトデータをAPIコール1回でSidekickにインポートできます。
Bull MQダッシュボード内蔵
バックグラウンドジョブの作成・監視・管理が可能です。
Swagger UI
APIドキュメントを確認し、Swagger UIでエンドポイントのテストが行えます。
最適化されたトランザクション実行
トランザクションは最適なガス価格で送信され、3ブロック以内にmempoolに含まれない場合は自動で再送信されます。
分析とモニタリング
SidekickはGrafana、Prometheus、Blackbox Exporterと統合されており、バックエンドの状態を監視できます。
バックエンドウォレットについて
Sidekickは、指定したEVM_PRIVATE_KEY
に基づいてSequenceスマートコントラクトウォレットを作成します。これにより、ガススポンサーシップやバッチ処理などの最適化が可能です。
バックエンドウォレットの設定方法:
- ローカル環境用にEVM_PRIVATE_KEYを.envファイルに記載(本番環境では非推奨)
- 推奨方法: AWS または GCP KMSを設定し、必要な認証情報を.envファイルに追加
ローカル、AWS、GCPウォレット構成に必要な認証情報は、env.exampleファイルをご参照ください。
AWS KMSおよびGCP KMSで正しいキータイプを選択してください。
- AWS KMS:
ECC_NIST_P256_KEY_ALIAS
- GCP KMS:
GCP_KEY_RING_NAME
SidekickはAWSおよびGCP KMSとシームレスに統合でき、KMS署名者の利用が可能です。アダプターを用意しており、AWS/GCP KMSをethersの署名者タイプと互換にし、最新バージョンにも対応しています。
Sequence Sidekickは、ブロックチェーンアプリ開発者にスケーラブルですぐ使えるバックエンドソリューションを提供し、バックエンドの複雑さを気にせず開発に集中できます。
CLIからDockerで開始する
GitHub Container Registryで公開されているDockerイメージをご利用いただけます。
これで、最小限の機能を備えたローカルのSidekickバックエンドがポート7500で起動します。
SEQUENCE_PROJECT_ACCESS_KEYの設定も推奨しますが、テスト用にデフォルトのキーを用意しています。ご自身のキーはSequence Builderから取得できます。
開発モードでSidekickを起動する
Sidekickリポジトリをクローンする
必要な環境変数を設定する
必須環境変数
変数 | 説明 |
---|---|
PROJECT_ACCESS_KEY | Sequence Builder APIキーから取得したアクセスキー |
EVM_PRIVATE_KEY | トランザクション署名に使用するEOAの秘密鍵 |
オプションの環境変数
変数 | 説明 |
---|---|
PORT | Sidekickサーバーのポート(デフォルト: 7500) |
HOST | サーバーのホストアドレス(デフォルト: 0.0.0.0) |
REDIS_HOST | Redisサーバーのホスト(デフォルト: localhost) |
REDIS_PORT | Redisサーバーのポート(デフォルト: 6379) |
REDIS_PASSWORD | Redisサーバーのパスワード(任意) |
DATABASE_URL | Sidekickデータベース用のPostgreSQL接続文字列 |
SIDEKICK_API_SECRET_KEY | Sidekick APIへの書き込みアクセスに必要なシークレットキー |
ETHERSCAN_API_KEY | コントラクト検証を有効にするためのEtherscan APIキー |
VERIFY_CONTRACT_ON_DEPLOY | デプロイ時の自動コントラクト検証を有効化(trueで有効) |
DEBUG | デバッグログを有効化(trueで詳細出力) |
SIGNER_TYPE | 使用する署名者の種類(local, aws_kms, google_kms) |
AWS_REGION | AWSアカウントのリージョン |
AWS_ACCESS_KEY_ID | AWSアクセスキーID |
AWS_SECRET_ACCESS_KEY | AWSシークレットアクセスキー |
AWS_KMS_KEY_ID | 使用するKMSキーのID |
PROJECT | GCPプロジェクト名 |
LOCATION | GCPプロジェクトのロケーション |
KEY_RING | キーリング名 |
CRYPTO_KEY | 暗号鍵名 |
CRYPTO_KEY_VERSION | 暗号鍵のバージョン |
ウォレット構成用変数
以下のいずれかの構成を選択してください:
ローカルウォレットの場合:
変数 | 説明 |
---|---|
SIGNER_TYPE | local |
EVM_PRIVATE_KEY | 0x… |
AWS KMSの場合:
変数 | 説明 |
---|---|
SIGNER_TYPE | aws_kms |
AWS_REGION | AWSアカウントのリージョン |
AWS_ACCESS_KEY_ID | AWSアクセスキーID |
AWS_SECRET_ACCESS_KEY | AWSシークレットアクセスキー |
AWS_KMS_KEY_ID | 使用するKMSキーのID |
GCP KMSの場合:
変数 | 説明 |
---|---|
SIGNER_TYPE | google_kms |
PROJECT | GCPプロジェクト名 |
LOCATION | GCPプロジェクトのロケーション |
KEY_RING | キーリング名 |
CRYPTO_KEY | 暗号鍵名 |
CRYPTO_KEY_VERSION | 暗号鍵のバージョン |
Dockerがインストールされていることを確認してください
こちらから入手できます
DockerコンテナでSidekickを起動する
バックエンドウォレットアドレスの確認
Dockerを使わない開発モード
Dockerを使わずにコードベースを変更してテストしたい場合
このコマンドでSidekickが起動し、Redisサーバーも同時に開始されます。
ガススポンサーシップ
テストネットでは、すべてのトランザクションの手数料を当社が負担します。ただし、メインネットでは、トランザクションが正しく処理されるようにコントラクト自体の手数料をスポンサーする必要があります。詳しくは、Gas Sponsorshipソリューションをご覧ください。