Skip to content

Start a local Yano X showcase

Run three nodes, submit useful data, and inspect proofs without a source checkout, wallet, public-network funds, or external Cardano node.

  • Goal: run the curated showcase locally and check that its members agree.
  • Before you start: Java 25, Python 3, curl, and jq. Python uses only its standard library. Docker is needed only for the separate evidence demo. The showcase uses HTTP ports 7070–7072 and node ports 13337–13339.
  • Time: about 10 minutes, most of it startup.
  • Outcome: three nodes running thirteen chains, a finalized order with a proof, and an instance you can stop and resume.
The showcase in six commandsIllustrative data

What you're seeing: the quickstart from this page, with the command you run at each step. Switch to “Your terminal” to see only what the commands print.

  1. Check doctor checks for Java 25, Python 3 with BLAKE2b support, curl, jq, and the packaged artifacts: yano.jar, the showcase configuration, the load drivers, and the plugin bundles. It starts nothing.
    ./showcase.sh doctor --profile light
  2. Start quickstart prepares the instance under data/showcase/first-demo and starts three nodes on a private devnet. Every node hosts the same 13 showcase chains. It then bootstraps the workflow-chain devnet anchor, runs the composite workflow and authenticated-map demonstrations, and checks that the nodes converged.
    ./showcase.sh quickstart --profile light --nodes 3 --instance first-demo
  3. Submit an order The demo script submits an order to orders-chain through node 0, waits until the message is final, and requests a typed proof that it is recorded.
    ./demos/submit-orders.sh first-demo '{"order":"A-100","event":"created"}'
  4. Verify For every showcase chain, verify waits until all nodes report the same tip and root and checks that the tip's certificate has at least the threshold of signatures. It also waits for the workflow-chain anchor to be confirmed.
    ./showcase.sh verify --instance first-demo
  5. Stop stop stops the nodes and keeps the instance: its identity, its chain data, and its chosen ports.
    ./showcase.sh stop --instance first-demo
  6. Restart restart starts the same instance from its retained state. Run verify again, then retrieve the same order: the history is unchanged.
    ./showcase.sh restart --instance first-demo

What if: The default ports are busy

The showcase passes its port bases to the launcher explicitly, so it stops rather than moving them.

  1. Check doctor passes. It does not check ports.
    ./showcase.sh doctor --profile light
  2. Start Another program holds a port in 7070–7072. Because the port bases are explicit, the launcher refuses to start any node: “explicit HTTP range 7070-7072 is busy”.
    ./showcase.sh quickstart --profile light --nodes 3 --instance first-demo
  3. Choose other ports Stop the program that holds the ports and run the same command again. Or start a new instance with other bases; the instance remembers them for later commands.
    ./showcase.sh quickstart --profile light --nodes 3 \
      --instance second-demo --http-base 7170 --server-base 14337
  • your terminal
  • showcase script
  • member nodes
  • devnet and anchor

From the Yano X releases page, select one release and download its yano-x-jvm-<version>.zip and published checksum. Use the checksum from that same release. Without a release, use a qualified build from your team or the distribution build instructions; do not substitute an unrelated Yano ZIP.

Extract into a new directory and open a terminal in yano-x-jvm-<version>/examples/showcase, the directory containing showcase.sh. Keep this directory for later restarts.

Terminal window
./showcase.sh doctor --profile light

✓ You should see a line starting with doctor: Java 25 and ending with and packaged artifacts are present.

Terminal window
./showcase.sh quickstart --profile light --nodes 3 --instance first-demo

Quickstart starts a private devnet and thirteen application chains on three nodes. It bootstraps the workflow-chain anchor on that devnet, runs a composite workflow and an authenticated-map demonstration, checks convergence, and prints the console address.

✓ You should see Cluster up., one line per chain such as orders-chain nodes=3 tip=... cert=.../..., and finally Status UI: http://127.0.0.1:7070/ui/app-chain/.

The light profile demonstrates logs, registries, document trails, approvals, authenticated maps, effects, and more. Optional external connectors have separate prerequisites. The quickstart anchor is a devnet anchor for workflow-chain; it does not mean every chain is anchored on a public network.

Terminal window
./demos/submit-orders.sh first-demo '{"order":"A-100","event":"created"}'
./demos/submit-documents.sh first-demo document-A-100
./showcase.sh verify --instance first-demo
./showcase.sh ui --instance first-demo

✓ You should see a proof summary with "claimSatisfied": true, then ORDERED: message finalized at height N.

The order command prints a finalized position and proof claim. The document scenario appends to a trail. verify checks node readiness, converged tips and roots, certificate counts for chains with finalized blocks, and the workflow-chain anchor. Open the printed console URL to inspect messages, chain state, and effects.

A successful HTTP submission is admission to the message pool. Finality and a successful application transition are later results. See the HTTP submission walkthrough for the actual requests, message lookup, and typed proof route.

Terminal window
./showcase.sh config paths --instance first-demo
./showcase.sh stop --instance first-demo
./showcase.sh restart --instance first-demo
./showcase.sh verify --instance first-demo

✓ You should see stopped 3 node(s) after stop, and Cluster up. after restart.

Retrieve the same order after the restart. Do not reset an instance to fix a startup error: reset --yes deletes the instance and is not recoverable. Run ./showcase.sh logs --instance first-demo and inspect the first failure; keep the generated identity and data directories together.

You seeWhat it means and what to do
Java 25 is required (found ...)Put a Java 25 JDK first on your PATH, then run doctor again.
required command not found: jqInstall the named command and run doctor again.
explicit HTTP range 7070-7072 is busy (port ...)Another program holds the showcase ports. Stop it and run the same command again, or start a new instance with other ports, for example --instance second-demo --http-base 7170 --server-base 14337.
run showcase.sh from examples/showcase in an extracted Yano X JVM distributionRun the script from inside the extracted JVM ZIP, not from a source checkout.

Next: continue with your own application profile, or explore the complete showcase.