feat: produce test snapshots
Signed-off-by: jeluard <[email protected]>
Signed-off-by: jeluard <[email protected]>
Signed-off-by: yHSJ <[email protected]>
Signed-off-by: Jonathan Lim <[email protected]>
Store path: /nix/store/ff91csiwpspvqahaach56ahq86lf53vd-combined-docs
The info banner sat inside the genesis() function body, so it fired once per `wb genesis <op>` dispatch
Remove the "genesis spec" workbench command that was used for `create-testnet-data --spec-*` and instead use what cardano-profile provides. The profile may have null "conway" or "dijkstra" genesis fields but the node still needs valid files, use a "zero" genesis in those cases.
Based on a mainnet db-sync and mainnet genesis files we reconstructed the timeline with no cardano-profile implementation specifics
Going forward, the only way to inject cost models with any number of parameters is through Alonzo genesis "extraConfig" field.
- Structure: Separates cost models from the rest of the parameters. - Consistency: Shelley genesis is the full object, no only the "protocolParams" field. - Consistency: Uses everywhere an object for the cost model, no arrays. - Cost model names are updated.
Were removed when the node started only considering valid what mainnet shipped with
The pool relays were wrote into the Shelley genesis (via `pool-relays.json` and `cardano-cli ... --relays` / `--relay-specification-file`) are only consumed by ledger-peer discovery. With ledger peers off and `publicRoots` empty, the relay records in genesis are never read. Every workbench topology disables it: - the supervisor (local / 127.0.0.1) backend gets `useLedgerAfterSlot: -1` from `cardano-topology projection-for`. - the Nomad backend hardcodes the same value (nix/workbench/backend/nomad-job.nix).
Was converging to `create-staked` output, keep `create-testnet-data` layout:
- pools-keys/poolN/{cold,kes,vrf,opcert}.{skey,vkey,cert,counter}
- stake-delegators/delegatorN/{payment,staking}.{skey,vkey}
- drep-keys/drepN/drep.{skey,vkey}
- utxo-keys/utxoN/utxo.{skey,vkey}
- genesis-keys/genesisN/key.{skey,vkey}
- delegate-keys/delegateN/{key,kes,vrf,opcert}.{skey,vkey,cert,counter}
- byron-gen-command/
Normalises genesis files names. Every era's genesis file is now genesis.<era>.json everywhere:
- genesis.byron.json
- genesis.shelley.json
- genesis.alonzo.json
- genesis.conway.json
- genesis.dijkstra.json
Details:
- create-testnet-data drops its symlink-creation block and the `link_keys` helper (no longer needed under the native layout).
- Removes `Massage_the_key_file_layout_to_match_AWS`, `key_depl` and `key_genesis`.
Genesis file names are unchanged here.
Replaces 'cardano-cli byron genesis genesis'.
This introduces changes to the cache output so the directory entry now has the "v2" suffix.
Removes genesis-byron-{jq,modular} and the genesis-byron dispatcher.
Default is `create-testnet-data`
Function `derive-from-cache` becomes a backend implementation. Both `derive-from-cache` and `finalise-cache-entry` are merged and inlined into `derive-from-cache-jq` (`derive-from-cache-modular` delegates to "jq").
Resolve `$genesis_backend` once at source time and replace all the 'if WB_MODULAR_GENESIS' with a single `"X-$genesis_backend" "$@"`. Applies to `profile-cache-key-input`, `profile-cache-key`, `spec` and `pool-relays`. Also, the decision between `create-testnet-data` and `create-staked` (WB_CREATE_TESTNET_DATA), now lives in the "jq" backend (the "modular" backend only implements spec, pool-relays, byron and cache key functions, not the create-testnet-data call).
Both genesis backends, "jq" and "modular", now live in the same file. Extract unmodified the code of each to new files.