Run a Spy

O Spy é um componente leve na infraestrutura do Wormhole projetado para ouvir e encaminhar mensagens (Verifiable Action Approvals - VAAs) publicadas na rede Wormhole. Rodar um Spy localmente permite que os desenvolvedores se inscrevam em um fluxo filtrado dessas mensagens, facilitando o desenvolvimento de relayers personalizados ou outras integrações com o Wormhole.

Para uma compreensão mais abrangente do Spy e seu papel dentro do ecossistema Wormhole, consulte a Documentação do Spy.

Como Iniciar um Spy Para iniciar um Spy localmente, execute o seguinte comando Docker:

  • Mainnet

docker run --pull=always --platform=linux/amd64 \
    -p 7073:7073 \
    --entrypoint /guardiand ghcr.io/wormhole-foundation/guardiand:latest \
    spy \
    --nodeKey /node.key \
    --spyRPC "[::]:7073" \
    --env mainnet
  • Testnet

docker run --pull=always --platform=linux/amd64 \
    -p 7073:7073 \
    --entrypoint /guardiand ghcr.io/wormhole-foundation/guardiand:latest \
    spy \
    --nodeKey /node.key \
    --spyRPC "[::]:7073" \
    --env testnet

Se você deseja rodar o Spy construído a partir do código-fonte, altere ghcr.io/wormhole-foundation/guardiand:latest para guardian após construir a imagem do guardian.

Opcionalmente, adicione as seguintes flags para ignorar quaisquer VAAs com assinaturas inválidas:

Mainnet

--ethRPC 
https://eth.drpc.org

--ethContract 0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B

Testnet

--ethRPC 
https://sepolia.drpc.org/

--ethContract 0x4a8bc80Ed5a4067f1CCf107057b8270E0cC11A78

Opcionalmente, adicione as seguintes opções para evitar o crescimento ilimitado dos logs:

--log-opt max-size=10m \
--log-opt max-file=3

Inscrever-se para VAAs Filtrados

Uma vez em funcionamento, um cliente gRPC (ou seja, o seu programa) pode se inscrever para um fluxo filtrado de mensagens (VAAs).

Use este arquivo proto-spec para gerar um cliente para o serviço gRPC.

Nota Se estiver usando JavaScript/TypeScript, o Spydk facilita a configuração de um cliente.

Persistência de Dados

O Spy não possui uma camada de persistência embutida, então ele geralmente é emparelhado com algo como Redis ou um banco de dados SQL para registrar as mensagens relevantes.

A camada de persistência precisa implementar a interface apropriada. Por exemplo, você pode conferir a interface Redis usada pelo Relayer Engine, um pacote que implementa um cliente e uma camada de persistência para mensagens recebidas de uma assinatura do Spy.

Last updated