#graph-protocol #indexer #waku #send-message #data-integrity #p2p

bin+lib one-shot-cli

使用 Graphcast SDK 发送一条消息的 CLI 工具

1 个不稳定版本

0.0.1 2023 年 8 月 1 日

#6#graph-protocol

Apache-2.0

56KB
597

单次 CLI

Docs crates.io

简介

这是一个专注于在 Graphcast P2P 网络上发送有关特定子图的单一消息的 Graphcast 广播。可用的消息类型是子图所有者发出的版本升级公告消息。

版本升级消息

当开发者在子图上发布新版本(子图部署)时,在他们的 API 查询现有版本期间可能会出现数据服务不稳定。索引器可能需要一些时间来将子图同步到链头,在他们停止同步上一个部署之后。为了减少升级摩擦,开发者在发布子图之前可以发送一条消息,包括旧部署哈希、新部署哈希、匹配的子图 ID 以及他们希望发布版本的时间。

订阅了相同主题的子图广播会立即处理这些信息,可能在他们的图节点上启动链下同步新部署。

是否等待索引器同步到链头,直到可以发布预发布的版本而不中断 API 使用,由子图开发者自行决定。

🆙 示例用法

要为子图部署 "QmacQnSgia4iDPWHpeY6aWxesRFdb8o5DKZUx96zZqEWrB" 在 Graphcast 主网上发送消息,我们可以

cargo run -- --private-key "abcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefg1" \
--graph-account "0xe9a1cabd57700b17945fd81feefba82340d9568f" \
--identifier "QmacQnSgia4iDPWHpeY6aWxesRFdb8o5DKZUx96zZqEWrB" \
--new-hash "QmTHIS_NEW_HASH" \
--subgraph-id "CnJMdCkW3pr619gsJVtUPAWxspALPdCMw6o7obzYBNp3" \
--index-network "goerli" \
--migration-time 1689205934

从运行二进制文件到发送消息的整个过程应该需要大约 45 秒。可以期待终端输出以下内容

2023-07-31T17:56:44.783866Z  INFO Creating Graphcast Agent, radio_name: "subgraph-radio", registry_subgraph: "https://api.thegraph.com/subgraphs/name/hopeyen/graphcast-registry-goerli", network_subgraph: "https://api.thegraph.com/subgraphs/name/graphprotocol/graph-network-goerli", graphcast_network: "testnet", max_retry: 5

2023-07-31T17:56:59.328490Z  INFO Sent message, msg_id: "0xc6b1131e0f8302abe48057f6fc69722ab46bd4285c2c4a8a8bdca6b221dcda96"

🧪 测试

要运行广播的单元测试。我们建议使用 nextest 作为您的测试运行器。一旦安装,您可以使用以下命令运行测试

cargo nextest run

贡献

我们欢迎并感谢您的贡献!请参阅此存储库的 贡献指南行为准则安全注意事项

依赖关系

~79MB
~1.5M SLoC