API WebSocket da Blockchain.com

Receba notificações de transações Bitcoin, eventos de novos blocos e atividade de endereço em tempo real pelo gateway WebSocket público da Blockchain.com.

TsgcWebSocketClient

O endpoint WebSocket da Blockchain.com é um canal público de comandos JSON — use o TsgcWebSocketClient genérico para enviar mensagens op e receber eventos utx/block.

Classe do componente

TsgcWebSocketClient

Plataformas

Windows, macOS, Linux, iOS, Android

Edição

Standard / Professional / Enterprise

Conecte, inscreva-se, faça o parsing

Abra um TsgcWebSocketClient contra wss://ws.blockchain.info/inv, envie os comandos de inscrição JSON e faça o parsing dos eventos utx e block recebidos.

uses
  sgcWebSocket, sgcJSON;

var
  WSClient: TsgcWebSocketClient;
begin
  WSClient := TsgcWebSocketClient.Create(nil);
  WSClient.URL := 'wss://ws.blockchain.info/inv';

  WSClient.OnMessage := procedure(Connection: TsgcWSConnection; const Text: string)
  begin
    Memo1.Lines.Add(Text);
  end;

  WSClient.OnConnect := procedure(Connection: TsgcWSConnection)
  begin
    // Subscribe to all new bitcoin transactions
    Connection.WriteData('{"op":"unconfirmed_sub"}');

    // Receive new blocks
    Connection.WriteData('{"op":"blocks_sub"}');

    // Subscribe to a specific address
    Connection.WriteData('{"op":"addr_sub","addr":"1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"}');
  end;

  WSClient.Active := True;
end;
// uses: sgcWebSocket
TsgcWebSocketClient *WSClient = new TsgcWebSocketClient(this);
WSClient->URL = "wss://ws.blockchain.info/inv";

// Hook OnMessage and OnConnect, then subscribe:
//   WSClient->WriteData("{\"op\":\"unconfirmed_sub\"}");
//   WSClient->WriteData("{\"op\":\"blocks_sub\"}");
WSClient->Active = true;

O que tem por dentro

A Blockchain.com expõe um simples canal de operações JSON sobre WebSocket — use TsgcWebSocketClient diretamente.

Transações não confirmadas

Envie {"op":"unconfirmed_sub"} após conectar para receber cada nova transação da mempool como um envelope {"op":"utx", "x":{...}}.

Novos blocos

{"op":"blocks_sub"} inscreve-se nas notificações de novos blocos — um {"op":"block", "x":{...}} chega por bloco minerado (observe que o protocolo pode publicar mais de um evento quando ocorre uma divisão da cadeia).

Monitoramento de endereço

{"op":"addr_sub","addr":"<bitcoin-address>"} inscreve-se em transações de entrada/saída para um único endereço. Use "addr_unsub" para parar.

Framing WebSocket genérico

Como a Blockchain.com usa um simples canal de comandos JSON, o componente TsgcWebSocketClient é suficiente — nenhuma classe Delphi específica de exchange é necessária.

Resiliência

Configure o WatchDog no cliente para reconectar automaticamente em quedas de rede, e o HeartBeat com ping no nível TCP para manter a conexão ativa através de timeouts de NAT.

Parsing de JSON

Receba cada frame em OnMessage e então faça o parsing com sgcJSON ou sua biblioteca JSON preferida. O corpo da transação fica sob o campo x do envelope.

Especificações e referências

Fontes autoritativas das APIs às quais este componente se conecta.

Documentação e demos

Acesse direto a referência do componente, baixe o projeto de demonstração pronto para rodar e baixe a versão de avaliação.

Ajuda online — API_Blockchain Notas sobre como conectar ao gateway WebSocket da Blockchain.com a partir do Delphi.
Versão de avaliação — sgcWebSockets Baixe o pacote de avaliação para usar o TsgcWebSocketClient contra qualquer endpoint WebSocket público.
Documento técnico (PDF) Features, quick start, code samples for Delphi & C++ Builder and primary-source references — this component only.
Manual do usuário (PDF) Manual abrangente cobrindo todos os componentes da biblioteca.

Pronto para monitorar a rede Bitcoin?

Baixe a versão de avaliação gratuita e transmita eventos da Blockchain.com para seus aplicativos Delphi.