org.sigilaris.node.jvm.transport.armeria.gossip

Members list

Type members

Classlikes

Binary codec for encoding and decoding streams of event envelopes in a compact frame format.

Binary codec for encoding and decoding streams of event envelopes in a compact frame format.

Each frame is length-prefixed and tagged with a version byte and kind byte, enabling efficient binary transport of gossip events over HTTP.

Attributes

Source
BinaryEventStreamCodec.scala
Supertypes
class Object
trait Matchable
class Any
Self type
final case class ChainTopicWire(chainId: String, topic: String)

Wire format for a chain-topic subscription pair.

Wire format for a chain-topic subscription pair.

Value parameters

chainId

string identifier of the chain

topic

gossip topic name

Attributes

Companion
object
Source
TxGossipWire.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

JSON codec instances for ChainTopicWire.

JSON codec instances for ChainTopicWire.

Attributes

Companion
class
Source
TxGossipWire.scala
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
final case class ControlBatchWire(idempotencyKey: String, ops: Vector[ControlOpWire])

Wire format for a batch of control operations with an idempotency key.

Wire format for a batch of control operations with an idempotency key.

Value parameters

idempotencyKey

unique key for deduplicating repeated batch submissions

ops

ordered control operations in this batch

Attributes

Companion
object
Source
TxGossipWire.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

JSON codec instances for ControlBatchWire.

JSON codec instances for ControlBatchWire.

Attributes

Companion
class
Source
TxGossipWire.scala
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
final case class ControlOpWire(kind: String, chainId: Option[String], topic: Option[String], windowKey: Option[String], cursor: Option[Vector[CursorEntryWire]], cursorToken: Option[String], ids: Option[Vector[String]], filter: Option[TxBloomFilterWire], config: Option[Map[String, Long]])

Wire format for a single control operation within a control batch.

Wire format for a single control operation within a control batch.

Value parameters

chainId

optional chain identifier for chain-scoped operations

config

optional key-value configuration for config operations

cursor

optional composite cursor entries for setCursor operations

cursorToken

optional Base64URL-encoded cursor token for nack operations

filter

optional Bloom filter for setFilter operations

ids

optional hex-encoded artifact identifiers

kind

operation kind (e.g. "setFilter", "setCursor", "nack")

topic

optional gossip topic for topic-scoped operations

windowKey

optional hex-encoded topic window key for exact known set operations

Attributes

Companion
object
Source
TxGossipWire.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
object ControlOpWire

JSON codec instances for ControlOpWire.

JSON codec instances for ControlOpWire.

Attributes

Companion
class
Source
TxGossipWire.scala
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
final case class ControlRequestWire(kind: String, batch: Option[ControlBatchWire])

Wire format for a control channel request.

Wire format for a control channel request.

Value parameters

batch

optional control batch payload when kind is "batch"

kind

request kind (e.g. "batch", "controlKeepAlive")

Attributes

Companion
object
Source
TxGossipWire.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

JSON codec instances for ControlRequestWire.

JSON codec instances for ControlRequestWire.

Attributes

Companion
class
Source
TxGossipWire.scala
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
final case class ControlResponseWire(status: String, sessionId: Option[String], deduplicated: Option[Boolean], rejection: Option[RejectionWire])

Wire format for a control channel response.

Wire format for a control channel response.

Value parameters

deduplicated

optional flag indicating whether the batch was deduplicated

rejection

optional rejection payload when the control request was rejected

sessionId

optional session identifier echoed back in the response

status

outcome status (e.g. "applied", "deduplicated", "ack")

Attributes

Companion
object
Source
TxGossipWire.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

JSON codec instances for ControlResponseWire.

JSON codec instances for ControlResponseWire.

Attributes

Companion
class
Source
TxGossipWire.scala
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
final case class CursorEntryWire(chainId: String, topic: String, token: String)

Wire format for a single cursor entry within a composite cursor.

Wire format for a single cursor entry within a composite cursor.

Value parameters

chainId

chain identifier for this cursor position

token

Base64URL-encoded cursor token

topic

gossip topic for this cursor position

Attributes

Companion
object
Source
TxGossipWire.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

JSON codec instances for CursorEntryWire.

JSON codec instances for CursorEntryWire.

Attributes

Companion
class
Source
TxGossipWire.scala
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
final case class EventEnvelopeWire[A](kind: String, sessionId: String, atEpochMs: Option[Long], event: Option[EventWire[A]], rejection: Option[RejectionWire])

Wire format for an event stream envelope, which may carry an event, keep-alive, or rejection.

Wire format for an event stream envelope, which may carry an event, keep-alive, or rejection.

Type parameters

A

the event payload type

Value parameters

atEpochMs

optional epoch milliseconds for keep-alive envelopes

event

optional event payload when kind is "event"

kind

envelope kind (e.g. "event", "keepAlive", "rejection")

rejection

optional rejection payload when kind is "rejection"

sessionId

session identifier this envelope belongs to

Attributes

Companion
object
Source
TxGossipWire.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

JSON codec instances for EventEnvelopeWire.

JSON codec instances for EventEnvelopeWire.

Attributes

Companion
class
Source
TxGossipWire.scala
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
final case class EventRequestWire(kind: String)

Wire format for an event stream request.

Wire format for an event stream request.

Value parameters

kind

request kind (e.g. "poll", "eventKeepAlive")

Attributes

Companion
object
Source
TxGossipWire.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

JSON codec instances for EventRequestWire.

JSON codec instances for EventRequestWire.

Attributes

Companion
class
Source
TxGossipWire.scala
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
final case class EventWire[A](chainId: String, topic: String, id: String, cursor: String, ts: Long, payload: A)

Wire format for a single gossip event carrying an artifact payload.

Wire format for a single gossip event carrying an artifact payload.

Type parameters

A

the payload type

Value parameters

chainId

chain identifier the event belongs to

cursor

Base64URL-encoded cursor token marking this event's position

id

hex-encoded stable artifact identifier

payload

the artifact payload

topic

gossip topic the event belongs to

ts

event timestamp as epoch milliseconds

Attributes

Companion
object
Source
TxGossipWire.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
object EventWire

JSON codec instances for EventWire.

JSON codec instances for EventWire.

Attributes

Companion
class
Source
TxGossipWire.scala
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
EventWire.type
final case class FinalizedSuggestionResponseWire(suggestionBase64Url: Option[String])

Wire format for a finalized anchor suggestion response.

Wire format for a finalized anchor suggestion response.

Value parameters

suggestionBase64Url

Base64URL-encoded finalized anchor suggestion, or None if unavailable

Attributes

Companion
object
Source
HotStuffBootstrapWire.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

JSON codec instances for FinalizedSuggestionResponseWire.

JSON codec instances for FinalizedSuggestionResponseWire.

Attributes

Companion
class
Source
HotStuffBootstrapWire.scala
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
sealed trait GossipPeerClientError extends Product, Serializable

Failures produced by endpoint-derived gossip clients before a canonical peer rejection is available.

Failures produced by endpoint-derived gossip clients before a canonical peer rejection is available.

Attributes

Companion
object
Source
GossipTapirClientCore.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
Known subtypes

Attributes

Companion
trait
Source
GossipTapirClientCore.scala
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type

Server-side Armeria/Tapir adapter for HotStuff bootstrap protocol endpoints.

Server-side Armeria/Tapir adapter for HotStuff bootstrap protocol endpoints.

Exposes finalized suggestion, snapshot fetch, proposal replay, and historical backfill endpoints with transport authentication and bootstrap capability verification.

Attributes

Source
HotStuffBootstrapArmeriaAdapter.scala
Supertypes
class Object
trait Matchable
class Any
Self type

Compatibility facade for HotStuff bootstrap transport services.

Compatibility facade for HotStuff bootstrap transport services.

New code should prefer servicesResource, which owns the Armeria client backend lifecycle. The value-returning services method uses Armeria's default client and remains for call sites that cannot yet thread a Resource.

Attributes

Source
HotStuffBootstrapHttpTransport.scala
Supertypes
class Object
trait Matchable
class Any
Self type
final class HotStuffBootstrapPeerClient[F[_]]

Endpoint-derived Armeria client for HotStuff bootstrap peer services.

Endpoint-derived Armeria client for HotStuff bootstrap peer services.

Attributes

Companion
object
Source
HotStuffBootstrapPeerClient.scala
Supertypes
class Object
trait Matchable
class Any

Attributes

Companion
class
Source
HotStuffBootstrapPeerClient.scala
Supertypes
class Object
trait Matchable
class Any
Self type

Shared Tapir endpoint definitions for HotStuff bootstrap peer services.

Shared Tapir endpoint definitions for HotStuff bootstrap peer services.

Attributes

Source
HotStuffBootstrapTapirEndpoints.scala
Supertypes
class Object
trait Matchable
class Any
Self type

Transport-level limits for HotStuff bootstrap requests.

Transport-level limits for HotStuff bootstrap requests.

Attributes

Source
HotStuffBootstrapWire.scala
Supertypes
class Object
trait Matchable
class Any
Self type

Convenience adapter combining transaction gossip and HotStuff bootstrap endpoints.

Convenience adapter combining transaction gossip and HotStuff bootstrap endpoints.

Attributes

Source
HotStuffBootstrapArmeriaAdapter.scala
Supertypes
class Object
trait Matchable
class Any
Self type
final case class HotStuffPeerTransportClient[F[_], A](gossipPeers: Map[PeerIdentity, TxGossipPeerClient[F, A]], bootstrap: HotStuffBootstrapTransportServices[F])

Reusable endpoint-derived peer transport for HotStuff gossip runtimes.

Reusable endpoint-derived peer transport for HotStuff gossip runtimes.

Attributes

Companion
object
Source
HotStuffPeerTransportClient.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Attributes

Companion
class
Source
HotStuffPeerTransportClient.scala
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
final case class ProposalBatchResponseWire(proposalsBase64Url: Vector[String])

Wire format for a batch of proposals returned from replay or backfill requests.

Wire format for a batch of proposals returned from replay or backfill requests.

Value parameters

proposalsBase64Url

Base64URL-encoded serialized proposals

Attributes

Companion
object
Source
HotStuffBootstrapWire.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

JSON codec instances for ProposalBatchResponseWire.

JSON codec instances for ProposalBatchResponseWire.

Attributes

Companion
class
Source
HotStuffBootstrapWire.scala
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
final case class ProposalPageRequest(blockId: BlockId, height: BlockHeight, limit: Int)

Typed bootstrap proposal-page request.

Typed bootstrap proposal-page request.

Attributes

Source
HotStuffBootstrapWire.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
final case class ProposalPageRequestWire(blockId: String, height: String, limit: Int)

Wire format for a paginated proposal fetch request.

Wire format for a paginated proposal fetch request.

Value parameters

blockId

hex-encoded block identifier used as the anchor or boundary

height

string-encoded block height

limit

maximum number of proposals to return

Attributes

Companion
object
Source
HotStuffBootstrapWire.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

JSON codec instances for ProposalPageRequestWire.

JSON codec instances for ProposalPageRequestWire.

Attributes

Companion
class
Source
HotStuffBootstrapWire.scala
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
final case class RejectionWire(rejectionClass: String, reason: String, detail: Option[String])

Wire format for a canonical rejection response.

Wire format for a canonical rejection response.

Value parameters

detail

optional human-readable detail message

reason

machine-readable reason code

rejectionClass

classification of the rejection (e.g. "handshakeRejected", "controlBatchRejected")

Attributes

Companion
object
Source
TxGossipWire.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
object RejectionWire

JSON codec instances for RejectionWire.

JSON codec instances for RejectionWire.

Attributes

Companion
class
Source
TxGossipWire.scala
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
final case class SessionOpenAckWire(sessionId: String, peerCorrelationId: String, initiator: String, acceptor: String, subscriptions: Vector[ChainTopicWire], heartbeatIntervalMs: Long, livenessTimeoutMs: Long, maxControlRetryIntervalMs: Long)

Wire format for a session open acknowledgement returned by the accepting peer.

Wire format for a session open acknowledgement returned by the accepting peer.

Value parameters

acceptor

identity of the session acceptor

heartbeatIntervalMs

negotiated heartbeat interval in milliseconds

initiator

identity of the session initiator

livenessTimeoutMs

negotiated liveness timeout in milliseconds

maxControlRetryIntervalMs

negotiated maximum control retry interval in milliseconds

peerCorrelationId

correlation identifier from the original proposal

sessionId

confirmed directional session identifier

subscriptions

negotiated chain-topic subscriptions

Attributes

Companion
object
Source
TxGossipWire.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

JSON codec instances for SessionOpenAckWire.

JSON codec instances for SessionOpenAckWire.

Attributes

Companion
class
Source
TxGossipWire.scala
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
final case class SessionOpenProposalWire(sessionId: String, peerCorrelationId: String, initiator: String, acceptor: String, subscriptions: Vector[ChainTopicWire], heartbeatIntervalMs: Option[Long], livenessTimeoutMs: Option[Long], maxControlRetryIntervalMs: Option[Long])

Wire format for a session open proposal sent by the initiating peer.

Wire format for a session open proposal sent by the initiating peer.

Value parameters

acceptor

identity of the session acceptor

heartbeatIntervalMs

proposed heartbeat interval in milliseconds

initiator

identity of the session initiator

livenessTimeoutMs

proposed liveness timeout in milliseconds

maxControlRetryIntervalMs

proposed maximum control retry interval in milliseconds

peerCorrelationId

correlation identifier assigned by the proposing peer

sessionId

proposed directional session identifier

subscriptions

chain-topic pairs the initiator wants to subscribe to

Attributes

Companion
object
Source
TxGossipWire.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

JSON codec instances for SessionOpenProposalWire.

JSON codec instances for SessionOpenProposalWire.

Attributes

Companion
class
Source
TxGossipWire.scala
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
final case class SnapshotNodeFetchRequest(stateRoot: StateRoot, hashes: Vector[MerkleHash])

Typed bootstrap snapshot fetch request.

Typed bootstrap snapshot fetch request.

Attributes

Source
HotStuffBootstrapWire.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
final case class SnapshotNodeFetchRequestWire(stateRoot: String, hashes: Vector[String])

Wire format for a snapshot node fetch request.

Wire format for a snapshot node fetch request.

Value parameters

hashes

hex-encoded Merkle trie node hashes to fetch

stateRoot

hex-encoded state root hash

Attributes

Companion
object
Source
HotStuffBootstrapWire.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

JSON codec instances for SnapshotNodeFetchRequestWire.

JSON codec instances for SnapshotNodeFetchRequestWire.

Attributes

Companion
class
Source
HotStuffBootstrapWire.scala
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
final case class SnapshotNodeFetchResponseWire(nodes: Vector[SnapshotNodeWire])

Wire format for a snapshot node fetch response containing fetched nodes.

Wire format for a snapshot node fetch response containing fetched nodes.

Value parameters

nodes

the fetched Merkle trie nodes

Attributes

Companion
object
Source
HotStuffBootstrapWire.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

JSON codec instances for SnapshotNodeFetchResponseWire.

JSON codec instances for SnapshotNodeFetchResponseWire.

Attributes

Companion
class
Source
HotStuffBootstrapWire.scala
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
final case class SnapshotNodeWire(hash: String, nodeBase64Url: String)

Wire format for a single snapshot Merkle trie node.

Wire format for a single snapshot Merkle trie node.

Value parameters

hash

hex-encoded hash of the node

nodeBase64Url

Base64URL-encoded serialized node data

Attributes

Companion
object
Source
HotStuffBootstrapWire.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

JSON codec instances for SnapshotNodeWire.

JSON codec instances for SnapshotNodeWire.

Attributes

Companion
class
Source
HotStuffBootstrapWire.scala
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
final case class StreamOpenRequestWire(kind: String, resume: Option[Vector[CursorEntryWire]])

Wire format for opening a long-lived event stream.

Wire format for opening a long-lived event stream.

Value parameters

kind

request kind; must be "stream" for the streaming event endpoint

resume

optional composite cursor entries defining the reconnect resume position

Attributes

Companion
object
Source
TxGossipWire.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

JSON codec instances for StreamOpenRequestWire.

JSON codec instances for StreamOpenRequestWire.

Attributes

Companion
class
Source
TxGossipWire.scala
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
final case class TxBloomFilterWire(bitsetBase64Url: String, numHashes: Int, hashFamilyId: String)

Wire format for a transaction Bloom filter used in gossip deduplication.

Wire format for a transaction Bloom filter used in gossip deduplication.

Value parameters

bitsetBase64Url

Base64URL-encoded bitset bytes

hashFamilyId

identifier of the hash family

numHashes

number of hash functions used

Attributes

Companion
object
Source
TxGossipWire.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

JSON codec instances for TxBloomFilterWire.

JSON codec instances for TxBloomFilterWire.

Attributes

Companion
class
Source
TxGossipWire.scala
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type

Server-side Armeria/Tapir adapter for transaction gossip protocol endpoints.

Server-side Armeria/Tapir adapter for transaction gossip protocol endpoints.

Exposes session open, event stream polling, control batch, and disconnect endpoints with transport authentication.

Attributes

Source
TxGossipArmeriaAdapter.scala
Supertypes
class Object
trait Matchable
class Any
Self type
trait TxGossipPeerClient[F[_], A]

Endpoint-derived HTTP client for transaction gossip peer endpoints.

Endpoint-derived HTTP client for transaction gossip peer endpoints.

Attributes

Companion
object
Source
TxGossipPeerClient.scala
Supertypes
class Object
trait Matchable
class Any

Attributes

Companion
trait
Source
TxGossipPeerClient.scala
Supertypes
class Object
trait Matchable
class Any
Self type

Shared Tapir endpoint definitions for the transaction gossip peer protocol.

Shared Tapir endpoint definitions for the transaction gossip peer protocol.

Attributes

Source
TxGossipTapirEndpoints.scala
Supertypes
class Object
trait Matchable
class Any
Self type