Skip to content

Canton - support Docker-internal networking (NONEVM-3773)#2456

Merged
friedemannf merged 4 commits intomainfrom
canton-internal-networking
Mar 3, 2026
Merged

Canton - support Docker-internal networking (NONEVM-3773)#2456
friedemannf merged 4 commits intomainfrom
canton-internal-networking

Conversation

@friedemannf
Copy link
Member

@friedemannf friedemannf commented Mar 3, 2026

This:


Below is a summarization created by an LLM (gpt-4-0125-preview). Be mindful of hallucinations and verify accuracy.

Why

The changes streamline the use of endpoints within the Canton testing framework and update the Canton and Splice images to newer versions. This includes a structural change to how network-specific data for Canton is organized and accessed, improving clarity and maintainability of the codebase. Additionally, the update supports Docker-internal networking, enhancing the setup's flexibility and alignment with containerized environments.

What

  • book/src/framework/components/blockchains/canton.md
    • Removed unused imports: time, github.com/golang-jwt/jwt/v5, and github.com/smartcontractkit/chainlink-testing-framework/framework/components/blockchain/canton.
    • Adjusted endpoint URLs in tests to match new data structure.
  • framework/.changeset/v0.15.0.md (New File)
    • Added a changeset document outlining updates to Canton containers, data structure changes, and image version bumps.
  • framework/components/blockchain/blockchain.go
    • Changed CantonEndpoints to CantonData within NetworkSpecificData structure, reflecting the updated organization of network-specific information.
  • framework/components/blockchain/canton.go
    • Introduced CantonData struct to differentiate between internal and external endpoints.
    • Updated newCanton function to utilize CantonData struct, adapting to the new internal/external endpoint structure.
    • Adjusted configuration to use newer Canton and Splice image versions.
  • framework/components/blockchain/canton/nginx.go
    • Updated Nginx container setup to reflect changes in endpoint structuring and to support Docker-internal networking.
  • framework/examples/myproject/smoke_canton_test.go
    • Modified endpoint URL access in tests to align with the updated CantonData struct.

@friedemannf friedemannf force-pushed the canton-internal-networking branch from 84e8db2 to a29bdac Compare March 3, 2026 12:54
@friedemannf friedemannf marked this pull request as ready for review March 3, 2026 13:19
@friedemannf friedemannf requested a review from a team as a code owner March 3, 2026 13:19
Copilot AI review requested due to automatic review settings March 3, 2026 13:20
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds Docker-internal networking support to the Canton Nginx container by changing Nginx server_name directives to wildcard patterns and explicitly registering all internal hostnames as Docker network aliases. It also restructures the Canton output to expose both internal (Docker-network-only) and external (Docker-host-reachable) endpoints, and bumps the Splice/Canton image versions from 0.5.11 to 0.5.13.

Changes:

  • Split CantonEndpoints output into a new CantonData type containing separate InternalEndpoints and ExternalEndpoints fields
  • Changed Nginx server_name directives from *.localhost to wildcards (*.*) and added all internal hostnames as Docker network aliases
  • Bumped Canton/Splice images to v0.5.13 and updated smoke tests and documentation accordingly

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
framework/components/blockchain/canton/nginx.go Extended getNginxTemplate to return internal hostnames; changed server_name to wildcards; added all internal hostnames as network aliases; updated NginxContainerRequest return signature
framework/components/blockchain/canton/canton.go Bumped SpliceVersion to 0.5.13
framework/components/blockchain/canton.go Added new CantonData struct; split endpoint construction into internal/external; updated output to use CantonData
framework/components/blockchain/blockchain.go Renamed CantonEndpoints *CantonEndpoints to CantonData *CantonData in NetworkSpecificData
framework/examples/myproject/smoke_canton_test.go Updated all endpoint references to use the new CantonData.ExternalEndpoints path
book/src/framework/components/blockchains/canton.md Updated code example to use new CantonData.ExternalEndpoints API and endpoint JWT tokens
framework/.changeset/v0.15.0.md New changelog entry documenting this version's changes

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 7 out of 7 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@friedemannf friedemannf merged commit 86bec59 into main Mar 3, 2026
77 of 79 checks passed
@friedemannf friedemannf deleted the canton-internal-networking branch March 3, 2026 14:03
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.

3 participants