docs: Add section in onboarding doc about foreign chain configs - #4097
Conversation
|
PR title type suggestion: This PR updates both documentation and a configuration file. Consider using Suggested title: |
Pull request overviewThis PR expands the operator-facing foreign-chain RPC documentation: Changes:
Reviewed changesPer-file summary
FindingsBlocking (must fix before merge):
Non-blocking (nits, follow-ups, suggestions):
|
There was a problem hiding this comment.
Pull request overview
Adds operator-facing documentation and template updates to clarify which foreign chains and RPC providers MPC node operators are expected to configure (testnet + mainnet), aligning with the need to validate verify_foreign_transaction requests across supported chains.
Changes:
- Added a “Foreign chain RPC providers” section to the TDX external running guide, including full example
foreign_chainsTOML blocks for testnet and mainnet plus auth guidance. - Expanded and clarified
deployment/cvm-deployment/user-config.tomlforeign chain template comments and provider entries (incl. Alchemy/QuickNode/Geomi, and a commented mainnet variant block).
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| docs/running-an-mpc-node-in-tdx-external-guide.md | Adds the new foreign-chain RPC provider documentation and copy/paste TOML examples for operators. |
| deployment/cvm-deployment/user-config.toml | Updates the shipped operator template to include/describe the expected foreign-chain provider setup and a mainnet variant. |
Suppressed comments (2)
docs/running-an-mpc-node-in-tdx-external-guide.md:968
- In the Mainnet example, Abstract uses
providers.public, but thedeployment/cvm-deployment/user-config.tomlmainnet variant usesproviders.abstract-mainnet. If operators start from the template (as recommended earlier in the guide) and paste this snippet, it can create duplicate URLs and fail config validation. Use the template’s provider table name here.
[mpc_node_config.node.foreign_chains.abstract.providers.public]
rpc_url = "https://api.mainnet.abs.xyz"
docs/running-an-mpc-node-in-tdx-external-guide.md:989
- In the Mainnet example, Starknet uses
providers.public, but theuser-config.tomltemplate usesproviders.publicnode. To prevent duplicate-URL validation failures when operators merge this with the template, match the provider name used by the template.
[mpc_node_config.node.foreign_chains.starknet.providers.public]
rpc_url = "https://starknet-rpc.publicnode.com"
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
netrome
left a comment
There was a problem hiding this comment.
Thank you for documenting this 🙏
| > **Important:** | ||
| > | ||
| > * The placeholder string in `rpc_url` must exactly match the `placeholder` value (case-sensitive). Do not embed an API key directly in `rpc_url` without `kind = "path"` — it will be logged in plain text on policy mismatch errors. | ||
| > * **Sui is different from the other chains:** the node talks to Sui over gRPC, so API keys cannot go in the URL — only header auth (or none) works. Alchemy takes the key as an `Authorization: Bearer` header, QuickNode as an `x-token` header on port `9000`. Use the exact auth blocks below. |
There was a problem hiding this comment.
Hmm, is this true for all API providers for SUI? Still a good note though.
There was a problem hiding this comment.
Yes we use GRPC for all providers for SUI. As for quicknode and port 9000, I'll drop this, I've experimented on this without 9000 port and worked fine, Quicknode handles this based on content type I guess.
| name = "x-token" | ||
| token = { val = "YOUR_QUICKNODE_API_KEY" } | ||
|
|
||
| # ─── Mainnet variant ───────────────────────────────────────────────────────── |
There was a problem hiding this comment.
Having separate sections is much better, thanks!
closes #4023