Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cardano transactions certification stopped in pre-release-preview #1938

Closed
2 tasks done
jpraynaud opened this issue Sep 18, 2024 · 1 comment · Fixed by #1936
Closed
2 tasks done

Cardano transactions certification stopped in pre-release-preview #1938

jpraynaud opened this issue Sep 18, 2024 · 1 comment · Fixed by #1936
Assignees
Labels
bug ⚠️ Something isn't working

Comments

@jpraynaud
Copy link
Member

jpraynaud commented Sep 18, 2024

Why

We have noticed that the Cardano transactions certification almost stopped working on the pre-release-preview network.

What

Identify the origin of the problem and fix it.

How

  • Investigate the origin of the problem
  • Fix the problem
@jpraynaud jpraynaud self-assigned this Sep 18, 2024
@jpraynaud jpraynaud added the bug ⚠️ Something isn't working label Sep 18, 2024
@jpraynaud
Copy link
Member Author

After investigation of logs and database extracts from SPOs which are unable to sign, we have identified that they all receive an Invalid signature for party error. This error is received only for the Cardano transaction type of data and not for the others, which means that there exists a discrepancy between the data used to sign by those signers and other signers.

The signers have all stopped signing roughly at the same time (when we rolled out the new 2437.0-pre pre-release) and they were all running the signer 0.2.170 which was shipped with the previous distribution 2430. This behavior is consistent with the time at which we have activated the new signing configuration on pre-release-preview with a depth from the tip of the chain of 0 block.

In the signer 0.2.170, we have identified a problem, which under some circumstances prevents some blocks to be imported when they are at the tip of the Cardano chain (see #1877). The fix is applied with version 0.2.181 of 2437.0-pre pre-release. This means that signers running version 0.2.170 may create gaps in block import and thus stop signing properly the Cardano transactions. We have indeed verified that the message signed by the faulty 0.2.170 nodes missed the transactions of the first block of the associated block range.

As a conclusion the behavior that we witnessed is due to:

  • the activation of 0 block depth of the Cardano chain when importing transaction
  • the faulty behavior of the Cardano transaction importer shipped in 0.2.170 with 0 block depth
  • the omission of the reset of Cardano transaction state (with stabilization of the feature and being aware that some previous versions of the signer could create invalid states that would last).

We have therefore created a migration of the Cardano transaction state that does a full reset (with #1936) and it will be shipped with signer version 0.2.182 in the 2437.1-pre new pre-release distribution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug ⚠️ Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant