スタンドアロン
Standalone モードでの Block Builder セットアップと運用手順
Block Builder ノードは、INTMAX Network にブロックを送信する重要なコンポーネントです。
このドキュメントでは、Standalone モードで Block Builder を効率的にセットアップ・運用するための詳細な手順を説明します。このモードでは、インターネットから Block Builder へのネットワークアクセス設定(ファイアウォール、ポート、ロードバランサーなど)をご自身で行う必要があります。Standalone でありながら、クラウド環境で複数の Block Builder インスタンスをデプロイでき、スケーラブルかつ冗長な構成が可能です。
Standalone モードはより高い柔軟性とカスタマイズ性を提供し、オペレーターがインフラや運用ニーズに応じたセットアップを構築できます。
注意: Mainnet と Testnet の2つのバージョンを提供しています。混同しないようご注意ください。
主な特徴
Block Builder は、秘密鍵(Private Key)で指定された Ethereum アカウントから Scroll にブロックを送信します。Scroll ネットワークとやり取りするコアコンポーネントであり、将来の機能拡張に対応するため、外部トランザクションを受け付ける設計になっています。
メインネット環境で安定した運用を行うため、Block Builder は継続的に稼働させる必要があります。
トランザクションの送信:
Block Builder は外部ソースからトランザクションを収集し、ブロックとして
Scrollネットワークに送信します。これにより、ネットワーク全体との効率的なやり取りとシームレスなブロック送信を実現します。
手数料の収集:
Block Builder はトランザクションごとにユーザーあたり $0.005 の手数料を収集します。
1ブロックあたり最大 $0.005 × 128 の手数料を蓄積でき、スケーラブルでインセンティブのある運用を支えます。
オンラインステータスの通知:
Block Builder は1日1回、Block Builder Registry Contract にトランザクションを送信して、Indexer にオンラインであることを通知します。
Indexer は最適な Block Builder の URL をユーザーに配信する重要な役割を担っており、効率的で信頼性の高いネットワークインタラクションを確保します。
要件
推奨構成:
2 vCPU
4 GB RAM
10 GB SSD
最小構成:
1 vCPU
1 GB RAM
4 GB SSD
はじめに
環境変数の設定
.env ファイルを作成し、以下の設定を行います。
プレースホルダーを実際の認証情報と URL に置き換えてください。
BLOCK_BUILDER_PRIVATE_KEY=<private-key>:ScrollNetwork 上でETHを保有する Ethereum アカウントの秘密鍵BLOCK_BUILDER_URL=<your-block-builder-url>: インターネットからアクセス可能な Block Builder の URL。ポート番号がある場合は必ず含めてください⚠️ 注意: 安全な通信を確保するため、
http://ではなく必ずhttps://を使用してください。L2_RPC_URL=<your-scroll-rpc-url>:ScrollNetwork の RPC エンドポイント。Alchemy ダッシュボードでScrollネットワークが有効になっていることを確認してください
重要: 秘密鍵(<private-key>)は絶対に公開・共有しないでください。アカウントへの不正アクセスを防ぐため、安全に管理してください。安定した運用のため、Block Builder は Scroll Network 上で常に最低 0.1 ETH の残高を維持することを推奨します。
注意: テストネット環境を使用する場合は、RPC URL を Scroll Sepolia の RPC エンドポイントに置き換え、Scroll Sepolia Network 上で ETH を保有するアカウントを使用してください。また、Alchemy ダッシュボードで Scroll ネットワークが有効になっていることを確認してください。
.env ファイルで値を指定する際は、引用符を使用しないでください。
[Mainnet]
[Testnet β]
Docker での実行(Linux)
以下のコマンドを実行する前に、<release-version> を公式リリースページで公開されている最新バージョンに置き換えてください。
注意: リリースバージョンに v プレフィックスは付けないでください。
👉 最新リリースはこちらで確認
コマンドを実行する前に、.env ファイルのセットアップまたは必要な環境変数の設定が完了していることを確認してください。
⚡ ヒント: ログが不要でサーバーのストレージ使用量を抑えたい場合は、Docker を --log-driver=none オプションで実行できます。これによりログの永続化が無効になり、ディスクの圧迫を防げます。
x86-64 アーキテクチャ
arm-64 アーキテクチャ
バイナリでの実行(Linux)
以下のコマンドを実行する前に、<release-version> を公式リリースページで公開されている最新バージョンに置き換えてください。
注意: リリースバージョンには v プレフィックスを付けてください。
👉 最新リリースはこちらで確認
コマンドを実行する前に、.env ファイルのセットアップまたは必要な環境変数の設定が完了していることを確認してください。
x86-64 アーキテクチャ
arm-64 アーキテクチャ
ヘルスチェック
Q: Block Builder が正しく動作しているか確認するには?
これらのエンドポイントは、Block Builder のヘルス、動作状況、手数料の詳細に関する重要な情報を提供します。ローカルで動作を確認した後、エンドポイントが外部ソースからもアクセス可能であることを必ず確認してください。 これにより、ネットワーク参加者があなたの Block Builder と通信できるようになります。ファイアウォール設定やリバースプロキシが、適切なポートへの外部アクセスを許可していることを確認してください。
ローカルチェック
まず、Block Builder がローカルで動作していることを確認します。
外部チェック
ローカルでの動作確認後、ヘルスチェックエンドポイントが外部ソースからもアクセス可能であることを確認します。<your-domain> を実際のドメインまたは IP アドレスに置き換えてください。
⚠️ ファイアウォールルール、リバースプロキシ(例: Nginx)、またはクラウドサービスの設定で、エンドポイントへの外部 HTTP/HTTPS アクセスが許可されていることを確認してください。
Q: Block Builder が登録済みで稼働準備ができているか確認するには?
以下の API を呼び出すことで、Block Builder の登録状況を確認できます。
<your-block-builder-address> を実際の Block Builder アドレスに置き換えてください。
レスポンスは以下のようになります。
registered: Block Builder が Indexer に登録済みかどうかを示しますready: Block Builder が手数料と残高のチェックをパスし、アクティブな Builder リストに含まれているかどうかを示します
この API を使用して、Indexer における Block Builder の現在のステータスを確認できます。
手数料情報
ローカルチェック
Block Builder の手数料関連データをローカルで確認します。
外部チェック
ローカルでの動作確認後、fee-info エンドポイントが外部ソースからもアクセス可能であることを確認します。<your-domain> を実際のドメインまたは IP アドレスに置き換えてください。
FAQ
Q: Indexer コンポーネントの概要と Block Builder の要件
Indexer は、複数の有効な Block Builder の URL を管理し、ユーザーに適切な Block Builder の URL を返すコンポーネントです。
Indexer は、以下のすべての条件を満たす Block Builder のみを返します。
定期的に HeartBeat シグナルを送信している
登録された URL がアクセス可能である
残高が最低 0.001
ETHある
Block Builder はこれらの条件を満たすように設定する必要があります。
Q: 自分の Block Builder によるブロック送信の確認方法
ブロック内の minter アドレスが、Block Builder に設定したアドレスと一致していれば、そのブロックはあなたの Block Builder によって送信されたものです。
送信されたブロックは以下の Explorer で確認できます。
Q: Docker コンテナ内の同期データはどこに保存されますか?
A: Block Builder はデータを永続的に保存しません。トランザクションデータを受信してブロックとして送信するのみです。トランザクションデータは一時的にメモリに保持されますが、ディスクに書き込まれたりコンテナ内に永続的に保存されたりすることはありません。そのため、同期データが保存される特定のディレクトリはありません。
Q: Ubuntu で libssl.so.1.1 ライブラリが見つからないエラーの解決方法
libssl.so.1.1 ライブラリが見つからないエラーの解決方法Ubuntu で libssl.so.1.1 が見つからないエラーが発生した場合、以下の手順で必要なパッケージを手動インストールできます。
Q: L2_RPC_URL に Alchemy 以外の RPC URL を使用できますか?
L2_RPC_URL に Alchemy 以外の RPC URL を使用できますか?A: はい、L2_RPC_URL には Alchemy 以外の RPC プロバイダーも使用できます。代替プロバイダーの例:
Infura
Ankr
カスタム RPC: 自前のセルフホストノードの RPC URL
パフォーマンスと安定性は RPC プロバイダーによって異なる場合があるため、環境とユースケースに最適なものを選択してください。
Q: BLOCK_BUILDER_URL には何を設定すればよいですか?
BLOCK_BUILDER_URL には何を設定すればよいですか?Block Builder にアクセスできる BLOCK_BUILDER_URL を設定してください。ユーザーはこの URL を通じてあなたの Block Builder にトランザクションを送信します。URL がアクセスできない場合、Block Builder はブロックを送信できません。
${BLOCK_BUILDER_URL}/health-check にアクセスして確認できます。URL がアクセス可能であれば、以下のようなヘルスチェックレスポンスが返されます。
Q: メインネットでの Block Builder 1回の送信にかかるガス代はいくらですか?
Block Builder が1ブロックを送信するのに必要なガス代は約 0.000016 ETH です。安定した運用のためには、この金額よりも多めに保持しておくことをお勧めします。メインネットや Scroll ネットワークの混雑状況によりガス代は変動する場合があるのでご注意ください。
Q: Indexer に自分の Block Builder が登録されているか確認する方法
以下の URL にリクエストを送信してください。Indexer に登録されているアドレスのうち3件がランダムに返されます。リクエストを数回繰り返すと、現在アクティブな Block Builder のリストを確認できます。
Q: Block Builder の URL が Indexer に登録されるタイミングは?
Block Builder の稼働開始後、INITIAL_HEART_BEAT_DELAY で設定された時間が経過すると、Block Builder Registry Contract に URL が登録されます。 URL が有効であれば、その 10〜15 分後に Indexer に登録されます。 登録されるためには、Indexer 側から URL にアクセスできる必要があります。
Q: Deposit に必要な最低 ETH 量は?(安定運用にはどれくらいの ETH が必要?)
ETH 量は?(安定運用にはどれくらいの ETH が必要?)Block Builder を安定して運用するには、最低 0.01 ETH を Deposit してください。
1ブロックの送信に必要なガス代は約 0.000016 ETH ですが、ネットワークの混雑状況により変動します。残高が 0.001 ETH を下回ると、ブロックの送信ができなくなります。
推奨される残高管理:
目安として、アカウントに 常に 0.01
ETH以上を維持してください残高が 0.002
ETHを下回った場合、できるだけ早くチャージしてください残高が 0.001
ETHを下回った場合、ブロック送信が失敗するため、定期的な残高確認と適時のチャージを強く推奨します
Q: Block Builder でカスタム手数料を設定できますか?
はい、Block Builder ではカスタム手数料を設定できます。対応トークンは ETH、~~USDC、WBTC~~ で、それぞれ tokenIndex で以下のように識別されます。
tokenIndex: 0→ETHtokenIndex: 1→ITXtokenIndex: 2→WBTCtokenIndex: 3→USDC
たとえば、0:2500000000000 を指定すると、手数料は 0.0000025 ETH に設定されます。
複数のトークンの手数料を同時に定義することもできます。
例:
REGISTRATION_FEE=0:2500000000000~~,1:100000~~
これにより、手数料は 0.0000025 ETH および 1 に設定されます。USDC
リファレンス
INTMAX2 ネットワークで開発を行う際に役立つリソースです。
INTMAX2 Block Builder
GitHub でソースコードと実装の詳細を確認できます。
INTMAX Mainnet
App フロントエンド: Mainnet App を開く
Explorer: Mainnet Explorer を開く
INTMAX Testnet
App フロントエンド: Testnet App を開く
Explorer: Testnet Explorer を開く
スマートコントラクト
デプロイ済みスマートコントラクトとその使い方に関するドキュメントです。
最終更新