GRPC Documentation - PropagationAPI
Table of Contents
propagation_api.proto
Package propagation_api provides gRPC services for Bitcoin SV transaction propagation. It handles individual and batch transaction processing, health checks, and debugging capabilities for the BSV network.
EmptyMessage
Represents an empty request or response. Used when no additional data needs to be transmitted.
swagger:model EmptyMessage
BatchTransactionItem
Represents a single transaction item in a batch request with trace context support.
Field | Type | Label | Description |
---|---|---|---|
tx | bytes | Raw transaction bytes to process | |
trace_context | map |
Serialized OpenTelemetry trace context as key-value pairs for proper span propagation |
GetRequest
Represents a request to retrieve a transaction by its ID.
swagger:model GetRequest
Field | Type | Label | Description |
---|---|---|---|
txid | bytes | Transaction ID in bytes |
GetResponse
Contains the retrieved transaction data.
swagger:model GetResponse
Field | Type | Label | Description |
---|---|---|---|
tx | bytes | Raw transaction bytes |
HealthResponse
Provides information about the service's health status.
swagger:model HealthResponse
Field | Type | Label | Description |
---|---|---|---|
ok | bool | Indicates whether the service is healthy | |
details | string | Provides additional information about the health status | |
timestamp | google.protobuf.Timestamp | Indicates when the health check was performed |
ProcessTransactionBatchRequest
Represents a request to process multiple transactions in a batch.
swagger:model ProcessTransactionBatchRequest
Field | Type | Label | Description |
---|---|---|---|
items | BatchTransactionItem | repeated | Array of transaction items to process, each containing transaction bytes and trace context |
ProcessTransactionBatchResponse
Contains the results of batch transaction processing.
swagger:model ProcessTransactionBatchResponse
Field | Type | Label | Description |
---|---|---|---|
errors | errors.TError | repeated | Error messages for each transaction in the batch. Empty string indicates success for that transaction. |
ProcessTransactionRequest
Represents a request to process a single transaction.
swagger:model ProcessTransactionRequest
Field | Type | Label | Description |
---|---|---|---|
tx | bytes | Raw transaction bytes to process |
PropagationAPI
Method Name | Request Type | Response Type | Description |
---|---|---|---|
HealthGRPC | EmptyMessage | HealthResponse | Checks the health status of the propagation service and its dependencies. Returns a HealthResponse containing the service status and details. |
ProcessTransaction | ProcessTransactionRequest | EmptyMessage | Processes a single BSV transaction. The transaction must be provided in raw byte format and must be extended. Coinbase transactions are not allowed. |
ProcessTransactionBatch | ProcessTransactionBatchRequest | ProcessTransactionBatchResponse | Processes multiple transactions in a single request. This is more efficient than processing transactions individually when dealing with large numbers of transactions. |