Skip to content

[CRE-2087] Propagate execution timestamps for feature flags#1935

Open
bolekk wants to merge 1 commit intomainfrom
flags_prop
Open

[CRE-2087] Propagate execution timestamps for feature flags#1935
bolekk wants to merge 1 commit intomainfrom
flags_prop

Conversation

@bolekk
Copy link
Contributor

@bolekk bolekk commented Mar 27, 2026

No description provided.

@github-actions
Copy link

✅ API Diff Results - github.com/smartcontractkit/chainlink-common

✅ Compatible Changes (3)

pkg/capabilities.RequestMetadata (1)
  • ExecutionTimestamp — ➕ Added
pkg/capabilities/pb.(*RequestMetadata) (1)
  • GetExecutionTimestamp — ➕ Added
pkg/capabilities/pb.RequestMetadata (1)
  • ExecutionTimestamp — ➕ Added

📄 View full apidiff report

}
}

func CapabilityRequestFromProto(pr *CapabilityRequest) (capabilities.CapabilityRequest, error) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Who is supposed to set the right timestamp on this capabilityRequest?

Asking because for making a call from Workflow DON -> Vault DON, I see the capability request is created here, and till now no timestamp there:
https://github.com/smartcontractkit/chainlink/blob/af80ea0f7d313af2b164a509e48b4ad5a77b6cbd/core/services/workflows/v2/secrets.go#L219-L225

Copy link
Contributor

Choose a reason for hiding this comment

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

I guess this is an open question separate to this PR.
So approving this PR.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Engine will set it - core PR coming.

string workflow_registry_chain_selector = 12;
string workflow_registry_address = 13;
string engine_version = 14;
google.protobuf.Timestamp execution_timestamp = 15;
Copy link
Contributor

Choose a reason for hiding this comment

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

Wait, does this new field also become part of the payload hash on server here:
https://github.com/smartcontractkit/chainlink/blob/41586b4eec7437b564ae77614e8d7333d47a3796/core/capabilities/remote/executable/server.go#L269-L271

If yes, then isn't there a risk that when dontime fails, and we fallback to local node time, then all nodes will use a different timestamp, thus getting a different hash above, causing F+1 failures?

Is that an acceptable situation?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This field will be excluded in the hasher similarly to other existing fields with the same problem - core PR coming.

@bolekk bolekk enabled auto-merge March 27, 2026 05:42
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.

2 participants