Skip to content

Latest commit

 

History

History
70 lines (52 loc) · 2.58 KB

File metadata and controls

70 lines (52 loc) · 2.58 KB
title description
SPY
Discover Wormhole's SPY daemon, which subscribes to gossiped messages in the Guardian Network, including VAAs and Observations, with setup instructions.

SPY

In the wormhole context, a spy is a daemon that subscribes to the gossiped messages in the Guardian Network.

The messages available over gossip are things like:

The source code for the Spy is available on Github{target=_blank}

!!! note The Spy has no persistence layer built in, so typically, it is paired with something like Redis or an SQL database to record relevant messages

Use

To start a Spy locally, run the following Docker command:

=== "Testnet"

```sh
docker run --platform=linux/amd64 \
    -p 7073:7073 \
    --entrypoint /guardiand ghcr.io/wormhole-foundation/guardiand:latest \
    spy \
    --nodeKey /node.key \
    --spyRPC "[::]:7073" \
    --env testnet
```
    Optionally, add the flags to skip any VAAs with invalid signatures
```sh
--ethRPC https://sepolia.drpc.org/
--ethContract 0x4a8bc80Ed5a4067f1CCf107057b8270E0cC11A78    
```

=== "Mainnet"

```sh
docker run --platform=linux/amd64 \
    -p 7073:7073 \
    --entrypoint /guardiand ghcr.io/wormhole-foundation/guardiand:latest \
    spy \
    --nodeKey /node.key \
    --spyRPC "[::]:7073" \
    --env mainnet
```
Optionally, add the flags to skip any VAAs with invalid signatures
```sh
--ethRPC https://eth.drpc.org
--ethContract 0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B
```

Once running, a gRPC{target=_blank} client (i.e. your program) can subscribe to a filtered stream of messages.

To generate a client for the gRPC service use this proto spec file{target=_blank}.

!!! note If using JavaScript/TypeScript, the Spydk{target=_blank} makes setting up a client easier.

See Also

The Pyth Beacon{target=_blank} provides an alternate Spy implementation that is highly available for improved performance and reliability.

The relayer engine{target=_blank} implements a client and persistence layer for messages received from a Spy subscription.