Observability with the New Boundary Node Architecture

Hi everyone,

An update from the Boundary Node team on enhancing observability in the new decentralized boundary node architecture.

Observability at API boundary nodes is crucial for ensuring smooth operation, diagnosing service issues, and providing dapp developers with insights into usage patterns. Since API boundary nodes handle every incoming request to the Internet Computer, they are uniquely positioned to offer valuable data—without compromising user privacy.

As part of the Levitron milestone, we’re working on making these insights accessible while ensuring sensitive information, such as IP addresses, remains protected. Simply omitting this data isn’t ideal, as knowing the number of unique users interacting with a dapp is valuable. Instead, we propose hashing sensitive data with a shared secret salt to anonymize it.

This approach introduces a key challenge: ensuring consistency across decentralized API boundary nodes. To address this, the shared salt must be:

  • Securely generated with true randomness
  • Periodically refreshed (e.g., monthly)
  • Shared across all API boundary nodes
  • Accessible only to API boundary nodes

To achieve this, we propose introducing a new NNS-controlled canister, called the salt-sharing canister, to securely manage and distribute the salt among all API boundary nodes. The diagram below illustrates the functionality flow.

The salt-sharing canister will:

  • Generate a new salt (32-byte random blob) at regular intervals
  • Restrict access, allowing only API boundary nodes to retrieve the salt via the get_salt() method
  • Maintain an allowlist of authorized API boundary nodes by periodically fetching their IDs from the registry

This approach ensures that all API boundary nodes use the same salt while maintaining security and decentralization.

Next steps:

  • The boundary node team will submit a proposal to deploy the salt-sharing canister on the II subnet.
  • Once approved, API boundary nodes can begin fetching the shared salt and using it to hash IP addresses and sender IDs securely.
7 Likes

We have just submitted the proposal to install the salt-sharing canister: Proposal 135629

You can find the related code here.

Happy voting!

1 Like

Proposal #135629 for Salt-Sharing Canister — Zack | CodeGov

Vote: Adopted

Reason: Builds fine and both the wasm and the arguments hash are a match. The commits here LGTM and anyone can check the code .

About CodeGov

CodeGov has a team of developers who review and vote independently on the following proposal topics: IC-OS Version Election, Protocol Canister Management, Subnet Management, Node Admin, and Participant Management. The CodeGov NNS known neuron is configured to follow our reviewers on these technical topics. We also have a group of Followees who vote independently on the Governance and the SNS & Neuron’s Fund topics. We strive to be a credible and reliable Followee option that votes on every proposal and every proposal topic in the NNS. We also support decentralization of SNS projects such as WaterNeuron, KongSwap, and Alice with a known neuron and credible Followees.

Learn more about CodeGov and its mission at codegov.org.

2 Likes

Proposal Update — Wenzel | CodeGov

Topic: Application Canister Management

Proposal: 135629
Vote: ADOPT
Title: Install the Salt-Sharing Canister from Commit 374556b

Comments: This proposal was adopted by the CodeGov known neuron at the recommendation of one of our CodeGov team members, @ZackDS, after he reviewed the proposal and posted his review above.

About CodeGov

CodeGov has a team of developers who review and vote independently on the following proposal topics: IC-OS Version Election, Protocol Canister Management, Subnet Management, Node Admin, and Participant Management. The CodeGov NNS known neuron is configured to follow our reviewers on these technical topics. We also have a group of Followees who vote independently on the Governance and the SNS & Neuron’s Fund topics. We strive to be a credible and reliable Followee option that votes on every proposal and every proposal topic in the NNS. We also support decentralization of SNS projects such as WaterNeuron, KongSwap, and Alice with a known neuron and credible Followees.

Learn more about CodeGov and its mission at codegov.org.

2 Likes