クイックスタートガイド
Dingoは、Go言語で書かれたCardanoブロックチェーンデータノードであり、Ouroboros Network Node-to-Nodeミニプロトコルファミリーを使用して、Cardanoブロックチェーン上のネットワーク通信に積極的に参加します。
⚠️ これは開発中のプロジェクトであり、現在活発に開発が進められています
このガイドでは、Dingoバイナリのダウンロードと、Cardano PreviewネットワークでDingoノードを実行するために必要なすべての手順を説明します。以下の手順に従って始めましょう。
✅ このガイドは一般的なLinux環境を前提としています。必要に応じてコマンドとパスを調整してください。
ステップ1 - Dingoバイナリのダウンロード
Section titled “ステップ1 - Dingoバイナリのダウンロード”Dingoリリースページから最新リリースをダウンロードします。
⚠️ お使いのシステムに合わせて、バージョン(以下の例ではv0.35.1)とアーキテクチャを調整してください。
mkdir -p ~/dingocd ~/dingowget https://github.com/blinklabs-io/dingo/releases/download/v0.35.1/dingo-v0.35.1-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# Databasedatabase: blob: plugin: "badger" badger: block-cache-size: 0 compression: false data-dir: "$HOME/dingo/.dingo/badger" gc: true index-cache-size: 0 metadata: plugin: "sqlite" sqlite: data-dir: "$HOME/dingo/.dingo/metadata.db"databasePath: "$HOME/dingo/.dingo"
# Mempool# `mempoolCapacity` は必須ではなく、モードの既定値を上書きする任意の設定です。# 既定値: Praos モードと通常の serve モードでは 1 MiB、Leios モードでは 25 MiB です。# モードの既定値を使うには、このキーをコメントアウトするか省略します。# mempoolCapacity: 1048576
# Mithrilmithril: aggregatorUrl: "" cleanupAfterLoad: true enabled: true verifyCertificates: true
# NetworkbindAddr: "0.0.0.0"metricsPort: 12798network: "preview"privateBindAddr: "127.0.0.1"privatePort: 3002relayPort: 3001socketPath: "$HOME/dingo/dingo.socket"
# StorageblockfrostPort: 0meshPort: 0storageMode: "core"utxorpcPort: 0EOF💡 Blockfrost互換のHTTPエンドポイントを提供するには、
storageModeをAPI対応の設定に切り替え、ゼロ以外のblockfrostPortを割り当てます。
blockfrostPort: 3000storageMode: "api"utxorpcPort: 0💡
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.yamlDingoは次の処理を行います:
- 設定したネットワークの最新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のスタートアップサービスを作成する方法についてのガイドを参照してください。