Solana · Arazzo Workflow

Solana Identify a Node and Its Cluster and Snapshot State

Version 1.0.0

Read a node's identity, genesis hash, version, snapshot slots, and shred-processing high-water marks.

1 workflow 1 source API 1 provider
View Spec View on GitHub BlockchainCryptocurrencyWeb3DeFiTransactionsTokensArazzoWorkflows

Provider

solana

Workflows

node-identity-snapshot
Establish which node is being talked to, on which cluster, and what it can serve.
Pins down node identity, cluster provenance, and snapshot availability in one pass.
6 steps outputs: genesisHash, highestFullSnapshotSlot, identity, maxRetransmitSlot, maxShredInsertSlot, solanaCore
1
identity
getIdentity
Read the node's identity public key, which is how a specific validator is named everywhere else on the cluster.
2
genesisHash
getGenesisHash
Read the genesis hash, the unambiguous fingerprint of which cluster this node belongs to. Comparing it against an expected value is the surest guard against pointing production traffic at a test cluster.
3
version
getVersion
Record the solana-core version and feature set, needed to interpret the snapshot and shred values that follow.
4
snapshotSlot
getHighestSnapshotSlot
Read the highest full and incremental snapshot slots the node holds, which determines whether it can bootstrap another validator and from how recent a point.
5
maxRetransmitSlot
getMaxRetransmitSlot
Read the highest slot the node has seen via its retransmit stage, an early indicator of how current its shred pipeline is.
6
maxShredInsertSlot
getMaxShredInsertSlot
Read the highest slot for which the node has inserted shreds. Compared against the retransmit mark, it shows whether the node keeps up with the shreds it receives.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Solana Identify a Node and Its Cluster and Snapshot State
  summary: Read a node's identity, genesis hash, version, snapshot slots, and shred-processing high-water marks.
  description: >-
    The provenance check a validator operator runs against an RPC endpoint. The
    workflow reads the node's identity public key, reads the genesis hash that
    definitively identifies which cluster the node is on — the reliable way to
    catch a client pointed at Devnet when it believes it is on Mainnet — records
    the software version, reads the highest full and incremental snapshot slots
    the node can serve to a bootstrapping validator, and reads the retransmit
    and shred-insert high-water marks that show how far its shred processing has
    advanced. Every step spells out its JSON-RPC request inline so the flow can
    be read and executed without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: solanaRpcApi
  url: ../openapi/solana-rpc-api-openapi.yml
  type: openapi
workflows:
- workflowId: node-identity-snapshot
  summary: Establish which node is being talked to, on which cluster, and what it can serve.
  description: >-
    Pins down node identity, cluster provenance, and snapshot availability in
    one pass.
  inputs:
    type: object
    properties: {}
  steps:
  - stepId: identity
    description: >-
      Read the node's identity public key, which is how a specific validator is
      named everywhere else on the cluster.
    operationId: getIdentity
    requestBody:
      contentType: application/json
      payload:
        jsonrpc: "2.0"
        id: 1
        method: getIdentity
        params: []
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $.result.identity
      type: jsonpath
    outputs:
      identity: $response.body#/result/identity
  - stepId: genesisHash
    description: >-
      Read the genesis hash, the unambiguous fingerprint of which cluster this
      node belongs to. Comparing it against an expected value is the surest
      guard against pointing production traffic at a test cluster.
    operationId: getGenesisHash
    requestBody:
      contentType: application/json
      payload:
        jsonrpc: "2.0"
        id: 1
        method: getGenesisHash
        params: []
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $.result
      type: jsonpath
    outputs:
      genesisHash: $response.body#/result
  - stepId: version
    description: >-
      Record the solana-core version and feature set, needed to interpret the
      snapshot and shred values that follow.
    operationId: getVersion
    requestBody:
      contentType: application/json
      payload:
        jsonrpc: "2.0"
        id: 1
        method: getVersion
        params: []
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $.result
      type: jsonpath
    outputs:
      solanaCore: $response.body#/result/solana-core
      featureSet: $response.body#/result/feature-set
  - stepId: snapshotSlot
    description: >-
      Read the highest full and incremental snapshot slots the node holds, which
      determines whether it can bootstrap another validator and from how recent
      a point.
    operationId: getHighestSnapshotSlot
    requestBody:
      contentType: application/json
      payload:
        jsonrpc: "2.0"
        id: 1
        method: getHighestSnapshotSlot
        params: []
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $.result
      type: jsonpath
    outputs:
      full: $response.body#/result/full
      incremental: $response.body#/result/incremental
  - stepId: maxRetransmitSlot
    description: >-
      Read the highest slot the node has seen via its retransmit stage, an early
      indicator of how current its shred pipeline is.
    operationId: getMaxRetransmitSlot
    requestBody:
      contentType: application/json
      payload:
        jsonrpc: "2.0"
        id: 1
        method: getMaxRetransmitSlot
        params: []
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      slot: $response.body#/result
  - stepId: maxShredInsertSlot
    description: >-
      Read the highest slot for which the node has inserted shreds. Compared
      against the retransmit mark, it shows whether the node keeps up with the
      shreds it receives.
    operationId: getMaxShredInsertSlot
    requestBody:
      contentType: application/json
      payload:
        jsonrpc: "2.0"
        id: 1
        method: getMaxShredInsertSlot
        params: []
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      slot: $response.body#/result
  outputs:
    identity: $steps.identity.outputs.identity
    genesisHash: $steps.genesisHash.outputs.genesisHash
    solanaCore: $steps.version.outputs.solanaCore
    highestFullSnapshotSlot: $steps.snapshotSlot.outputs.full
    maxRetransmitSlot: $steps.maxRetransmitSlot.outputs.slot
    maxShredInsertSlot: $steps.maxShredInsertSlot.outputs.slot