Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,5 @@ applications/cli/src/main/resources/static/wallet/
/applications/cli/chainstate/
/e2e-tests/evolution-sdk/node_modules/
/chainstate/
*.swp
*.swo
6 changes: 3 additions & 3 deletions Earthfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ ARG --global tag="dev"
ARG --global local="true"
ARG --global REGISTRY_ORG = "bloxbean"
ARG --global build_type="native"
ARG --global STORE_NATIVE_BRANCH="release/2.0.1_devkit"
ARG --global YANO_TAG="v0.1.0-pre6"
ARG --global YANO_VERSION="0.1.0-pre6"
ARG --global STORE_NATIVE_BRANCH="v2.0.4"
ARG --global YANO_TAG="v0.1.0-pre17"
ARG --global YANO_VERSION="0.1.0-pre17"

build:
LOCALLY
Expand Down
10 changes: 6 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ For most development scenarios, Yaci DevKit runs a single Cardano node:
│ API Layer │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Yaci Store │ │ Ogmios │ │ Kupo │ │
│ │ (Indexer) │ │ (Optional) │ │ (Optional) │ │
│ │ (Indexer) │ │ (Tx Eval) │ │ (Optional) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
Expand Down Expand Up @@ -90,8 +90,8 @@ For PV11 hard fork compatible local devnets, use the PV11 beta release from this
| **[Yaci Store](https://github.com/bloxbean/yaci-store)** | Lightweight indexer with Blockfrost-compatible APIs | 8080 |
| **[Yaci Viewer](./applications/viewer)** | Web-based blockchain explorer for developers | 5173 |
| **Cardano Node** | Official Cardano node (supports both amd64/arm64) | 3001 (n2n), 3333 (n2c through socat) |
| **[Ogmios](https://ogmios.dev/)** | WebSocket API for Cardano (optional) | 1337 |
| **[Kupo](https://cardanosolutions.github.io/kupo/)** | Chain indexer (optional) | 1442 |
| **[Ogmios](https://ogmios.dev/) v7.0.0** | WebSocket API for Cardano (enabled by default; used as Yaci Store's tx evaluator) | 1337 |
| **[Kupo](https://cardanosolutions.github.io/kupo/) v2.12.0** | Chain indexer (optional) | 1442 |
| **MCP Server** | AI coding assistant integration | 10000 |

## 🎯 Quick Start
Expand Down Expand Up @@ -173,7 +173,9 @@ yaci-cli> create-node -o --start

<em>(Can be used in a Java app with Cardano Client Lib's Blockfrost backend or [Javascript app with MeshJS + Blockfrost provider](https://github.com/MeshJS/examples/blob/main/mesh/yaci-send-lovelace.ts) as it exposes required BF compatible minimum apis for tx building and submission)</em>
- **Yaci Store Swagger UI**: http://localhost:8080/swagger-ui/index.html
- **Ogmios Url (Optional)**: http://localhost:1337
- **Ogmios Url**: http://localhost:1337

<em>(Enabled by default and used by Yaci Store to evaluate Plutus script costs. Set `ogmios_enabled=false` in `config/env` to fall back to the embedded Scalus evaluator.)</em>

**(Optional) If you enabled Kupo**
- **Kupo Url (Optional)**: http://localhost:1442
Expand Down
11 changes: 3 additions & 8 deletions applications/cli/Earthfile
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,9 @@ docker-build:
ARG APP_VERSION
ARG REGISTRY_ORG
ARG COMMIT_ID
ARG STORE_NATIVE_BRANCH="release/2.0.1_devkit"
ARG YANO_TAG="v0.1.0-pre6"
ARG YANO_VERSION="0.1.0-pre6"
ARG STORE_NATIVE_BRANCH="v2.0.4"
ARG YANO_TAG="v0.1.0-pre17"
ARG YANO_VERSION="0.1.0-pre17"

COPY --dir +java-setup/openjdk /opt/java/
ENV PATH="${JAVA_HOME}/bin:${PATH}"
Expand All @@ -91,11 +91,6 @@ docker-build:
COPY docker/download-$TARGETARCH.sh .
RUN sh download-$TARGETARCH.sh

# PV11 Ogmios/Kupo IntersectMBO artifacts are Linux x86_64-only for now.
# The arm64 image bundles those x86_64 binaries as a temporary Apple Silicon
# Docker Desktop workaround; native Linux arm64 hosts may fail at runtime
# unless x86_64 binfmt/qemu emulation is available.

#Ogmios download
COPY docker/download-ogmios.sh .
RUN bash download-ogmios.sh $TARGETARCH
Expand Down
7 changes: 7 additions & 0 deletions applications/cli/config/application.properties
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,13 @@ bp.create.enabled=true
#yano.server.port=14447
#yano.http.port=6060

## Spacing for Yano's past-time-travel backfill, the catch-up from the shifted genesis to wall clock.
## auto (default): Yano derives the spacing from genesis, placing only the blocks a Haskell relay needs
## to validate the history - gaps stay inside the forecast window (3k/f) and the epoch-boundary blocks
## required for nonces are kept. Create time then stops growing with epoch length.
## dense: one block per slot, Yano's own default. An integer forces the interval in slots.
#yano.backfill.block.interval.slots=auto

## Whether Yano's past-time-travel backfill runs Praos slot-leader checks, placing blocks only in
## VRF-eligible slots. auto (default): on when a Haskell node validates the chain (companion, yano-primary)
## and activeSlotsCoeff is below 1 (block time longer than slot length), and for local multi-node devnets.
Expand Down
21 changes: 11 additions & 10 deletions applications/cli/config/download.properties
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
#Please specify either the version or the full url for the following components
node.version=11.0.1
ogmios.version=6.14.0.2
kupo.version=2.11.0.1
ogmios.version=7.0.0
kupo.version=2.12.0

yaci.store.tag=rel-native-2.0.1-devkit
yaci.store.version=2.0.1-devkit
yaci.store.jar.version=2.0.1
yaci.store.tag=rel-native-2.0.4
yaci.store.version=2.0.4
yaci.store.jar.version=2.0.4

yano.tag=v0.1.0-pre6
yano.version=0.1.0-pre6
yano.tag=v0.1.0-pre17
yano.version=0.1.0-pre17

#node.url=
# IntersectMBO currently publishes the PV11-compatible Ogmios/Kupo builds only
# for Linux x86_64. These default versions resolve on Linux x86_64; on other
# platforms, set a compatible custom URL here when one is available.
# Ogmios/Kupo are published by CardanoSolutions for x86_64-linux, aarch64-linux
# and aarch64-macos. The Linux builds are statically linked; the macOS builds link
# only against system libraries. macOS x86_64 and Windows are not published : on
# those set a compatible custom URL here or use the DevKit Docker image.
#ogmios.url=
#kupo.url=
#yaci.store.url=
Expand Down
13 changes: 9 additions & 4 deletions applications/cli/config/node.properties
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,25 @@
nodeMode=companion

#protocolMagic=42
#maxKESEvolutions=60
#maxKESEvolutions=62
#securityParam=80

## Fraction of the epoch covered by the stability window (3k/f) when securityParam is derived (securityParam=0).
## k = epochLength * activeSlotsCoeff * stabilityWindowFactor / 3. The Haskell producer can only resume after a
## gap in block production shorter than 3k/f slots, so this factor times the epoch's wall-clock length is the
## idle tolerance of the devnet. Values up to about 0.7 are sound (4k/f must stay below the epoch length).
#stabilityWindowFactor=0.5
#slotsPerKESPeriod=129600

## A KES period long enough that a past-time-travel devnet never leaves period 0. The bootstrap shift
## moves genesis back by whole epochs before catching up to wall clock, and the node derives the current
## KES period as slot / slotsPerKESPeriod, so at the mainnet 129600 a long-epoch devnet burns a large
## share of its evolutions before producing a block. Devnets do not exercise KES rotation.
#slotsPerKESPeriod=10000000
#updateQuorum=1
#peerSharing=true

## Node log tracing of the chain-sync client. On by default so a bootstrap chain the node rejects
## (for example VRFLeaderValueTooBig at activeSlotsCoeff below 1) shows up in the node log.
## Node log tracing of the chain-sync client. Off by default. Turn it on to see why the node rejects
## a bootstrap chain (for example VRFLeaderValueTooBig at activeSlotsCoeff below 1).
#traceChainSyncClient=true

## Shelley Genesis
Expand Down
22 changes: 8 additions & 14 deletions applications/cli/docker/download-kupo.sh
Original file line number Diff line number Diff line change
@@ -1,37 +1,31 @@
#!/bin/bash
set -euo pipefail

# PV11 workaround: IntersectMBO currently publishes the cardano-node 11.0.1
# compatible Kupo release only as a Linux x86_64 tarball. We bundle it for
# arm64 Docker images too so Apple Silicon Docker Desktop can run it through
# emulation. This may fail at runtime on native Linux arm64 hosts without
# x86_64 binfmt/qemu support. Keep the original CardanoSolutions downloader in
# download-kupo.sh.original for reverting once upstream publishes the needed
# assets again.
# Assign the architecture based on user input and determine the correct suffix
case "${1:-}" in
amd64)
ARCH="x86_64"
;;
arm64)
echo "Warning: IntersectMBO Kupo v2.11.0.1 has no Linux arm64 asset."
echo "Bundling the Linux x86_64 artifact for arm64 Docker image compatibility on Docker Desktop."
ARCH="x86_64"
ARCH="aarch64"
;;
*)
echo "Error: Invalid architecture specified. Use 'amd64' or 'arm64'."
exit 1
;;
esac

version=v2.11.0.1
file=kupo-${version}-${ARCH}-linux.tar.gz
url=https://github.com/IntersectMBO/kupo/releases/download/${version}/${file}
# Kupo release tags are major.minor (v2.12) while the asset carries the full version (v2.12.0)
version=v2.12.0
tag=v2.12
file=kupo-${version}-${ARCH}-linux.zip
url=https://github.com/CardanoSolutions/kupo/releases/download/${tag}/${file}

wget "${url}"

rm -rf /app/kupo
mkdir -p /app/kupo
tar -xzf "${file}" -C /app/kupo
unzip "${file}" -d /app/kupo

chmod +x /app/kupo/bin/kupo

Expand Down
25 changes: 0 additions & 25 deletions applications/cli/docker/download-kupo.sh.original

This file was deleted.

20 changes: 6 additions & 14 deletions applications/cli/docker/download-ogmios.sh
Original file line number Diff line number Diff line change
@@ -1,37 +1,29 @@
#!/bin/bash
set -euo pipefail

# PV11 workaround: IntersectMBO currently publishes the cardano-node 11.0.1
# compatible Ogmios release only as a Linux x86_64 tarball. We bundle it for
# arm64 Docker images too so Apple Silicon Docker Desktop can run it through
# emulation. This may fail at runtime on native Linux arm64 hosts without
# x86_64 binfmt/qemu support. Keep the original CardanoSolutions downloader in
# download-ogmios.sh.original for reverting once upstream publishes the needed
# assets again.
# Assign the architecture based on user input and determine the correct suffix
case "${1:-}" in
amd64)
ARCH="x86_64"
;;
arm64)
echo "Warning: IntersectMBO Ogmios v6.14.0.2 has no Linux arm64 asset."
echo "Bundling the Linux x86_64 artifact for arm64 Docker image compatibility on Docker Desktop."
ARCH="x86_64"
ARCH="aarch64"
;;
*)
echo "Error: Invalid architecture specified. Use 'amd64' or 'arm64'."
exit 1
;;
esac

version=v6.14.0.2
file=ogmios-${version}-${ARCH}-linux.tar.gz
url=https://github.com/IntersectMBO/ogmios/releases/download/${version}/${file}
version=v7.0.0
file=ogmios-${version}-${ARCH}-linux.zip
url=https://github.com/CardanoSolutions/ogmios/releases/download/${version}/${file}

wget "${url}"

rm -rf /app/ogmios
mkdir -p /app/ogmios
tar -xzf "${file}" -C /app/ogmios
unzip "${file}" -d /app/ogmios

chmod +x /app/ogmios/bin/ogmios

Expand Down
27 changes: 0 additions & 27 deletions applications/cli/docker/download-ogmios.sh.original

This file was deleted.

2 changes: 1 addition & 1 deletion applications/cli/docker/download-yano.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ case "${1:-}" in
;;
esac

VERSION="${2:-0.1.0-pre6}"
VERSION="${2:-0.1.0-pre17}"
TAG="${3:-v${VERSION}}"

file="yano-native-${VERSION}-linux-${ARCH}.zip"
Expand Down
Loading
Loading