Skip to content

opt-in hasher - #23480

Merged
patrickhuie19 merged 8 commits into
developfrom
feat/opt-in-hasher
Aug 21, 2026
Merged

opt-in hasher#23480
patrickhuie19 merged 8 commits into
developfrom
feat/opt-in-hasher

Conversation

@patrickhuie19

@patrickhuie19 patrickhuie19 commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Changing workflow tags persistence in the DB resulted in non-identical hashes in the remote executable server. This change gives us an opt-in hasher.

The previous hashing model was opt-out. We selected fields that we allow to differ (i.e. do not require BFT quorum guarantees). IMO this should have been opt-in from the start. Protos are backwards compatible, hashing a full proto payload is not.

@github-actions

github-actions Bot commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

CORA - Pending Reviewers

All codeowners have approved! ✅

Legend: ✅ Approved | ❌ Changes Requested | 💬 Commented | 🚫 Dismissed | ⏳ Pending | ❓ Unknown

For more details, see the full review summary.

@github-actions

Copy link
Copy Markdown
Contributor

I see you updated files related to core. Please run make gocs in the root directory to add a changeset as well as in the text include at least one of the following tags:

  • #added For any new functionality added.
  • #breaking_change For any functionality that requires manual action for the node to boot.
  • #bugfix For bug fixes.
  • #changed For any change to the existing functionality.
  • #db_update For any feature that introduces updates to database schema.
  • #deprecation_notice For any upcoming deprecation functionality.
  • #internal For changesets that need to be excluded from the final changelog.
  • #nops For any feature that is NOP facing and needs to be in the official Release Notes for the release.
  • #removed For any functionality/config that is removed.
  • #updated For any functionality that is updated.
  • #wip For any change that is not ready yet and external communication about it should be held off till it is feature complete.

@github-actions

Copy link
Copy Markdown
Contributor

✅ No conflicts with other open PRs targeting develop

WorkflowDonConfigVersion: md.WorkflowDonConfigVersion,
ReferenceID: md.ReferenceID,
DecodedWorkflowName: md.DecodedWorkflowName,
SpendLimits: md.SpendLimits,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SpendLimits are already excluded in the default hasher. We should remove that field from base.


// optInWriteReportExcludeSignaturesHasher combines the metadata opt-in allowlist
// with WriteReport-specific signature exclusion, mirroring writeReportExcludeSignaturesHasher.
type optInWriteReportExcludeSignaturesHasher struct {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we keep existing hasher objects instead of creating new ones?
We could make them identical to current prod state by excluding workflowTag from the base struct but having it under a per-field flag that is ON by default.
That way you avoid the opt-in global ON/OFF flag altogether. The behavior switches to opt-in seamlessly and then after rollout be can exclude workflowTag.

bolekk
bolekk previously approved these changes Aug 21, 2026
DecodedWorkflowName: md.DecodedWorkflowName,
WorkflowRegistryChainSelector: md.WorkflowRegistryChainSelector,
WorkflowRegistryAddress: md.WorkflowRegistryAddress,
EngineVersion: md.EngineVersion,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: you could list all remaining fields in comments to indicate that they are explicitly excluded

george-dorin
george-dorin previously approved these changes Aug 21, 2026
@trunk-io

trunk-io Bot commented Aug 21, 2026

Copy link
Copy Markdown

Static BadgeStatic BadgeStatic Badge

View Full Report ↗︎Docs

@patrickhuie19
patrickhuie19 requested a review from a team as a code owner August 21, 2026 17:39
@cl-sonarqube-production

Copy link
Copy Markdown

@patrickhuie19
patrickhuie19 added this pull request to the merge queue Aug 21, 2026
Merged via the queue into develop with commit 2c82aa0 Aug 21, 2026
232 of 233 checks passed
@patrickhuie19
patrickhuie19 deleted the feat/opt-in-hasher branch August 21, 2026 18:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants