Skip to main content
使用 BlockX 仓库 api/grpc/worker/workerpb 中的 Go 绑定直接接入 Worker。此示例用一个简单函数验证任务传输。EVM 状态读取与 trace 转换见执行一次计算和按区块计算。

前置条件

  • 完成快速开始,并保持本地 Worker 运行。
  • 从 BlockX 仓库运行 Go 程序,使用该仓库的 go.mod 和生成的绑定。
  • 此本地示例通过回环地址使用明文 gRPC。接入远程 Worker 时,使用你的部署所需的传输配置。

预留、提交与观察

将以下程序保存为 /tmp/blockx-grpc-example.go。它先调用 RequestTaskSlot,再提交带 ReturnValueHandler 的 InputsCallConfig,并持续连接 WatchTasks,直到收到终态结果。
在 BlockX 仓库运行:
输出包含任务 ID、终态和两条问候结果,结果顺序可能不同。如果任务失败、Worker 返回任务未知,或流在终态结果到达前结束,程序会报错退出。

接入调度与结果查询

  • 使用 Coordinator 分配资源时,先调用 CoordinatorService.ReserveWorkerSlot。连接返回的 worker_addr,并将 slot_id 传给 SubmitTask。
  • 任务执行期间保持 Watch 流连接。断连行为见执行语义。
  • 连接失败时,保留已打印的任务 ID。先查询该任务,再决定是否提交新工作。
  • 请求中的 config 字节包含所选 Call Builder 或 Writer Plugin 的 JSON。将其替换为你的 EVM 计算配置。

继续阅读