クイックスタートガイド
Dingoは、Go言語で書かれたCardanoブロックチェーンデータノードであり、Ouroboros Network Node-to-Nodeミニプロトコルファミリーを使用して、Cardanoブロックチェーン上のネットワーク通信に積極的に参加します。
⚠️ これは開発中のプロジェクトであり、現在活発に開発が進められています
このガイドでは、Dingoバイナリのダウンロードと、Cardano PreviewネットワークでDingoノードを実行するために必要なすべての手順を説明します。以下の手順に従って始めましょう。
✅ このガイドは一般的なLinux環境を前提としています。必要に応じてコマンドとパスを調整してください。
ステップ1 - Dingoバイナリのダウンロード
Section titled “ステップ1 - Dingoバイナリのダウンロード”Dingoリリースページから最新リリースをダウンロードします。
⚠️ お使いのシステムに合わせて、バージョン(以下の例ではv0.70.6)とアーキテクチャを調整してください。
mkdir -p ~/dingocd ~/dingowget https://github.com/blinklabs-io/dingo/releases/download/v0.70.6/dingo-v0.70.6-linux-amd64.tar.gz -O - | tar -xz以下を実行してバイナリが動作することを確認できます:
./dingo versionステップ2 - dingo.yaml設定ファイルの作成
Section titled “ステップ2 - dingo.yaml設定ファイルの作成”Dingoには、preview、preprod、mainnet向けのCardanoネットワーク設定(genesisファイル、config.json)が組み込まれています。これらを別途ダウンロードする必要はありません。
dingoディレクトリにdingo.yamlファイルを作成します。$HOME変数は自動的にホームディレクトリのパスに展開されます:
cat <<EOF > ~/dingo/dingo.yaml# StoragedatabasePath: "$HOME/dingo/.dingo"
plugins: storage: blob: provider: "badger" config: # `dataDir` は任意で、指定しなければ `databasePath` を使います。 # dataDir: "$HOME/dingo/.dingo" blockCacheSize: 0 compression: false gc: true indexCacheSize: 0 metadata: provider: "sqlite" config: # `dataDir` は任意で、指定しなければ `databasePath` を使います。 # dataDir: "$HOME/dingo/.dingo" mempool: provider: "default" config: # `capacity` は任意で、コメントアウトするとモードの既定値を使います。 # 既定値: 通常のモードでは 1048576 (1 MiB)、leios モードでは 26214400 (25 MiB) です。 # capacity: 1048576 api: blockfrost: provider: "builtin" config: port: 3000 mesh: provider: "builtin" config: port: 8080 utxorpc: provider: "builtin" config: port: 9090
# Mithrilmithril: aggregatorUrl: "" cleanupAfterLoad: true enabled: true verifyCertificates: true
# NetworkbindAddr: "0.0.0.0"metricsPort: 12798debugPort: 0network: "preview"privateBindAddr: "127.0.0.1"privatePort: 3002relayPort: 3001socketPath: "$HOME/dingo/dingo.socket"
# API and BarkbarkBaseUrl: ""barkPort: 0storageMode: "core"midnight: serverEnabled: false reflectionEnabled: false allowInsecureRemote: false port: 50051 host: "127.0.0.1" authTokenPolicyId: ""EOF📝
debugPortはプロファイリングが必要な場合を除き0のままにします。debugPortは任意のpprofリスナーを制御し、metricsPortとは別で、0のときは無効のままです。
💡 API サーバーは
storageMode: "api"のときだけ有効です。各 API のportを0にすると、その API は無効になります。
💡 Midnight gRPC サーバーには
storageMode: "api"、midnight.serverEnabled: true、およびmidnight.portの0以外の値が必要です。インデックス作成とサーバー公開は別々に制御されます。midnight.reflectionEnabledはmidnight.serverEnabledがtrueの場合にのみ有効で、midnight.serverEnabledがfalseの場合はリスナーも無効です。
📝
midnight.hostの既定値は"127.0.0.1"です。midnight.host: ""もループバックを使用します。非ループバックの平文リスナーにはmidnight.allowInsecureRemote: trueが必要です。TLS 証明書とキーのペアを設定すると、リモート TLS 公開を使用できます。
📝
midnight.authTokenPolicyIdは、API ストレージモードで Midnight インデックスを使用する場合にのみ適用されます。空のままにすると、認証トークン照合のより広い既定の動作が維持されます。
💡
block-cache-sizeとindex-cache-sizeを0に設定し、compression: falseにすると、BadgerDBの内部キャッシュの代わりにOSのページキャッシュ(mmap)が使用されます。これによりメモリ使用量が大幅に削減されます。
ステップ3 - ポートの開放
Section titled “ステップ3 - ポートの開放”Dingoに必要なポートに対するUFWファイアウォールルールの追加方法について説明します。
💡 ヒント: UFWはUncomplicated Firewallの略で、iptables(netfilter)ファイアウォールルールの管理に使用されます。
現在開いているポートを確認するには:
sudo ufw status numberedOuroboros Node to Node(NtN)通信用のポート3001を追加
Section titled “Ouroboros Node to Node(NtN)通信用のポート3001を追加”sudo ufw allow 3001/tcpステップ4 - Mithrilスナップショットからのブートストラップ
Section titled “ステップ4 - Mithrilスナップショットからのブートストラップ”Dingoには、スナップショットを自動的にダウンロードしてロードする組み込みのMithrilクライアントがあります。これにより、genesisからチェーンをリプレイする場合と比較して、数時間の同期時間を節約できます。
dingoディレクトリから以下のコマンドを実行します:
cd ~/dingo./dingo mithril sync --config ~/dingo/dingo.yaml📝
mithril.downloadMaxTransientRetriesは、TLS タイムアウト、HTTP 429 応答、HTTP 5xx 応答などの一時的なブートストラップダウンロード障害に対する再試行回数を制御します。例では既定値の10を使用しています。
Dingoは次の処理を行います:
- 設定したネットワークの最新Mithrilスナップショットをダウンロード
- 証明書チェーンを検証
- スナップショットをデータベースにロード
これにはシステムとネットワーク速度によって、約10〜15分かかります。
📝 このステップをスキップした場合、Dingoは起動時にgenesisから同期するため、はるかに長い時間がかかります。
ステップ5 - Dingoの起動
Section titled “ステップ5 - Dingoの起動”Mithrilスナップショットがロードされたら、ノードを起動します:
cd ~/dingo./dingo serve --config ~/dingo/dingo.yamlノードがピアに接続し、チェーン先端に到達するために残りのブロックを同期するログ出力が表示されるはずです。
コンピューターが再起動したときにDingoノードを自動的に再起動して稼働時間を最大化するためのsystemdサービスの使用に興味がありますか?
Section titled “コンピューターが再起動したときにDingoノードを自動的に再起動して稼働時間を最大化するためのsystemdサービスの使用に興味がありますか?”Dingoのスタートアップサービスを作成する方法についてのガイドを参照してください。
おめでとうございます。Dingoノードを使用する準備が整いました!
Section titled “おめでとうございます。Dingoノードを使用する準備が整いました!”Cardano CLIを使用してDingoと対話する方法を学ぶ。
Docs authored by Doc Holiday