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