Solana RPC
getAgGenesisCert
getAgGenesisCert 返回 Alpenglow 创世证书;如果集群仍在运行 TowerBFT,则返回 null。可使用此方法检查 Alpenglow 共识是否已启用。
POST
getAgGenesisCert
需要 Agave v4.3 或更高版本。更早的版本无法识别此方法,并会
返回
Method not found (-32601)。检测迁移状态
使用此方法检查集群是否运行 Alpenglow 共识。响应有以下三种形式:- 证书对象。 集群已完成迁移。
result.block.slot是 Alpenglow 下生成的第一个槽位。 null。 节点运行 Agave v4.3 或更高版本,但集群尚未迁移。- 错误
-32601。 节点版本早于 v4.3。集群的共识状态未知。
-32601 视为“未知”,而不是“尚未迁移”。无法回答此问题的节点无法说明集群的状态。
集群迁移后,证书不会改变。首次收到成功响应后应缓存证书,而不是持续轮询。
读取证书
block 标识已认证的区块。slot 是其槽位编号。blockId 是一个 32 字节数组,而不是 RPC API 其他位置使用的 base-58 字符串。
signature 包含所有签署该证书的验证者的聚合 BLS 签名。bitmap 记录这些验证者,并按质押排名建立索引。读取该位图时,需要使用集群当时采用的同一份按质押量排序的验证者列表。
blockId 始终为 32 字节,signature 始终为 192 字节,示例中二者均以完整长度显示。bitmap 没有固定大小:它为每个验证者分配一位,因此会随验证者集合的增大而增长,示例中展示的是一个较短的位图。
Solana CLI 通过 solana alpenglow-genesis-info 返回相同的数据。请求体
application/json