実行ファイルで使用(Dockerなし)
Dockerコンテナなしで、実行ファイルとスクリプトでデモを実行します。
準備
スコープに「cardano-node」、「hydra-node」、および「hydra-tui」実行可能ファイルがあることを確認してください。 次のいずれかを実行できます
nix develop .#demo
を使用するか、cabal build
とcabal exec
を実行します (さらに引数を渡す前に--
を忘れないでください)。
demo
nix shell には、以下のすべてのコマンドを実行する複数のウィンドウとペインで新しい tmux
セッションを開始する run-hydra-demo
スクリプトがあります!
以降のすべてのコマンドは、プロジェクト リポジトリの demo
フォルダから実行されるかのように記述されるため、続行する前に必ず cd demo
を実行してください。
demo/.envrc
を許可すると、demo/
ディレクトリにいるときはいつでも nix シェル環境を利用できるようになります。 これを使用するには、cd demo
の後に direnv allow
でオプトインします。
ネットワークの設定
まず、単一の cardano-node
開発ネット を用意し、この設定を使って起動します。カレントディレクトリに devnet
ディレクトリが作成されることに注意してください。
./prepare-devnet.sh
cd devnet
mkdir ipc
cabal exec cardano-node -- run \
--config cardano-node.json \
--topology topology.json \
--database-path db \
--socket-path node.socket \
--shelley-operational-certificate opcert.cert \
--shelley-kes-key kes.skey \
--shelley-vrf-key vrf.skey
Seeding The Network
You can use the seed-devnet.sh
script by passing it the path/command to a cardano-cli and hydra-node executable to use, instead of having it using the Docker container. For example:
export CARDANO_NODE_SOCKET_PATH=devnet/node.socket
./seed-devnet.sh $(which cardano-cli) $(which hydra-node)"
Note, should you want to use cabal
, pass the invocation for example like this "cabal exec hydra-node --"
.
Setting-up The Hydra Network
次に、3つの異なる端末で、demo/
ディレクトリから3つの Hydra ノードを起動します。
We are trying to force ipv4 addresses by using --peer 127.0.0.1
.
If you don't see any connected peers in the tui it probably means that your system is configured to use ipv6.
- Alice
- Bob
- Carol
source .env && hydra-node \
--node-id 1 --port 5001 --api-port 4001 --monitoring-port 6001 \
--peer 127.0.0.1:5002 \
--peer 127.0.0.1:5003 \
--hydra-signing-key alice.sk \
--hydra-verification-key bob.vk \
--hydra-verification-key carol.vk \
--cardano-signing-key devnet/credentials/alice.sk \
--cardano-verification-key devnet/credentials/bob.vk \
--cardano-verification-key devnet/credentials/carol.vk \
--ledger-protocol-parameters devnet/protocol-parameters.json \
--testnet-magic 42 \
--node-socket devnet/node.socket
source .env && hydra-node \
--node-id 2 --port 5002 --api-port 4002 --monitoring-port 6002 \
--peer 127.0.0.1:5001 \
--peer 127.0.0.1:5003 \
--hydra-signing-key bob.sk \
--hydra-verification-key alice.vk \
--hydra-verification-key carol.vk \
--cardano-signing-key devnet/credentials/bob.sk \
--cardano-verification-key devnet/credentials/alice.vk \
--cardano-verification-key devnet/credentials/carol.vk \
--ledger-protocol-parameters devnet/protocol-parameters.json \
--testnet-magic 42 \
--node-socket devnet/node.socket
source .env && hydra-node \
--node-id 3 --port 5003 --api-port 4003 --monitoring-port 6003 \
--peer 127.0.0.1:5001 \
--peer 127.0.0.1:5002 \
--hydra-signing-key carol.sk \
--hydra-verification-key alice.vk \
--hydra-verification-key bob.vk \
--cardano-signing-key devnet/credentials/carol.sk \
--cardano-verification-key devnet/credentials/alice.vk \
--cardano-verification-key devnet/credentials/bob.vk \
--ledger-protocol-parameters devnet/protocol-parameters.json \
--testnet-magic 42 \
--node-socket devnet/node.socket
うまくいけば、チェーンに接続されたノードはログ収集を開始します。
ネットワークの構築
Dockerコンテナを使用する代わりに、使用するcardano-cli実行可能ファイルへのパスを渡すことで、seed-devnet.sh
スクリプトを使用できます。 例えば:
./seed-devnet.sh $(which cardano-cli)
クライアントの実行
hydra-tuiを使ってノードに接続します。例えば、アリスのハイドラノードと彼女のオンチェーンクレデンシャルを使用する場合。
cabal exec hydra-tui -- \
--connect 0.0.0.0:4001 \
--cardano-signing-key devnet/credentials/alice.sk \
--testnet-magic 42 \
--node-socket devnet/node.socket
ポート 4001
を 4002
または 4003
に置き換えて他の2ノードに接続し、 alice.sk
をそれぞれ bob.sk
または carol.sk
に置き換えてください。