Skip to content

feat: Implement CLPR feature - #27029

Open
Neeharika-Sompalli wants to merge 10 commits into
mainfrom
clpr-feature
Open

Neeharika-Sompalli wants to merge 10 commits into
mainfrom
clpr-feature

Conversation

@Neeharika-Sompalli

@Neeharika-Sompalli Neeharika-Sompalli commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Ports the Cross-Ledger Proof Relay (CLPR) functionality from swirldslabs/clpr-hiero into hiero-consensus-node.

CLPR provides authenticated cross-ledger messaging, connector and channel management, state-proof verification, endpoint discovery, and peer-to-peer synchronization. The functionality is gated by the clpr.enabled configuration flag.

Changes

  • Add CLPR HAPI protobuf definitions, transactions, queries, response codes, and state models.
  • Add the CLPR service API and implementation modules.
  • Add handlers for:
    • Registering, completing, and deregistering connectors
    • Registering, completing, and closing channels
    • Submitting bundles and redacting messages
    • Reading and updating ledger configuration
    • Publishing and querying endpoint manifests
  • Add message queues, running hashes, fee calculation, staking, quotas, and slashing support.
  • Add Hiero, Ethereum/EVM, QBFT, and Sei proof verification.
  • Add block-proven snapshots and state-proof generation and verification.
  • Add CLPR system-contract and application workflow integration.
  • Add endpoint discovery, mTLS communication, synchronization scheduling, circuit breakers, and peer reputation.
  • Add a lazy CLPR runtime facade so networking and synchronization components are created only when CLPR is enabled.
  • Add configuration, API permissions, throttles, documentation, unit tests, and HAPI end-to-end tests.

Feature flag

CLPR behavior is controlled through:

clpr.enabled=false

@lfdt-bot

lfdt-bot commented Aug 31, 2026

Copy link
Copy Markdown

Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@codecov

codecov Bot commented Sep 1, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 25.00000% with 9 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
.../src/main/java/com/hedera/hapi/util/HapiUtils.java 25.00% 9 Missing ⚠️

Impacted file tree graph

@@             Coverage Diff              @@
##               main   #27029      +/-   ##
============================================
- Coverage     71.25%   71.10%   -0.16%     
- Complexity    11906    13268    +1362     
============================================
  Files          2596     2775     +179     
  Lines        109571   120086   +10515     
  Branches      12372    13774    +1402     
============================================
+ Hits          78080    85387    +7307     
- Misses        27447    30133    +2686     
- Partials       4044     4566     +522     
Files with missing lines Coverage Δ Complexity Δ
...om/hedera/node/app/hapi/utils/MiscCryptoUtils.java 62.50% <ø> (-13.06%) 7.00 <0.00> (+1.00) ⬇️
...a/node/app/hapi/utils/blocks/BlockStreamUtils.java 8.42% <ø> (+1.55%) 15.00 <0.00> (+4.00)
...m/hedera/node/app/hapi/utils/blocks/HashUtils.java 87.09% <ø> (ø) 5.00 <0.00> (?)
.../node/app/hapi/utils/blocks/MerklePathBuilder.java 31.81% <ø> (ø) 13.00 <0.00> (?)
.../node/app/hapi/utils/blocks/NativeTssVerifier.java 89.28% <ø> (ø) 5.00 <0.00> (?)
.../node/app/hapi/utils/blocks/StateProofBuilder.java 0.00% <ø> (ø) 0.00 <0.00> (?)
...node/app/hapi/utils/blocks/StateProofVerifier.java 51.06% <ø> (ø) 18.00 <0.00> (?)
...a/node/app/hapi/utils/forensics/RecordParsers.java 90.90% <ø> (-2.64%) 11.00 <0.00> (ø)
...s/sysfiles/validation/ExpectedCustomThrottles.java 100.00% <ø> (ø) 2.00 <0.00> (ø)
...hedera/node/app/spi/state/BlockProvenSnapshot.java 0.00% <ø> (ø) 0.00 <0.00> (?)
... and 131 more

... and 113 files with indirect coverage changes

Impacted file tree graph

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@Neeharika-Sompalli Neeharika-Sompalli changed the title feat: Add CLPR functionality behind feature flag feat: Implement CLPR feature Sep 1, 2026
@Neeharika-Sompalli
Neeharika-Sompalli force-pushed the clpr-feature branch 3 times, most recently from 280b803 to 67fa79c Compare September 1, 2026 17:47
tinker-michaelj
tinker-michaelj previously approved these changes Sep 1, 2026

@tinker-michaelj tinker-michaelj left a comment

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.

LGTM, tyvm @Neeharika-Sompalli !

akdev
akdev previously approved these changes Sep 1, 2026
@Neeharika-Sompalli
Neeharika-Sompalli requested review from andrewb1269 and removed request for lpetrovic05 September 2, 2026 02:56
viniciusjssouza
viniciusjssouza previously approved these changes Sep 2, 2026
tinker-michaelj
tinker-michaelj previously approved these changes Sep 2, 2026

@tinker-michaelj tinker-michaelj left a comment

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.

LGTM, tyvm @Neeharika-Sompalli !

Neeharika-Sompalli and others added 8 commits September 2, 2026 09:55
Signed-off-by: Neeharika Sompalli <52669918+Neeharika-Sompalli@users.noreply.github.com>
Signed-off-by: Neeharika-Sompalli <neeharika.sompalli@swirldslabs.com>
Signed-off-by: Neeharika-Sompalli <neeharika.sompalli@swirldslabs.com>
Signed-off-by: Neeharika-Sompalli <neeharika.sompalli@swirldslabs.com>
Signed-off-by: Neeharika-Sompalli <neeharika.sompalli@swirldslabs.com>
Signed-off-by: Neeharika-Sompalli <neeharika.sompalli@swirldslabs.com>
Signed-off-by: Neeharika-Sompalli <neeharika.sompalli@swirldslabs.com>
Signed-off-by: Neeharika-Sompalli <neeharika.sompalli@swirldslabs.com>
@swirlds-automation
swirlds-automation dismissed stale reviews from akdev, viniciusjssouza, and tinker-michaelj September 2, 2026 16:07

11 file(s) changed in commit e35d094

andrewb1269
andrewb1269 previously approved these changes Sep 2, 2026
tinker-michaelj
tinker-michaelj previously approved these changes Sep 2, 2026

@tinker-michaelj tinker-michaelj left a comment

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.

LGTM, tyvm @Neeharika-Sompalli !

JivkoKelchev and others added 2 commits September 11, 2026 17:34
Signed-off-by: Jivko Kelchev <zhivko.kelchev@limechain.tech>
@swirlds-automation
swirlds-automation dismissed stale reviews from andrewb1269 and tinker-michaelj September 18, 2026 20:35

1 file(s) changed in commit 86c706f

@testlens-app

testlens-app Bot commented Sep 18, 2026

Copy link
Copy Markdown

🚨 TestLens detected 1 failed test 🚨

Here is what you can do:

  1. Inspect the test failures carefully.
  2. If you are convinced that some of the tests are flaky, you can mute them below.
  3. Finally, trigger a rerun by checking the rerun checkbox.

Failed Jobs without Test Failures

600: [FLOW] PR Checks / CI Complete

Test Summary

600: [FLOW] PR Checks / MATS / HAPI Tests / hapi-tests-misc-records-crypto-and-serial / HAPI Tests (Misc Records, Crypto & Misc Serial) > :test-clients:testSubprocessConcurrent

Test Runs Flakiness
TokenAirdropRoyaltyMoneyCreationTest > airdropRoyaltySelfDealing() > as written 0% 🟢

🏷️ Commit: 86c706f
▶️ Tests: 56221 executed
⚪️ Checks: 46/46 completed

Test Failures

TokenAirdropRoyaltyMoneyCreationTest > airdropRoyaltySelfDealing() > as written (:test-clients:testSubprocessConcurrent in 600: [FLOW] PR Checks / MATS / HAPI Tests / hapi-tests-misc-records-crypto-and-serial / HAPI Tests (Misc Records, Crypto & Misc Serial))
com.hedera.services.bdd.spec.exceptions.HapiTxnCheckStateException: Wrong status for TokenAirdrop in 'TokenAirdropRoyaltyMoneyCreationTest.airdropRoyaltySelfDealing'! Expected SUCCESS, was TOKEN_AIRDROP_WITH_FALLBACK_ROYALTY
	at com.hedera.node.test.clients@0.79.0-SNAPSHOT/com.hedera.services.bdd.spec.transactions.HapiTxnOp.resolveStatus(HapiTxnOp.java:410)
	at com.hedera.node.test.clients@0.79.0-SNAPSHOT/com.hedera.services.bdd.spec.transactions.HapiTxnOp.submitOp(HapiTxnOp.java:361)
	at com.hedera.node.test.clients@0.79.0-SNAPSHOT/com.hedera.services.bdd.spec.HapiSpecOperation.execFor(HapiSpecOperation.java:199)
	at com.hedera.node.test.clients@0.79.0-SNAPSHOT/com.hedera.services.bdd.spec.HapiSpec.exec(HapiSpec.java:1000)
	at com.hedera.node.test.clients@0.79.0-SNAPSHOT/com.hedera.services.bdd.spec.HapiSpec.run(HapiSpec.java:804)
	at com.hedera.node.test.clients@0.79.0-SNAPSHOT/com.hedera.services.bdd.spec.HapiSpec.execute(HapiSpec.java:754)
	at java.base/java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:194)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:511)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.tryRemoveAndExec(ForkJoinPool.java:1490)
	at java.base/java.util.concurrent.ForkJoinPool.helpJoin(ForkJoinPool.java:2248)
	at java.base/java.util.concurrent.ForkJoinTask.awaitDone(ForkJoinTask.java:499)
	at java.base/java.util.concurrent.ForkJoinTask.get(ForkJoinTask.java:1015)
	at java.base/java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:194)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:511)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1450)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:2019)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:187)

Rerun Controls

Note

Muting tests is disabled for this repository.

Select tests to mute in this pull request:

🔲 TokenAirdropRoyaltyMoneyCreationTest > airdropRoyaltySelfDealing()

Reuse successful test results:

  • ♻️ Only rerun the tests that failed or were muted before

Click the checkbox to trigger a rerun:

  • Rerun jobs

Learn more about TestLens at testlens.app/docs.

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.

9 participants