Blockchain.com WebSocket API
通过 Blockchain.com 公开 WebSocket 网关实时接收比特币交易通知、新区块事件和地址活动。
通过 Blockchain.com 公开 WebSocket 网关实时接收比特币交易通知、新区块事件和地址活动。
Blockchain.com WebSocket 端点是一个公开 JSON 命令频道 — 使用通用的 TsgcWebSocketClient 发送 op 消息并接收 utx/block 事件。
TsgcWebSocketClient
Windows, macOS, Linux, iOS, Android
Standard / Professional / Enterprise
向 wss://ws.blockchain.info/inv 打开 TsgcWebSocketClient,发送 JSON 订阅命令并解析传入的 utx 和 block 事件。
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;
Blockchain.com 通过 WebSocket 公开简单的 JSON op 频道 — 直接使用 TsgcWebSocketClient。
连接后发送 {"op":"unconfirmed_sub"},以 {"op":"utx", "x":{...}} 封装形式接收每笔新的内存池交易。
{"op":"blocks_sub"} 订阅新区块通知 — 每挖出一个区块发送一个 {"op":"block", "x":{...}}(注意:发生链分叉时协议可能发布多个事件)。
{"op":"addr_sub","addr":"<bitcoin-address>"} 订阅单个地址的入账/出账交易。使用 "addr_unsub" 停止订阅。
由于 Blockchain.com 使用普通 JSON 命令频道,TsgcWebSocketClient 组件即可胜任 — 无需特定于交易所的 Delphi 类。
Configure WatchDog on the client to auto-reconnect on network drops, and HeartBeat with a TCP-level ping to keep the connection alive through NAT timeouts.
在 OnMessage 中接收每帧,然后使用 sgcJSON 或您偏好的 JSON 库解析。交易体位于封装的 x 字段下。
本组件所连接 API 的权威参考来源。