-
Notifications
You must be signed in to change notification settings - Fork 36
Conversation
Signed-off-by: Giles Cope <gilescope@gmail.com>
This comment has been minimized.
This comment has been minimized.
Signed-off-by: Giles Cope <gilescope@gmail.com>
Signed-off-by: Giles Cope <gilescope@gmail.com>
We need to do this for 2 reasons: 1. We should not block the executor - awaiting on a new thread for high CPU work is the right choice 2. Ledger 9 no-longer has Send for the tx.prove() method. So our hand is forced here, even for remote proving Signed-off-by: Oscar Bailey <79094698+ozgb@users.noreply.github.com> Assisted-by: Claude:claude-4.8-opus
Signed-off-by: Oscar Bailey <79094698+ozgb@users.noreply.github.com>
ledger 9-rc.3 folds dust_actions into Intent::data_to_sign (the new IntentSigningEnvelope), so a dust registration's night_key, dust_address and allow_fee_payment are now part of the signed payload. Both toolkit sign-paths computed data_to_sign before attaching the registrations to the intent, so the signature no longer matched at validation and genesis generation failed with InvalidDustRegistrationSignature. Attach the registrations unsigned first, then compute data_to_sign and fill in each signature, mirroring the ledger's own Transaction::sign. Affects genesis_generator::add_dust_actions and the helper apply_dust path (new DustRegistrationBuilder::build_unsigned). Assisted-by: Claude:claude-opus-4-8 Signed-off-by: Oscar Bailey <79094698+ozgb@users.noreply.github.com>
Signed-off-by: Oscar Bailey <79094698+ozgb@users.noreply.github.com>
Under ledger 9-rc.3 ContractOperation is dual-stack: v1 (zk-stdlib v1) circuits
verify their proofs (ProofVersioned::V2) against the v2 slot, holding a 2.x
transient_crypto_old verifier key (verifier-key[v6]); v2 circuits use the v3 slot
(3.x transient_crypto, verifier-key[v7]).
The simple-merkle-tree and counter test contracts are v1 circuits, so their stored
verifier keys are 2.x keys. The toolkit deploy path loaded them via the 3.x
verifier_key()/contract_operation_new(), which could not deserialize the v6 keys
and produced an operation with no verifier key -- contract deploys failed with
VerifierKeyNotSet { operation: check }.
Add verifier_key_v1 (deserializes as 2.x) and a per-generation contract_operation_new_v1:
pre-ledger-9 it is the existing single-stack path; under ledger 9 it places the 2.x
key in ContractOperation::v2. The merkle-tree deploy now uses these. Verified
end-to-end (deploy -> store -> check), the check call's proof verifying against
op.v2_vk().
Assisted-by: Claude:claude-opus-4-8
Signed-off-by: Oscar Bailey <79094698+ozgb@users.noreply.github.com>
rc.3 folds dust_actions into Intent::data_to_sign, so the unshielded offer's input signatures - not just the dust registration signatures - are signed over a payload that includes the dust. StandardTrasactionInfo::apply_dust attached dust_actions to the fallible intent *after* IntentInfo::build had already signed that intent's unshielded offer, leaving those offer signatures stale. Validation recomputed data_to_sign with the dust and balancing failed with IntentSignatureVerificationFailure (e.g. generate-txs batches during genesis generation). apply_dust now assembles the full intent (offers + unsigned dust) first, then computes data_to_sign once and re-signs both the unshielded offers and the dust registrations over it, mirroring the ledger's own Intent::sign. The offer signing keys are recovered from the originating IntentInfo via a new BuildIntent::unshielded_signing_keys accessor. Assisted-by: Claude:claude-opus-4-8 Signed-off-by: Oscar Bailey <79094698+ozgb@users.noreply.github.com>
Signed-off-by: Oscar Bailey <79094698+ozgb@users.noreply.github.com>
Signed-off-by: Oscar Bailey <79094698+ozgb@users.noreply.github.com>
Signed-off-by: Oscar Bailey <79094698+ozgb@users.noreply.github.com>
Signed-off-by: Oscar Bailey <79094698+ozgb@users.noreply.github.com>
Will re-gen properly once I get access to a Cardano preview db-sync Signed-off-by: Oscar Bailey <79094698+ozgb@users.noreply.github.com>
Signed-off-by: Oscar Bailey <79094698+ozgb@users.noreply.github.com>
Signed-off-by: Lech Głowiak <lech.glowiak@shielded.io>
Replace the outdated node file and the four scattered rc.3 toolkit change files with two consolidated change files (node + toolkit) reflecting the final state of the branch. - node: runtime metadata is not regenerated, and only undeployed genesis plus the derived .mn fixtures are rebuilt at v18 (devnet genesis still needs an AWS-side rebuild). The prior file claimed otherwise. - toolkit: fold in dual-stack verifier keys, dust-registration and unshielded-offer signing over the assembled intent, and the !Send-safe proving fix (previously undocumented). Assisted-by: Claude:claude-opus-4-8 Signed-off-by: Oscar Bailey <79094698+ozgb@users.noreply.github.com>
Signed-off-by: Lech Głowiak <lech.glowiak@shielded.io>
Signed-off-by: Oscar Bailey <79094698+ozgb@users.noreply.github.com>
Signed-off-by: Oscar Bailey <79094698+ozgb@users.noreply.github.com>
💡 Codex Review
When using the devnet preset, midnight-node/ledger/helpers/src/lib.rs Line 272 in 065cb64
Ledger 9 deploys now handle both ℹ️ About Codex in GitHubCodex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback". |
Signed-off-by: Oscar Bailey <79094698+ozgb@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 22a890ee45
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
Signed-off-by: Giles Cope <gilescope@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ac2c71b8e2
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…lease-branch-rebase feat: ledger 9-rc.3 (#1738)
Overview
ledger 9 rc.3 integration. Fixes: #1737
🗹 TODO before merging
📌 Submission Checklist
git commit -s) for the DCO🧪 Testing Evidence
Please describe any additional testing aside from CI:
🔱 Fork Strategy
Note: rc.3 is not compatible with rc.2 - so no fork between the two versions is possible
Links