Home / Input Output / daedalus
Apr 20, 7-8 AM (0)
Apr 20, 8-9 AM (0)
Apr 20, 9-10 AM (0)
Apr 20, 10-11 AM (0)
Apr 20, 11-12 PM (0)
Apr 20, 12-1 PM (5)
Apr 20, 1-2 PM (0)
Apr 20, 2-3 PM (5)
Apr 20, 3-4 PM (0)
Apr 20, 4-5 PM (3)
Apr 20, 5-6 PM (0)
Apr 20, 6-7 PM (0)
Apr 20, 7-8 PM (0)
Apr 20, 8-9 PM (0)
Apr 20, 9-10 PM (0)
Apr 20, 10-11 PM (0)
Apr 20, 11-12 AM (0)
Apr 21, 12-1 AM (0)
Apr 21, 1-2 AM (0)
Apr 21, 2-3 AM (0)
Apr 21, 3-4 AM (0)
Apr 21, 4-5 AM (0)
Apr 21, 5-6 AM (0)
Apr 21, 6-7 AM (0)
Apr 21, 7-8 AM (0)
Apr 21, 8-9 AM (0)
Apr 21, 9-10 AM (0)
Apr 21, 10-11 AM (0)
Apr 21, 11-12 PM (1)
Apr 21, 12-1 PM (1)
Apr 21, 1-2 PM (5)
Apr 21, 2-3 PM (3)
Apr 21, 3-4 PM (0)
Apr 21, 4-5 PM (2)
Apr 21, 5-6 PM (0)
Apr 21, 6-7 PM (3)
Apr 21, 7-8 PM (3)
Apr 21, 8-9 PM (0)
Apr 21, 9-10 PM (0)
Apr 21, 10-11 PM (0)
Apr 21, 11-12 AM (0)
Apr 22, 12-1 AM (0)
Apr 22, 1-2 AM (0)
Apr 22, 2-3 AM (0)
Apr 22, 3-4 AM (0)
Apr 22, 4-5 AM (0)
Apr 22, 5-6 AM (0)
Apr 22, 6-7 AM (0)
Apr 22, 7-8 AM (0)
Apr 22, 8-9 AM (0)
Apr 22, 9-10 AM (0)
Apr 22, 10-11 AM (0)
Apr 22, 11-12 PM (1)
Apr 22, 12-1 PM (0)
Apr 22, 1-2 PM (0)
Apr 22, 2-3 PM (0)
Apr 22, 3-4 PM (14)
Apr 22, 4-5 PM (0)
Apr 22, 5-6 PM (5)
Apr 22, 6-7 PM (0)
Apr 22, 7-8 PM (8)
Apr 22, 8-9 PM (0)
Apr 22, 9-10 PM (0)
Apr 22, 10-11 PM (4)
Apr 22, 11-12 AM (1)
Apr 23, 12-1 AM (0)
Apr 23, 1-2 AM (0)
Apr 23, 2-3 AM (0)
Apr 23, 3-4 AM (0)
Apr 23, 4-5 AM (0)
Apr 23, 5-6 AM (0)
Apr 23, 6-7 AM (0)
Apr 23, 7-8 AM (0)
Apr 23, 8-9 AM (0)
Apr 23, 9-10 AM (0)
Apr 23, 10-11 AM (0)
Apr 23, 11-12 PM (0)
Apr 23, 12-1 PM (0)
Apr 23, 1-2 PM (2)
Apr 23, 2-3 PM (0)
Apr 23, 3-4 PM (0)
Apr 23, 4-5 PM (1)
Apr 23, 5-6 PM (1)
Apr 23, 6-7 PM (1)
Apr 23, 7-8 PM (0)
Apr 23, 8-9 PM (0)
Apr 23, 9-10 PM (0)
Apr 23, 10-11 PM (0)
Apr 23, 11-12 AM (0)
Apr 24, 12-1 AM (0)
Apr 24, 1-2 AM (1)
Apr 24, 2-3 AM (2)
Apr 24, 3-4 AM (0)
Apr 24, 4-5 AM (0)
Apr 24, 5-6 AM (0)
Apr 24, 6-7 AM (0)
Apr 24, 7-8 AM (0)
Apr 24, 8-9 AM (0)
Apr 24, 9-10 AM (0)
Apr 24, 10-11 AM (0)
Apr 24, 11-12 PM (1)
Apr 24, 12-1 PM (3)
Apr 24, 1-2 PM (0)
Apr 24, 2-3 PM (5)
Apr 24, 3-4 PM (1)
Apr 24, 4-5 PM (5)
Apr 24, 5-6 PM (0)
Apr 24, 6-7 PM (0)
Apr 24, 7-8 PM (0)
Apr 24, 8-9 PM (0)
Apr 24, 9-10 PM (0)
Apr 24, 10-11 PM (0)
Apr 24, 11-12 AM (0)
Apr 25, 12-1 AM (0)
Apr 25, 1-2 AM (0)
Apr 25, 2-3 AM (3)
Apr 25, 3-4 AM (1)
Apr 25, 4-5 AM (3)
Apr 25, 5-6 AM (0)
Apr 25, 6-7 AM (0)
Apr 25, 7-8 AM (0)
Apr 25, 8-9 AM (0)
Apr 25, 9-10 AM (0)
Apr 25, 10-11 AM (0)
Apr 25, 11-12 PM (0)
Apr 25, 12-1 PM (0)
Apr 25, 1-2 PM (0)
Apr 25, 2-3 PM (1)
Apr 25, 3-4 PM (0)
Apr 25, 4-5 PM (0)
Apr 25, 5-6 PM (0)
Apr 25, 6-7 PM (1)
Apr 25, 7-8 PM (0)
Apr 25, 8-9 PM (2)
Apr 25, 9-10 PM (0)
Apr 25, 10-11 PM (0)
Apr 25, 11-12 AM (0)
Apr 26, 12-1 AM (1)
Apr 26, 1-2 AM (0)
Apr 26, 2-3 AM (0)
Apr 26, 3-4 AM (0)
Apr 26, 4-5 AM (2)
Apr 26, 5-6 AM (0)
Apr 26, 6-7 AM (0)
Apr 26, 7-8 AM (0)
Apr 26, 8-9 AM (0)
Apr 26, 9-10 AM (0)
Apr 26, 10-11 AM (0)
Apr 26, 11-12 PM (0)
Apr 26, 12-1 PM (0)
Apr 26, 1-2 PM (0)
Apr 26, 2-3 PM (0)
Apr 26, 3-4 PM (0)
Apr 26, 4-5 PM (0)
Apr 26, 5-6 PM (2)
Apr 26, 6-7 PM (2)
Apr 26, 7-8 PM (4)
Apr 26, 8-9 PM (0)
Apr 26, 9-10 PM (0)
Apr 26, 10-11 PM (0)
Apr 26, 11-12 AM (0)
Apr 27, 12-1 AM (0)
Apr 27, 1-2 AM (0)
Apr 27, 2-3 AM (4)
Apr 27, 3-4 AM (0)
Apr 27, 4-5 AM (0)
Apr 27, 5-6 AM (0)
Apr 27, 6-7 AM (0)
Apr 27, 7-8 AM (0)
113 commits this week Apr 20, 2026 - Apr 27, 2026
fix(release-cli): don't overwrite signed installers on hash mismatch
In fetch-installers, verify the -unsigned companion's hash against
Hydra's expected value before skipping re-download; this confirms the
companion is the genuine unsigned original and the main file is the
signed installer.

In drt sign, compare the SHA-256 of the main file against its -unsigned
companion before concluding it is already signed. On Windows, signing
renames the original before the remote nix run, so a failed signing
attempt leaves the companion on disk; if fetch-installers then
re-downloads a fresh unsigned copy both files are byte-identical and
signing must be retried rather than skipped.
chore(nix): upgrade cardano-node to 10.7.1 and enable LSM UTxO backend
Upgrade cardano-node from 10.6.2 to 10.7.1 and configure the V2LSM
ledger backend to reduce memory usage by storing UTxO data on disk
rather than in-heap. Also updates the cardano-playground config pin
and switches the config path to environments-pre/.

chore(nix): use mithril flake for windows client instead of fetching tarball

Mithril now exposes a cross-compiled Windows build directly at
packages.x86_64-linux.mithril-client-cli-windows, so the previous
workaround of downloading a pre-built tarball from GitHub releases is
no longer needed.

The mithril input remains pinned to a patched branch
(sl/fix-darwin-mithril-cli) which restores Darwin builds accidentally
dropped in the latest upstream release.

fix: update mithril to fix nix builds for mac

fix: update mithril to fix rustc version mismatch on darwin

Points mithril input at sl/fix-mismatch-rust-versions branch which
ensures all craneLib instances use the rust-overlay toolchain (1.94)
rather than falling back to nixpkgs rustc (1.91), fixing Darwin builds
that fail with [email protected] requiring rustc 1.93+.

fix(nix): remove erroneous space in WIN_SIGN_HOST bash default substitution

\${WIN_SIGN_HOST: -HSM} with a space causes bash to parse -HSM as a
substring-from-end offset, treating HSM as a variable. With set -u this
throws "HSM: unbound variable". The correct syntax for a default-value
substitution is \${WIN_SIGN_HOST:-HSM} (no space).

test: mock _convertSnapshot in tests that call startBootstrap

_convertSnapshot was added to startBootstrap after these tests were
written. Without a mock it falls through to _runCommand → buildMithrilEnv
which fetches genesis/ancillary keys from raw.githubusercontent.com,
causing EAI_AGAIN failures in network-isolated environments.

feat: use snapshot-converter binary for UTxO-HD LSM snapshot conversion

Replace the mithril-client subcommand invocation with the standalone
snapshot-converter binary from cardano-node for converting downloaded
in-memory snapshots to LSM format.

- Add snapshot-converter to daedalus-bridge (all platforms) and expose
  daedalus-bridge in perSystem/packages for all target systems
- Thread snapshot-converter through common.nix and cardano-bridge.nix;
  include it in the aarch64-darwin codesign loop and the NSIS installer
- Add runBinary() to mithrilCommandRunner for running non-mithril
  binaries with plain process.env (no mithril env vars or origin tag)
- Rewrite _convertSnapshot to find the most recent ledger slot, build
  the LSM output paths, and invoke snapshot-converter directly
- Update tests accordingly

fix(darwin): bundle .so files into binary-lib subdirs alongside .dylib

moveDylibsToSubdir was only handling *.dylib, causing liblmdb.so
(introduced by cardano-node's UTxO-HD LSM support) to be left in
Contents/MacOS/ root while its install name was already patched to
@executable_path/cardano-node-lib/liblmdb.so, resulting in a dyld
load failure at runtime.

fix(mithril): correct snapshot-converter args and finalizing diagnostics

Fix snapshot-converter invocation to properly replace the in-memory ledger
snapshot with an LSM one: move the in-memory snapshot out of ledger/ to a
temp location, then run converter with --input-mem pointing to the temp path
and --output-lsm-snapshot as a full path back into ledger/<slot>, so
cardano-node finds an LSM-format snapshot at the expected location.

Also fix --output-lsm-database (was pointing into a non-existent tmp/snapshots
subdir, now uses dbDirectory/lsm) and --config (was constructing a path that
doesn't exist, now uses launcherConfig.nodeConfig.network.configFile).

Add stdinInput support to runBinary and diagnostic logger.info calls around
each async step in the finalizing phase to pinpoint any future hangs.

fix(windows): bundle libsnappy.dll with installer

cardano-node.exe now links against libsnappy (used by the LSM storage
backend), but the DLL was not listed in the NSIS installer manifest.

fix(nix): bundle snapshot-converter into macOS app

Add snapshot-converter to mkBundle and copy it into Contents/MacOS alongside mithril-client. libsnappy and other dylibs are picked up automatically by mkBundle's otool-L-based discovery.

fix(nix): bundle libmcfgthread-2.dll for cardano-wallet on Windows

cardano-wallet was built against libmcfgthread-2.dll (MCF thread runtime v2)
but only v1 was bundled, causing STATUS_ACCESS_VIOLATION on startup.

fix(nix): copy checkpoints.json into macOS app bundle

fix(nix): copy genesis-dijkstra.json into macOS app bundle

fix(mithril): skip node start when bootstrap is in progress on disk check

The 10-minute disk space check fires during mithril sync with chain data
already present (partial download). The chain-present path was missing a
guard for in-progress mithril statuses, causing it to call cardanoNode.start()
on an incomplete chain. This exhausted the 5-retry budget, leaving the FSM
in unrecoverable state just before mithril finished. Uses the existing
isMithrilBootstrapBlockingNodeStart helper to break early.

test(mithril): verify disk check does not start node during active bootstrap
fix(release-cli): don't overwrite signed installers on hash mismatch
In fetch-installers, verify the -unsigned companion's hash against
Hydra's expected value before skipping re-download; this confirms the
companion is the genuine unsigned original and the main file is the
signed installer.

In drt sign, compare the SHA-256 of the main file against its -unsigned
companion before concluding it is already signed. On Windows, signing
renames the original before the remote nix run, so a failed signing
attempt leaves the companion on disk; if fetch-installers then
re-downloads a fresh unsigned copy both files are byte-identical and
signing must be retried rather than skipped.
chore(nix): upgrade cardano-node to 10.7.1 and enable LSM UTxO backend
Upgrade cardano-node from 10.6.2 to 10.7.1 and configure the V2LSM
ledger backend to reduce memory usage by storing UTxO data on disk
rather than in-heap. Also updates the cardano-playground config pin
and switches the config path to environments-pre/.

chore(nix): use mithril flake for windows client instead of fetching tarball

Mithril now exposes a cross-compiled Windows build directly at
packages.x86_64-linux.mithril-client-cli-windows, so the previous
workaround of downloading a pre-built tarball from GitHub releases is
no longer needed.

The mithril input remains pinned to a patched branch
(sl/fix-darwin-mithril-cli) which restores Darwin builds accidentally
dropped in the latest upstream release.

fix: update mithril to fix nix builds for mac

fix: update mithril to fix rustc version mismatch on darwin

Points mithril input at sl/fix-mismatch-rust-versions branch which
ensures all craneLib instances use the rust-overlay toolchain (1.94)
rather than falling back to nixpkgs rustc (1.91), fixing Darwin builds
that fail with [email protected] requiring rustc 1.93+.

fix(nix): remove erroneous space in WIN_SIGN_HOST bash default substitution

\${WIN_SIGN_HOST: -HSM} with a space causes bash to parse -HSM as a
substring-from-end offset, treating HSM as a variable. With set -u this
throws "HSM: unbound variable". The correct syntax for a default-value
substitution is \${WIN_SIGN_HOST:-HSM} (no space).

test: mock _convertSnapshot in tests that call startBootstrap

_convertSnapshot was added to startBootstrap after these tests were
written. Without a mock it falls through to _runCommand → buildMithrilEnv
which fetches genesis/ancillary keys from raw.githubusercontent.com,
causing EAI_AGAIN failures in network-isolated environments.

feat: use snapshot-converter binary for UTxO-HD LSM snapshot conversion

Replace the mithril-client subcommand invocation with the standalone
snapshot-converter binary from cardano-node for converting downloaded
in-memory snapshots to LSM format.

- Add snapshot-converter to daedalus-bridge (all platforms) and expose
  daedalus-bridge in perSystem/packages for all target systems
- Thread snapshot-converter through common.nix and cardano-bridge.nix;
  include it in the aarch64-darwin codesign loop and the NSIS installer
- Add runBinary() to mithrilCommandRunner for running non-mithril
  binaries with plain process.env (no mithril env vars or origin tag)
- Rewrite _convertSnapshot to find the most recent ledger slot, build
  the LSM output paths, and invoke snapshot-converter directly
- Update tests accordingly

fix(darwin): bundle .so files into binary-lib subdirs alongside .dylib

moveDylibsToSubdir was only handling *.dylib, causing liblmdb.so
(introduced by cardano-node's UTxO-HD LSM support) to be left in
Contents/MacOS/ root while its install name was already patched to
@executable_path/cardano-node-lib/liblmdb.so, resulting in a dyld
load failure at runtime.

fix(mithril): correct snapshot-converter args and finalizing diagnostics

Fix snapshot-converter invocation to properly replace the in-memory ledger
snapshot with an LSM one: move the in-memory snapshot out of ledger/ to a
temp location, then run converter with --input-mem pointing to the temp path
and --output-lsm-snapshot as a full path back into ledger/<slot>, so
cardano-node finds an LSM-format snapshot at the expected location.

Also fix --output-lsm-database (was pointing into a non-existent tmp/snapshots
subdir, now uses dbDirectory/lsm) and --config (was constructing a path that
doesn't exist, now uses launcherConfig.nodeConfig.network.configFile).

Add stdinInput support to runBinary and diagnostic logger.info calls around
each async step in the finalizing phase to pinpoint any future hangs.

fix(windows): bundle libsnappy.dll with installer

cardano-node.exe now links against libsnappy (used by the LSM storage
backend), but the DLL was not listed in the NSIS installer manifest.

fix(nix): bundle snapshot-converter into macOS app

Add snapshot-converter to mkBundle and copy it into Contents/MacOS alongside mithril-client. libsnappy and other dylibs are picked up automatically by mkBundle's otool-L-based discovery.

fix(nix): bundle libmcfgthread-2.dll for cardano-wallet on Windows

cardano-wallet was built against libmcfgthread-2.dll (MCF thread runtime v2)
but only v1 was bundled, causing STATUS_ACCESS_VIOLATION on startup.

fix(nix): copy checkpoints.json into macOS app bundle

fix(nix): copy genesis-dijkstra.json into macOS app bundle
feat: use snapshot-converter binary for UTxO-HD LSM snapshot conversion
Replace the mithril-client subcommand invocation with the standalone
snapshot-converter binary from cardano-node for converting downloaded
in-memory snapshots to LSM format.

- Add snapshot-converter to daedalus-bridge (all platforms) and expose
  daedalus-bridge in perSystem/packages for all target systems
- Thread snapshot-converter through common.nix and cardano-bridge.nix;
  include it in the aarch64-darwin codesign loop and the NSIS installer
- Add runBinary() to mithrilCommandRunner for running non-mithril
  binaries with plain process.env (no mithril env vars or origin tag)
- Rewrite _convertSnapshot to find the most recent ledger slot, build
  the LSM output paths, and invoke snapshot-converter directly
- Update tests accordingly

fix(darwin): bundle .so files into binary-lib subdirs alongside .dylib

moveDylibsToSubdir was only handling *.dylib, causing liblmdb.so
(introduced by cardano-node's UTxO-HD LSM support) to be left in
Contents/MacOS/ root while its install name was already patched to
@executable_path/cardano-node-lib/liblmdb.so, resulting in a dyld
load failure at runtime.

fix(mithril): correct snapshot-converter args and finalizing diagnostics

Fix snapshot-converter invocation to properly replace the in-memory ledger
snapshot with an LSM one: move the in-memory snapshot out of ledger/ to a
temp location, then run converter with --input-mem pointing to the temp path
and --output-lsm-snapshot as a full path back into ledger/<slot>, so
cardano-node finds an LSM-format snapshot at the expected location.

Also fix --output-lsm-database (was pointing into a non-existent tmp/snapshots
subdir, now uses dbDirectory/lsm) and --config (was constructing a path that
doesn't exist, now uses launcherConfig.nodeConfig.network.configFile).

Add stdinInput support to runBinary and diagnostic logger.info calls around
each async step in the finalizing phase to pinpoint any future hangs.

fix(windows): bundle libsnappy.dll with installer

cardano-node.exe now links against libsnappy (used by the LSM storage
backend), but the DLL was not listed in the NSIS installer manifest.

fix(nix): bundle snapshot-converter into macOS app

Add snapshot-converter to mkBundle and copy it into Contents/MacOS alongside mithril-client. libsnappy and other dylibs are picked up automatically by mkBundle's otool-L-based discovery.
fix(mithril): correct snapshot-converter args and finalizing diagnostics
Fix snapshot-converter invocation to properly replace the in-memory ledger
snapshot with an LSM one: move the in-memory snapshot out of ledger/ to a
temp location, then run converter with --input-mem pointing to the temp path
and --output-lsm-snapshot as a full path back into ledger/<slot>, so
cardano-node finds an LSM-format snapshot at the expected location.

Also fix --output-lsm-database (was pointing into a non-existent tmp/snapshots
subdir, now uses dbDirectory/lsm) and --config (was constructing a path that
doesn't exist, now uses launcherConfig.nodeConfig.network.configFile).

Add stdinInput support to runBinary and diagnostic logger.info calls around
each async step in the finalizing phase to pinpoint any future hangs.
fix(darwin): bundle .so files into binary-lib subdirs alongside .dylib
moveDylibsToSubdir was only handling *.dylib, causing liblmdb.so
(introduced by cardano-node's UTxO-HD LSM support) to be left in
Contents/MacOS/ root while its install name was already patched to
@executable_path/cardano-node-lib/liblmdb.so, resulting in a dyld
load failure at runtime.
feat: use snapshot-converter binary for UTxO-HD LSM snapshot conversion
Replace the mithril-client subcommand invocation with the standalone
snapshot-converter binary from cardano-node for converting downloaded
in-memory snapshots to LSM format.

- Add snapshot-converter to daedalus-bridge (all platforms) and expose
  daedalus-bridge in perSystem/packages for all target systems
- Thread snapshot-converter through common.nix and cardano-bridge.nix;
  include it in the aarch64-darwin codesign loop and the NSIS installer
- Add runBinary() to mithrilCommandRunner for running non-mithril
  binaries with plain process.env (no mithril env vars or origin tag)
- Rewrite _convertSnapshot to find the most recent ledger slot, build
  the LSM output paths, and invoke snapshot-converter directly
- Update tests accordingly
fix(release-cli): don't overwrite signed installers on hash mismatch
In fetch-installers, verify the -unsigned companion's hash against
Hydra's expected value before skipping re-download; this confirms the
companion is the genuine unsigned original and the main file is the
signed installer.

In drt sign, compare the SHA-256 of the main file against its -unsigned
companion before concluding it is already signed. On Windows, signing
renames the original before the remote nix run, so a failed signing
attempt leaves the companion on disk; if fetch-installers then
re-downloads a fresh unsigned copy both files are byte-identical and
signing must be retried rather than skipped.
fix(nix): remove erroneous space in WIN_SIGN_HOST bash default substitution
\${WIN_SIGN_HOST: -HSM} with a space causes bash to parse -HSM as a
substring-from-end offset, treating HSM as a variable. With set -u this
throws "HSM: unbound variable". The correct syntax for a default-value
substitution is \${WIN_SIGN_HOST:-HSM} (no space).

(cherry picked from commit 6a0b73f94349630e3bf0da3a3b60894eb00d95fc)
fix(release-cli): fix unicode curly quotes in makeSignedInstaller output
The echo line used Unicode typographic quotes around the installer path,
causing drt sign to fail to parse the 'Final installer:' line. Drop the
quotes entirely and update the Rust parser to strip only the prefix.

Also replace other curly quotes and ellipsis in the signing echo with
ASCII equivalents while here.

(cherry picked from commit 1beb91b8146146c0a76b2300534383b4cc818a7a)