Skip to content

feat(delegations): [CON-1664] make cloud engine nodes use API BNs to fetch delegations#9595

Draft
pierugo-dfinity wants to merge 40 commits intomasterfrom
pierugo/delegations/type4-adjustments
Draft

feat(delegations): [CON-1664] make cloud engine nodes use API BNs to fetch delegations#9595
pierugo-dfinity wants to merge 40 commits intomasterfrom
pierugo/delegations/type4-adjustments

Conversation

@pierugo-dfinity
Copy link
Copy Markdown
Contributor

@pierugo-dfinity pierugo-dfinity commented Mar 26, 2026

Since non-cloud engine nodes (including nodes of the NNS subnet) deny incoming connections from cloud engine nodes in the firewall, a few adjustments are required.
Cloud engines' registry replicators already use API BNs instead of NNS nodes directly. Similarly, this PR makes cloud engine nodes use API BNs instead of NNS nodes to fetch delegations.

This PR also extends the current system test on NNS delegations to test all endpoints on all subnet types (including the NNS, which should effectively not return a delegation).

Note: this PR is currently blocked by #9613 which provisions DNS records for API BN domains as well as valid TLS certificates inside the system test environment. Thus, all system tests currently using cloud engines fail but will pass once #9613 and #9609 are merged. The current state of the PR is available for review despite the tests failing.

Another note: even when #9613 is merged, we would have to wait that it reaches mainnet NNS before re-enabling the mainnet variant of the system test for cloud engines. This is tracked in CON-1696.

@pierugo-dfinity pierugo-dfinity added the CI_ALL_BAZEL_TARGETS Runs all bazel targets label Mar 26, 2026
@github-actions github-actions bot added the feat label Mar 26, 2026
)
"#;

const INSTALLED_CANISTER_IDS: &str = "installed_canister_ids";
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Before this PR, we would only install a canister in the application subnet and assumed that its ID would be the node's effective canister ID (i.e. the first ID in the subnet's canister range). This is true if this is the first installed canister but breaks when we install a canister on the NNS subnet since the latter already has some installed canisters. We thus keep track of the canister IDs between the setup and test phases through a file in the test environment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI_ALL_BAZEL_TARGETS Runs all bazel targets feat

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants