跳转到主要内容
默认情况下,Virtual Environment 的 RPC URL 中包含一个随机生成的标识符,每次创建或重新 fork 环境时该标识符都会更改。Named RPC URL 会将该标识符替换为您选择的名称,因此 URL 在重新 fork 后保持不变。这样一来,每次为 pull request、本地开发循环或 staging 部署启动全新环境时,就无需更新 CI 密钥、.env 文件或硬编码的 RPC URL。

RPC URL 格式

Advanced section of the Create Virtual Environment dialog with the Named RPC URL toggle enabled and the Add named endpoint combobox open showing a Create option for a new name
不使用名称时,RPC URL 的标识符段是自动生成的,例如 https://virtual.mainnet.eu.rpc.tenderly.co/tenderly/demo/89e9b3-4bcd00,每次重新 fork 都会生成一个新的。 附加名称后,Public 和 Admin RPC URL 将采用以下形式:
端点URL 格式备注
Public RPChttps://virtual.[NETWORK].[REGION].rpc.tenderly.co/[ACCOUNT]/[PROJECT]/[RPC_NAME]仅标准 JSON-RPC,可安全地分享给外部测试者或嵌入到 dapp UI 中。
Admin RPChttps://virtual.[NETWORK].[REGION].rpc.tenderly.co/[ACCOUNT]/[PROJECT]/[RPC_NAME]-[SUFFIX][SUFFIX] 是 Tenderly 附加的随机字符串,因此即使名称是公开的,启用作弊码的端点也无法被猜到。
[REGION]euus-east,取决于您在分配名称时选择的区域。[RPC_NAME] 在您的项目内必须唯一。名称附加后,就是它(而不是自动生成的标识符)在重新 fork 后保持固定。

在创建 Virtual Environment 时分配名称

  1. 开始创建 Virtual Environment 并展开 Advanced 部分。
  2. 启用 Named RPC URL
  3. Add named endpoint 中,输入新名称并选择 Create <name>,或者从列表中选择现有名称。
  4. 单击 Create Virtual Environment
新环境的 Admin 和 Public RPC URL 可在其 Home 页面上 Integrate Virtual RPC 下找到。
Integrate Virtual RPC panel showing the resolved Admin RPC URL ending in the name plus a random suffix, the Public RPC URL ending in just the name, and the chain id

在创建后更改或删除名称

打开 Virtual Environment 的 Settings 页面。此处的 Named RPC URL 部分与创建对话框中的相同:
  • 要将环境重新分配到其他名称,请打开名称选择器并选择另一个条目,或输入新名称并选择 Create <name>
  • 要将该名称从此环境上解除关联,请禁用 Named RPC URL 并保存。名称本身不会被删除,只是可以自由地附加到其他地方。

一个名称一次只映射到一个环境

将名称附加到 Virtual Environment 是一对一的关系。在名称选择器中,已在项目内其他地方分配的现有名称会被标记为 In use on another environment。选择其中一个会将其附加到当前环境,并从之前持有它的环境上解除关联,因此该环境的命名 RPC URL 将不再解析到那里,而是路由到当前环境。 这使得切换固定 RPC URL 的目标只需一次操作:创建替换环境,为其分配与您正在退役的环境相同的名称,指向该 URL 的所有脚本、CI 流水线或 dapp 配置现在都会解析到新环境,无需在其一侧做任何更改。

通过 REST API 设置名称

在通过环境创建端点创建环境时传入 rpcName
environment-create-named.sh
curl --request POST \
  --url https://api.tenderly.co/api/v1/account/me/project/project/environments \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --header "X-Access-Key: ${TENDERLY_ACCESS_KEY}" \
  --data '{
    "displayName": "My Staging Environment",
    "rpcName": "my-staging-rpc",
    "networkConfigs": [
      {
        "networkId": "1",
        "chainConfigOverrides": { "chainId": "1" },
        "blockNumber": "latest",
        "region": "eu",
        "explorerConfig": { "enabled": false, "contractVerificationVisibility": "bytecode" }
      }
    ]
  }'
通过 REST API 参考读取该环境以获取解析后的 RPC URL:
curl --request GET \
  --url https://api.tenderly.co/api/public/v1/account/me/project/project/environments/{environmentId} \
  --header "X-Access-Key: ${TENDERLY_ACCESS_KEY}"
active_instance.vnets[].rpcs 数组包含命名的 Admin 和 Public RPC URL:
{
  "rpcs": [
    { "name": "Admin RPC", "url": "https://virtual.mainnet.eu.rpc.tenderly.co/tenderly/project/my-staging-rpc-800896" },
    { "name": "Public RPC", "url": "https://virtual.mainnet.eu.rpc.tenderly.co/tenderly/project/my-staging-rpc" }
  ]
}

另请参阅