Skip to content

Commit 5bf42d6

Browse files
authored
Merge pull request #6299 from IntersectMBO/jl/node-oci-snapshot-converter
Add snapshot-converter to node OCI image
2 parents f2706f4 + 4ddd6e3 commit 5bf42d6

File tree

3 files changed

+35
-1
lines changed

3 files changed

+35
-1
lines changed

flake.nix

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -487,7 +487,16 @@
487487
customConfig.haskellNix
488488
];
489489
cardanoNodePackages = mkCardanoNodePackages final.cardanoNodeProject;
490-
inherit (final.cardanoNodePackages) cardano-node cardano-cli cardano-submit-api cardano-tracer bech32 locli db-analyser tx-generator;
490+
inherit (final.cardanoNodePackages)
491+
bech32
492+
cardano-cli
493+
cardano-node
494+
cardano-submit-api
495+
cardano-tracer
496+
db-analyser
497+
locli
498+
snapshot-converter
499+
tx-generator;
491500
};
492501
nixosModules = {
493502
cardano-node = {

nix/docker/README.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,29 @@ docker volume inspect opt-cardano
209209
sudo tree /var/lib/docker/volumes/opt-cardano/_data
210210
```
211211

212+
## Cardano Ledger Snapshot Conversion
213+
The snapshot-converter utility is included in the cardano-node image at path
214+
`/usr/local/bin/snapshot-converter`. It can be used to convert between ledger
215+
state types as needed, without relying on host level tooling or full
216+
chain ledger replays.
217+
218+
An example follows to convert preprod ledger state in a named docker volume in
219+
snapshot `295420` from `Legacy` to `Mem` when node is not already
220+
running:
221+
```
222+
docker run -v preprod-data:/data --rm -it --entrypoint=bash ghcr.io/intersectmbo/cardano-node:dev -c '
223+
mv /data/db/ledger /data/db/ledger-old \
224+
&& mkdir -p /data/db/ledger \
225+
&& snapshot-converter Legacy /data/db/ledger-old/295420 Mem /data/db/ledger/295420 cardano --config /opt/cardano/config/preprod/config.json
226+
'
227+
```
228+
229+
Note that once ledger state is converted, the cardano-node container will need
230+
to be run with a node configuration aligned with the new ledger state type,
231+
otherwise ledger replay from genesis will re-occur.
232+
233+
For more info, see the [UTxO Migration Guide](https://ouroboros-consensus.cardano.intersectmbo.org/docs/for-developers/utxo-hd/migrating/).
234+
212235

213236
## Legacy Tracing System
214237
Cardano-node now defaults to using the new tracing system. The legacy tracing

nix/docker/default.nix

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
# The main contents of the image.
1919
, cardano-cli
2020
, cardano-node
21+
, snapshot-converter
2122
, scripts
2223

2324
# Set gitrev to null, to ensure the version below is used
@@ -161,6 +162,7 @@ in
161162
cp -v ${context}/bin/* usr/local/bin
162163
ln -sv ${cardano-node}/bin/cardano-node usr/local/bin/cardano-node
163164
ln -sv ${cardano-cli}/bin/cardano-cli usr/local/bin/cardano-cli
165+
ln -sv ${snapshot-converter}/bin/snapshot-converter usr/local/bin/snapshot-converter
164166
ln -sv ${jq}/bin/jq usr/local/bin/jq
165167
166168
# Create iohk-nix network configs, organized by network directory.

0 commit comments

Comments
 (0)