Skip to content

Conversation

@cawthorne
Copy link

@cawthorne cawthorne commented Jan 13, 2026

Title: feat: Add Streams LLO NoDAG Trigger capability

Description:

Summary

Add proto definition for the Streams LLO NoDAG Trigger capability to support Asset DON → CRE DON-to-DON communication for Data Feeds workflows.

This proto exposes the existing LLO transmitter through the NoDAG Capability API, enabling workflow-driven consumption of OCR reports from the LLO plugin.

What Changed

New Proto: cre/capabilities/streams/v1/trigger.proto

  • Config message: Defines trigger configuration

    • stream_ids: uint32 array identifying LLO feeds to subscribe to
    • max_frequency_ms: Per-subscriber throttling interval (must be multiple of 1000ms)
  • Report message: OCR trigger event payload

    • config_digest: OCR configuration digest
    • seq_nr: Report sequence number
    • report: Raw OCR report bytes
    • sigs: Array of attributed signatures (OCRSignature)
  • OCRSignature message: Attributed onchain signature

    • signer: Signer index
    • signature: Signature bytes
  • Streams service: NoDAG trigger service

    • Trigger RPC: Streaming RPC that emits Report messages
    • Capability ID: streams-trigger@2.0.0
    • Mode: MODE_DON

Why These Changes

Migration to NoDAG: This capability is required to migrate Keystone Data Feeds workflows from the legacy DAG architecture to the new CRE NoDAG architecture.

Matches LLO Transmitter Output: The proto structure matches the existing OCRTriggerEvent that the LLO transmitter emits, ensuring seamless integration without changes to the LLO plugin.

Enables Workflow-Driven Feeds: CRE workflows can now subscribe to LLO reports via the trigger API, enabling:

  • Configurable frequency throttling per workflow
  • Multiple workflows consuming the same feed
  • Orchestrated transmission logic in workflows

Design Doc

See comprehensive design document: LLO CRE DON-to-DON Trigger Design

Related PRs

  • chainlink-common#1770 - Generated SDK and server boilerplate
  • chainlink#20784 - NoDAG transmitter implementation

Breaking Changes

None. This is a new capability with no impact on existing protos.

Note on CI Failures: The buf breaking checks are expected to fail for new proto definitions. These failures are normal and will be reviewed/approved by maintainers.

Checklist

  • Proto definition follows existing patterns (matches CRON trigger structure)
  • Capability ID is unique (streams-trigger@2.0.0)
  • Messages use appropriate field types (uint32 for stream IDs, uint64 for timestamps)
  • Service is marked MODE_DON for DON-to-DON communication
  • Changeset added for versioning
  • No breaking changes to existing protos

Testing

  • Manual validation: Proto compiles successfully
  • Generated Go code will be tested in chainlink-common#1770
  • End-to-end testing will occur in chainlink#20784

- Add cre/capabilities/streams/v1/trigger.proto
- Define Config message (stream_ids, max_frequency_ms)
- Define Report message matching OCRTriggerEvent
- Define OCRSignature message for attributed signatures
- Add Streams service with Trigger RPC
- Capability ID: streams-trigger@2.0.0
- Support for Data Feeds migration to CRE NoDAG architecture
@cawthorne cawthorne requested review from a team as code owners January 13, 2026 15:46
@cawthorne cawthorne marked this pull request as draft January 13, 2026 15:46
@changeset-bot
Copy link

changeset-bot bot commented Jan 13, 2026

🦋 Changeset detected

Latest commit: 53b7b56

The changes in this PR will be included in the next version bump.

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions
Copy link

👋 cawthorne, thanks for creating this pull request!

To help reviewers, please consider creating future PRs as drafts first. This allows you to self-review and make any final changes before notifying the team.

Once you're ready, you can mark it as "Ready for review" to request feedback. Thanks!

@github-actions
Copy link

github-actions bot commented Jan 13, 2026

The latest Buf updates on your PR. Results from workflow Regenerate Protobuf Files / buf (pull_request).

BuildFormatLintBreakingUpdated (UTC)
❌ failed (0)🚫 cancelled🚫 cancelled🚫 cancelledJan 13, 2026, 3:48 PM

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.

1 participant