Skip to content

10.11.20260903^beta

Latest

Choose a tag to compare

@github-actions github-actions released this 03 Sep 20:23
ea1f34e

Target Milestone

Minimum viable Block producer

This is Amaru second public beta release which comes with most features that can be expected of a full relay node with two main caveats:

  • One of the recent ledger rules introduced in Van Rossem regarding VRF key uniqueness is not yet enforced; we are investigating discrepancies with the Haskell implementation and need further refinements.

  • Network connections aren't full-duplex yet. Amaru can initiate outbound connections and receive inbound connections, but through two separate TCP bearers. However, connections are multiplexed, allowing to run multiple protocols from the same TCP bearer. Said differently, different roles (initiator / responder) require different TCP connections.

Minimum Hardware Requirements

Arch x86_64 / aarch64
CPU 2+ cores, >=2GHz
RAM 2GiB
Storage 20-300GiB1
Storage type NVMe/SATA SSD, eMMC, or UFS

[1] Amaru does not (yet) download the entire chain history on bootstrap. This can be done separately via the amaru mithril sync command. Therefore, storage requirements may vary depending on the amount of history being synced.

Changelog

Added

  • amaru-kernel: PeerCandidate is Socket (already a Peer), Host (hostname+port, A/AAAA) or Srv (DNS name). Host/Srv names are a validated [DnsName] (no colons, brackets, or IP literals). Outbound mix pools are PeerCandidates (static included); Host/SRV names are resolved on each dial so DNS changes are picked up. Host lookup takes the first viable A/AAAA; SRV lookup tries _cardano._tcp.<name> in RFC 2782 priority order and stops at the first viable target address. Ledger relays pass through as candidates (socket, hostname+port, or CIP-0155 SRV when the port is omitted).
  • amaru-pure-stage: Effects::detach runs an external effect without occupying the airlock. The transition is resumed with () immediately; when run() completes the interpreter applies the provided constructor and enqueues the value on the calling stage’s bulk mailbox.
  • amaru-tui: the Peers card shows the bootstrap PeerCandidate next to a resolved socket address when that name came from a Host or SRV lookup.
  • amaru: allow operators to select the OTLP providers constructed at startup with
    --with-open-telemetry=<SIGNALS> or AMARU_WITH_OPEN_TELEMETRY=<SIGNALS>; it accepts any comma-separated subset of
    metrics, traces, and logs, and defaults to all three signals when enabled without a value.

Changed

  • amaru-consensus: BlockValidator now runs the ledger on a dedicated thread that owns the ledger state exclusively; operations are requested through a bounded channel and answered via per-request reply channels, replacing the shared lock around the state. BlockValidator is no longer generic over the store types. ([#1094][])
  • amaru-protocols: NetworkOps::connect takes a Peer. Outbound dialling no longer resolves names; that stays in peer selection.
  • amaru-node: add world test simulation, both with generated fake chain and with a real chain fragment from preprod.
  • amaru-node: Telemetry::install no longer reads AMARU_OPEN_TELEMETRY_SIGNALS; embedders that select OTLP signals must pass TelemetryOptions to install_with_options.

Fixed

  • amaru-node: the stake-distribution callback no longer holds a strong Resources handle, so dropping a node graph closes its dummy RocksDB ledgers instead of leaking file descriptors across simulation runs.
  • amaru: replace repeated low-level OpenTelemetry export errors with batched state-transition messages: one warning listing unavailable signals, one info listing recovered signals, and a fresh warning after a later failure.
  • amaru-bootstrap: emit phase lifecycle events and periodic progress heartbeats when bootstrap runs without a terminal, so redirected and service logs no longer appear stuck during long imports.
  • amaru-node: attempt to flush and shut down every configured OpenTelemetry provider even when an earlier provider reports an error.

Tip

Want a complete inventory of the changes? Read the full CHANGELOG.md.

Want even more details? See the commit history since the last release.

Documentation

What What for
Getting Started First steps with Amaru
Bootstrapping Creating snapshots and/or restoring from available snapshots
Monitoring Filtering traces, understanding metrics and observability in general
Using Docker Using Amaru with Docker or spinning up local testnets
Submit API Submitting transaction to Amaru local mempool
crates.io / lib (coming soon) Developers using Amaru as a library

Linux

Type File Extension Download Links
Pre-compiled executable .tar.gz aarch64 | x86_64
Debian package .deb aarch64 | x86_64
RPM package .rpm aarch64 | x86_64

macOS

Type File Extension Download Links
Pre-compiled executable .tar.gz aarch64

Windows

Type File Extension Download Links
Pre-compiled executable .zip x86_64
MSI installer .msi x86_64

Docker

Image Registry
ghcr.io/pragma-org/amaru:v10.11.20260903 https://github.com/pragma-org/amaru/pkgs/container/amaru

Checksum manifest

amaru-10.11.20260903-checksums.manifest