部署 > 什么是托管服务?

什么是托管服务?

请注意,托管服务将于2023年第1个季度开始关闭,但它仍将适用于去中心化网络不支持的网络。随着更多网络的支持,鼓励开发人员迁移其子图。每一个网络都会让它们的托管服务逐渐消失,以确保开发人员有足够的时间将子图迁移到去中心化网络。在这里阅读有关托管服务关闭的更多信息。

本节将引导您完成将子图部署到托管服务的过程。

如果您在托管服务上没有账户,您可以用您的 Github 账户注册。一旦进行了身份验证,就可以开始通过 UI 创建子图,并在终端部署它们。托管服务支持许多网络,如 Polygon、 Gnosis Chain、 BNB Chain、 Optimism 和 Arbitrum等。

有关详细列表,请参阅支持的网络

创建子图

链到本节

首先按照这里的说明安装 Graph CLI。通过传入graph init--产品托管服务创建子图。

基于现有合约

链到本节

如果您已经将智能合约部署到以太坊主网或其中一个测试网,那么从该合约中引导一个新的子图可能是开始使用托管服务的好方法。

您可以使用此命令创建一个子图,为现有合约中的所有事件编制索引。 这将尝试从 Etherscan 获取合约 ABI。

graph init \
--product hosted-service
--from-contract <CONTRACT_ADDRESS> \
<GITHUB_USER>/<SUBGRAPH_NAME> [<DIRECTORY>]

此外,您可以使用以下可选参数。 如果无法从 Etherscan 获取 ABI,它会退回到请求本地文件路径。 如果命令中缺少任何可选参数,它会带您进入交互式表单。

--network <ETHEREUM_NETWORK> \
--abi <FILE> \

在本例中,<GITHUB_USER>是您的 GitHub 用户或组织名称,<SUBGRAPH_NAME>是您的子图名称,<DIRECTORY>是Graph init 放置示例子图清单目录的可选名称。<CONTRACT_ADDRESS> 是您现有合约的地址。<ETHEREUM_NETWORK> 是合约所依赖的网络的名称。<FILE>是合约 ABI 文件的本地路径。网络和 abi 都是可选的。

基于子图示例

链到本节

graph init 支持的第二种模式是从示例子图创建新项目。 以下命令执行此操作:

graph init --from-example --product hosted-service <GITHUB_USER>/<SUBGRAPH_NAME> [<DIRECTORY>]

示例子图基于 Dani Grant 的 Gravity 合约,该合约管理用户头像,并在创建或更新头像时发出 NewGravatarUpdateGravatar 事件。子图通过将 Gravatar 实体写入 Graph 节点存储并确保根据事件更新它们来处理这些事件。继续查看子图清单,以便更好地理解智能合约中需要关注的事件、映射等等。

From a Proxy Contract

链到本节

To build a subgraph tailored for monitoring a Proxy contract, initialize the subgraph by specifying the address of the implementation contract. Once the initialization process is concluded, the last step involves updating the network name in the subgraph.yaml file to the address of the Proxy contract. You can use the command below.

graph init \
--product hosted-service
--from-contract <IMPLEMENTATION_ADDRESS> \
<GITHUB_USER>/<SUBGRAPH_NAME> [<DIRECTORY>]

托管服务支持的网络

链到本节

您可以在这里找到支持的网络列表。

编辑

上页
子图工作室常见问题
下页
将子图部署到托管服务上
编辑