参考

# Beacon ID方案

Table of Contents

一个beaconId和其templateId跨链中是相同的。 调用方只需要beaconId即可使用 readBeacon()函数来访问其Beacon值。 而templateId仅在当需要更新信标值时才会被使用。 通常这是由Beacon本身调用的,且是beacon消费者需要关注的正常操作过程。

Beacon会在达到其当前值允许的偏差的时候进行自我更新。 每个Beacon后面都有一个模板。 另外,每个Beacon背后的模板都有一个Airnode从API端点返回Beacon的值。 这个模板包含了Airnode在调用API端点的参数。 这可能需要额外的Beacon参数来参与Airnode调用,并和API端点的模板合并。 这整个过程是使用函数requestBeaconUpdate() (opens new window)完成的。

::: 提示

如果您打算要求Beacon进行自我更新,那么在其正常的更新过程外,使用Beacon的模板与否将不太重要。 但是,如果要手动更新Beacon,请求者需要Beacon的templateId以调用requestBeaconUpdate() (opens new window)函数。

:::

# 派生ID

通过对Airnode地址、端点id(endpointId)和模板参数进行哈希处理来创建templateId。 详情请参阅monorepo里的createTemplate() (opens new window)函数。

通过对templateId和Beacon参数进行哈希处理来创建beaconId。 详情请参阅monorepo里的requestBeaconUpdate() (opens new window)函数。

templateId不能从beaconId中派生。

Last Updated: 5/9/2022, 3:28:29 PM