Documentation
¶
Index ¶
- Constants
- Variables
- func RegisterConsumerServiceServer(s grpc.ServiceRegistrar, srv ConsumerServiceServer)
- func RegisterPublisherServiceServer(s grpc.ServiceRegistrar, srv PublisherServiceServer)
- type AckStatus
- type BlockOpen
- func (*BlockOpen) Descriptor() ([]byte, []int)deprecated
- func (x *BlockOpen) GetBaseFee() []byte
- func (x *BlockOpen) GetBlockNumber() uint64
- func (x *BlockOpen) GetBlockTimestamp() uint64
- func (x *BlockOpen) GetGasLimit() uint64
- func (x *BlockOpen) GetParentHash() []byte
- func (x *BlockOpen) GetPrefixCommitment() []byte
- func (*BlockOpen) ProtoMessage()
- func (x *BlockOpen) ProtoReflect() protoreflect.Message
- func (x *BlockOpen) Reset()
- func (x *BlockOpen) String() string
- type BlockSeal
- type ConsumerServiceClient
- type ConsumerServiceServer
- type ConsumerService_StreamClient
- type ConsumerService_StreamServer
- type Entry
- func (*Entry) Descriptor() ([]byte, []int)deprecated
- func (x *Entry) GetBlockOpen() *BlockOpen
- func (x *Entry) GetBlockSeal() *BlockSeal
- func (x *Entry) GetKind() isEntry_Kind
- func (x *Entry) GetRecord() *Record
- func (x *Entry) GetSignature() []byte
- func (*Entry) ProtoMessage()
- func (x *Entry) ProtoReflect() protoreflect.Message
- func (x *Entry) Reset()
- func (x *Entry) String() string
- type Entry_BlockOpen
- type Entry_BlockSeal
- type Entry_Record
- type GetBlockRequest
- type GetBlockResponse
- type Live
- type PublishRequest
- type PublishResponse
- type PublisherServiceClient
- type PublisherServiceServer
- type PublisherService_PublishClient
- type PublisherService_PublishServer
- type RangeRequest
- func (*RangeRequest) Descriptor() ([]byte, []int)deprecated
- func (x *RangeRequest) GetAfter() isRangeRequest_After
- func (x *RangeRequest) GetBlock() uint64
- func (x *RangeRequest) GetHead() []byte
- func (x *RangeRequest) GetLimit() uint32
- func (x *RangeRequest) GetWaitMs() uint32
- func (*RangeRequest) ProtoMessage()
- func (x *RangeRequest) ProtoReflect() protoreflect.Message
- func (x *RangeRequest) Reset()
- func (x *RangeRequest) String() string
- type RangeRequest_Block
- type RangeRequest_Head
- type RangeResponse
- func (*RangeResponse) Descriptor() ([]byte, []int)deprecated
- func (x *RangeResponse) GetEntries() []*Entry
- func (x *RangeResponse) GetLive() bool
- func (x *RangeResponse) GetNext() []byte
- func (*RangeResponse) ProtoMessage()
- func (x *RangeResponse) ProtoReflect() protoreflect.Message
- func (x *RangeResponse) Reset()
- func (x *RangeResponse) String() string
- type Record
- type StreamRequest
- func (*StreamRequest) Descriptor() ([]byte, []int)deprecated
- func (x *StreamRequest) GetAfter() isStreamRequest_After
- func (x *StreamRequest) GetBlock() uint64
- func (x *StreamRequest) GetHead() []byte
- func (*StreamRequest) ProtoMessage()
- func (x *StreamRequest) ProtoReflect() protoreflect.Message
- func (x *StreamRequest) Reset()
- func (x *StreamRequest) String() string
- type StreamRequest_Block
- type StreamRequest_Head
- type StreamResponse
- func (*StreamResponse) Descriptor() ([]byte, []int)deprecated
- func (x *StreamResponse) GetEntry() *Entry
- func (x *StreamResponse) GetFrame() isStreamResponse_Frame
- func (x *StreamResponse) GetLive() *Live
- func (*StreamResponse) ProtoMessage()
- func (x *StreamResponse) ProtoReflect() protoreflect.Message
- func (x *StreamResponse) Reset()
- func (x *StreamResponse) String() string
- type StreamResponse_Entry
- type StreamResponse_Live
- type UnimplementedConsumerServiceServer
- func (UnimplementedConsumerServiceServer) GetBlock(context.Context, *GetBlockRequest) (*GetBlockResponse, error)
- func (UnimplementedConsumerServiceServer) Range(context.Context, *RangeRequest) (*RangeResponse, error)
- func (UnimplementedConsumerServiceServer) Stream(*StreamRequest, grpc.ServerStreamingServer[StreamResponse]) error
- type UnimplementedPublisherServiceServer
- type UnsafeConsumerServiceServer
- type UnsafePublisherServiceServer
Constants ¶
const ( ConsumerService_Stream_FullMethodName = "/sequencestore.v1.ConsumerService/Stream" ConsumerService_Range_FullMethodName = "/sequencestore.v1.ConsumerService/Range" ConsumerService_GetBlock_FullMethodName = "/sequencestore.v1.ConsumerService/GetBlock" )
const (
PublisherService_Publish_FullMethodName = "/sequencestore.v1.PublisherService/Publish"
)
Variables ¶
var ( AckStatus_name = map[int32]string{ 0: "ACK_STATUS_UNSPECIFIED", 1: "ACK_STATUS_OK", 2: "ACK_STATUS_STALE_COMMITMENT", 3: "ACK_STATUS_MALFORMED", 4: "ACK_STATUS_RATE_LIMITED", } AckStatus_value = map[string]int32{ "ACK_STATUS_UNSPECIFIED": 0, "ACK_STATUS_OK": 1, "ACK_STATUS_STALE_COMMITMENT": 2, "ACK_STATUS_MALFORMED": 3, "ACK_STATUS_RATE_LIMITED": 4, } )
Enum value maps for AckStatus.
var ConsumerService_ServiceDesc = grpc.ServiceDesc{ ServiceName: "sequencestore.v1.ConsumerService", HandlerType: (*ConsumerServiceServer)(nil), Methods: []grpc.MethodDesc{ { MethodName: "Range", Handler: _ConsumerService_Range_Handler, }, { MethodName: "GetBlock", Handler: _ConsumerService_GetBlock_Handler, }, }, Streams: []grpc.StreamDesc{ { StreamName: "Stream", Handler: _ConsumerService_Stream_Handler, ServerStreams: true, }, }, Metadata: "sequencestore/v1/sequencestore.proto", }
ConsumerService_ServiceDesc is the grpc.ServiceDesc for ConsumerService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)
var File_sequencestore_v1_sequencestore_proto protoreflect.FileDescriptor
var PublisherService_ServiceDesc = grpc.ServiceDesc{ ServiceName: "sequencestore.v1.PublisherService", HandlerType: (*PublisherServiceServer)(nil), Methods: []grpc.MethodDesc{}, Streams: []grpc.StreamDesc{ { StreamName: "Publish", Handler: _PublisherService_Publish_Handler, ServerStreams: true, ClientStreams: true, }, }, Metadata: "sequencestore/v1/sequencestore.proto", }
PublisherService_ServiceDesc is the grpc.ServiceDesc for PublisherService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)
Functions ¶
func RegisterConsumerServiceServer ¶
func RegisterConsumerServiceServer(s grpc.ServiceRegistrar, srv ConsumerServiceServer)
func RegisterPublisherServiceServer ¶
func RegisterPublisherServiceServer(s grpc.ServiceRegistrar, srv PublisherServiceServer)
Types ¶
type AckStatus ¶
type AckStatus int32
AckStatus reports the outcome of one published entry.
const ( AckStatus_ACK_STATUS_UNSPECIFIED AckStatus = 0 // Appended; head advanced. AckStatus_ACK_STATUS_OK AckStatus = 1 // prefix_commitment != current head — re-read the tail via the consumer // API, rebuild, then publish again. AckStatus_ACK_STATUS_STALE_COMMITMENT AckStatus = 2 // Entry fails structural validation — a producer-side bug; do not retry // unchanged. Structurally invalid: a Record with zero transactions, a // commitment or parent-hash field that is not 32 bytes, a base fee wider // than 32 bytes, a missing entry kind. AckStatus_ACK_STATUS_MALFORMED AckStatus = 3 // Throttled; retry later. AckStatus_ACK_STATUS_RATE_LIMITED AckStatus = 4 )
func (AckStatus) Descriptor ¶
func (AckStatus) Descriptor() protoreflect.EnumDescriptor
func (AckStatus) EnumDescriptor
deprecated
func (AckStatus) Number ¶
func (x AckStatus) Number() protoreflect.EnumNumber
func (AckStatus) Type ¶
func (AckStatus) Type() protoreflect.EnumType
type BlockOpen ¶
type BlockOpen struct {
// The block being opened (N). Carried because a forward-jump re-anchor
// names a parent the store never saw, so the height is not derivable from
// store state.
BlockNumber uint64 `protobuf:"varint,1,opt,name=block_number,json=blockNumber,proto3" json:"block_number,omitempty"`
// N's header timestamp, fixed at open.
BlockTimestamp uint64 `protobuf:"varint,2,opt,name=block_timestamp,json=blockTimestamp,proto3" json:"block_timestamp,omitempty"`
// Sealed hash (32 bytes) of the block N builds on — must match a published
// seal record, or, at cold start / resumption, a canonical block the
// consumer already has. An open whose parent_hash is not the current tip is
// a re-anchor.
ParentHash []byte `protobuf:"bytes,3,opt,name=parent_hash,json=parentHash,proto3" json:"parent_hash,omitempty"`
// N's block gas limit — producer-chosen, not derivable from the parent.
GasLimit uint64 `protobuf:"varint,4,opt,name=gas_limit,json=gasLimit,proto3" json:"gas_limit,omitempty"`
// N's base fee as a big-endian unsigned integer, at most 32 bytes (empty
// means zero; leading zeros are allowed — the fold is over the decoded
// value, not the wire bytes) — producer-local policy post-Lisovo, not
// derivable by consumers.
BaseFee []byte `protobuf:"bytes,5,opt,name=base_fee,json=baseFee,proto3" json:"base_fee,omitempty"`
// The store head this entry extends (32 bytes) — C_seal of the last sealed
// block on the normal path.
PrefixCommitment []byte `protobuf:"bytes,6,opt,name=prefix_commitment,json=prefixCommitment,proto3" json:"prefix_commitment,omitempty"`
// contains filtered or unexported fields
}
BlockOpen fixes block N's header context at the moment the producer opens it — every header field execution depends on.
func (*BlockOpen) Descriptor
deprecated
func (*BlockOpen) GetBaseFee ¶
func (*BlockOpen) GetBlockNumber ¶
func (*BlockOpen) GetBlockTimestamp ¶
func (*BlockOpen) GetGasLimit ¶
func (*BlockOpen) GetParentHash ¶
func (*BlockOpen) GetPrefixCommitment ¶
func (*BlockOpen) ProtoMessage ¶
func (*BlockOpen) ProtoMessage()
func (*BlockOpen) ProtoReflect ¶
func (x *BlockOpen) ProtoReflect() protoreflect.Message
type BlockSeal ¶
type BlockSeal struct {
// N's full sealed header (RLP); the height is inside the header.
// keccak256(header) is BLOCKHASH(N) and N+1's parentHash. The header embeds
// the producer's consensus seal, so it cannot be recomputed from state — it
// must be delivered. Consumers cross-check their re-execution against its
// state root, receipts root, and gas used.
Header []byte `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
// The running head (32 bytes) after N's last transaction, C_block(N) — the
// seal extends it.
PrefixCommitment []byte `protobuf:"bytes,2,opt,name=prefix_commitment,json=prefixCommitment,proto3" json:"prefix_commitment,omitempty"`
// contains filtered or unexported fields
}
BlockSeal closes block N, appended the moment the block is sealed — after N's last record and before N+1's open.
func (*BlockSeal) Descriptor
deprecated
func (*BlockSeal) GetPrefixCommitment ¶
func (*BlockSeal) ProtoMessage ¶
func (*BlockSeal) ProtoMessage()
func (*BlockSeal) ProtoReflect ¶
func (x *BlockSeal) ProtoReflect() protoreflect.Message
type ConsumerServiceClient ¶
type ConsumerServiceClient interface {
// Stream delivers entries from the requested position to the tip, then
// stays open for live entries. A Live frame marks the caught-up-to-tip
// transition. An aged-out or unknown resume head fails with NOT_FOUND — the
// consumer falls back to its block anchor.
Stream(ctx context.Context, in *StreamRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[StreamResponse], error)
// Range is the pull counterpart of Stream: up to limit entries after the
// requested position, with an optional long-poll budget. A response may
// carry fewer than limit entries when a server byte budget fills first;
// next resumes past what was delivered. Same resume semantics as Stream,
// including NOT_FOUND for an aged-out or unknown position.
Range(ctx context.Context, in *RangeRequest, opts ...grpc.CallOption) (*RangeResponse, error)
// GetBlock fetches block n's entries — its BlockOpen, its Records, and its
// BlockSeal once sealed (inclusive fetch). Block-addressed reads resolve to
// the latest generation at that height. An unknown or unretained height
// fails with NOT_FOUND.
GetBlock(ctx context.Context, in *GetBlockRequest, opts ...grpc.CallOption) (*GetBlockResponse, error)
}
ConsumerServiceClient is the client API for ConsumerService service.
For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
ConsumerService is the store → consumer read path, served through the egress gateway: untrusted-facing, per-connection authenticated. Entries are delivered exactly as published; pre-seal content is attributed by trusting the store's authenticated ingress. Consumers verify chain integrity themselves (prefix continuity, seal cross-checks); the store is not a chain validator.
func NewConsumerServiceClient ¶
func NewConsumerServiceClient(cc grpc.ClientConnInterface) ConsumerServiceClient
type ConsumerServiceServer ¶
type ConsumerServiceServer interface {
// Stream delivers entries from the requested position to the tip, then
// stays open for live entries. A Live frame marks the caught-up-to-tip
// transition. An aged-out or unknown resume head fails with NOT_FOUND — the
// consumer falls back to its block anchor.
Stream(*StreamRequest, grpc.ServerStreamingServer[StreamResponse]) error
// Range is the pull counterpart of Stream: up to limit entries after the
// requested position, with an optional long-poll budget. A response may
// carry fewer than limit entries when a server byte budget fills first;
// next resumes past what was delivered. Same resume semantics as Stream,
// including NOT_FOUND for an aged-out or unknown position.
Range(context.Context, *RangeRequest) (*RangeResponse, error)
// GetBlock fetches block n's entries — its BlockOpen, its Records, and its
// BlockSeal once sealed (inclusive fetch). Block-addressed reads resolve to
// the latest generation at that height. An unknown or unretained height
// fails with NOT_FOUND.
GetBlock(context.Context, *GetBlockRequest) (*GetBlockResponse, error)
// contains filtered or unexported methods
}
ConsumerServiceServer is the server API for ConsumerService service. All implementations must embed UnimplementedConsumerServiceServer for forward compatibility.
ConsumerService is the store → consumer read path, served through the egress gateway: untrusted-facing, per-connection authenticated. Entries are delivered exactly as published; pre-seal content is attributed by trusting the store's authenticated ingress. Consumers verify chain integrity themselves (prefix continuity, seal cross-checks); the store is not a chain validator.
type ConsumerService_StreamClient ¶
type ConsumerService_StreamClient = grpc.ServerStreamingClient[StreamResponse]
This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type ConsumerService_StreamServer ¶
type ConsumerService_StreamServer = grpc.ServerStreamingServer[StreamResponse]
This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type Entry ¶
type Entry struct {
// Types that are valid to be assigned to Kind:
//
// *Entry_BlockOpen
// *Entry_Record
// *Entry_BlockSeal
Kind isEntry_Kind `protobuf_oneof:"kind"`
// Placeholder for future producer attestation; currently unused and ignored
// by the protocol.
Signature []byte `protobuf:"bytes,4,opt,name=signature,proto3" json:"signature,omitempty"`
// contains filtered or unexported fields
}
Entry is the unit of the stream, published by producers and delivered to consumers exactly as published.
func (*Entry) Descriptor
deprecated
func (*Entry) GetBlockOpen ¶
func (*Entry) GetBlockSeal ¶
func (*Entry) GetSignature ¶
func (*Entry) ProtoMessage ¶
func (*Entry) ProtoMessage()
func (*Entry) ProtoReflect ¶
func (x *Entry) ProtoReflect() protoreflect.Message
type Entry_BlockOpen ¶
type Entry_BlockOpen struct {
BlockOpen *BlockOpen `protobuf:"bytes,1,opt,name=block_open,json=blockOpen,proto3,oneof"`
}
type Entry_BlockSeal ¶
type Entry_BlockSeal struct {
BlockSeal *BlockSeal `protobuf:"bytes,3,opt,name=block_seal,json=blockSeal,proto3,oneof"`
}
type Entry_Record ¶
type Entry_Record struct {
Record *Record `protobuf:"bytes,2,opt,name=record,proto3,oneof"`
}
type GetBlockRequest ¶
type GetBlockRequest struct {
BlockNumber uint64 `protobuf:"varint,1,opt,name=block_number,json=blockNumber,proto3" json:"block_number,omitempty"`
// contains filtered or unexported fields
}
func (*GetBlockRequest) Descriptor
deprecated
func (*GetBlockRequest) Descriptor() ([]byte, []int)
Deprecated: Use GetBlockRequest.ProtoReflect.Descriptor instead.
func (*GetBlockRequest) GetBlockNumber ¶
func (x *GetBlockRequest) GetBlockNumber() uint64
func (*GetBlockRequest) ProtoMessage ¶
func (*GetBlockRequest) ProtoMessage()
func (*GetBlockRequest) ProtoReflect ¶
func (x *GetBlockRequest) ProtoReflect() protoreflect.Message
func (*GetBlockRequest) Reset ¶
func (x *GetBlockRequest) Reset()
func (*GetBlockRequest) String ¶
func (x *GetBlockRequest) String() string
type GetBlockResponse ¶
type GetBlockResponse struct {
Entries []*Entry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"`
// contains filtered or unexported fields
}
func (*GetBlockResponse) Descriptor
deprecated
func (*GetBlockResponse) Descriptor() ([]byte, []int)
Deprecated: Use GetBlockResponse.ProtoReflect.Descriptor instead.
func (*GetBlockResponse) GetEntries ¶
func (x *GetBlockResponse) GetEntries() []*Entry
func (*GetBlockResponse) ProtoMessage ¶
func (*GetBlockResponse) ProtoMessage()
func (*GetBlockResponse) ProtoReflect ¶
func (x *GetBlockResponse) ProtoReflect() protoreflect.Message
func (*GetBlockResponse) Reset ¶
func (x *GetBlockResponse) Reset()
func (*GetBlockResponse) String ¶
func (x *GetBlockResponse) String() string
type Live ¶
type Live struct {
// contains filtered or unexported fields
}
Live marks that the stream has caught up to the tip; frames after it are live entries as they are appended.
func (*Live) Descriptor
deprecated
func (*Live) ProtoMessage ¶
func (*Live) ProtoMessage()
func (*Live) ProtoReflect ¶
func (x *Live) ProtoReflect() protoreflect.Message
type PublishRequest ¶
type PublishRequest struct {
Entry *Entry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"`
// contains filtered or unexported fields
}
func (*PublishRequest) Descriptor
deprecated
func (*PublishRequest) Descriptor() ([]byte, []int)
Deprecated: Use PublishRequest.ProtoReflect.Descriptor instead.
func (*PublishRequest) GetEntry ¶
func (x *PublishRequest) GetEntry() *Entry
func (*PublishRequest) ProtoMessage ¶
func (*PublishRequest) ProtoMessage()
func (*PublishRequest) ProtoReflect ¶
func (x *PublishRequest) ProtoReflect() protoreflect.Message
func (*PublishRequest) Reset ¶
func (x *PublishRequest) Reset()
func (*PublishRequest) String ¶
func (x *PublishRequest) String() string
type PublishResponse ¶
type PublishResponse struct {
Status AckStatus `protobuf:"varint,1,opt,name=status,proto3,enum=sequencestore.v1.AckStatus" json:"status,omitempty"`
// contains filtered or unexported fields
}
func (*PublishResponse) Descriptor
deprecated
func (*PublishResponse) Descriptor() ([]byte, []int)
Deprecated: Use PublishResponse.ProtoReflect.Descriptor instead.
func (*PublishResponse) GetStatus ¶
func (x *PublishResponse) GetStatus() AckStatus
func (*PublishResponse) ProtoMessage ¶
func (*PublishResponse) ProtoMessage()
func (*PublishResponse) ProtoReflect ¶
func (x *PublishResponse) ProtoReflect() protoreflect.Message
func (*PublishResponse) Reset ¶
func (x *PublishResponse) Reset()
func (*PublishResponse) String ¶
func (x *PublishResponse) String() string
type PublisherServiceClient ¶
type PublisherServiceClient interface {
// Publish pipelines entries and returns one ack per entry, in the order the
// entries were received. A non-OK ack does not close the stream, but every
// entry pipelined behind a rejected one fails the head check too
// (STALE_COMMITMENT) — on any rejection the producer stops, resyncs, and
// resumes.
Publish(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[PublishRequest, PublishResponse], error)
}
PublisherServiceClient is the client API for PublisherService service.
For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
PublisherService is the producer → ingress write path: internal, trusted, latency-sensitive. The channel is authenticated (per-validator credential); producers are never declared in requests — write access is the credential, and the head check arbitrates concurrent writers onto one chain. There is no tail-fetch call here: on takeover or after a rejection the producer reads the stream to the tip via ConsumerService and re-applies what it missed.
func NewPublisherServiceClient ¶
func NewPublisherServiceClient(cc grpc.ClientConnInterface) PublisherServiceClient
type PublisherServiceServer ¶
type PublisherServiceServer interface {
// Publish pipelines entries and returns one ack per entry, in the order the
// entries were received. A non-OK ack does not close the stream, but every
// entry pipelined behind a rejected one fails the head check too
// (STALE_COMMITMENT) — on any rejection the producer stops, resyncs, and
// resumes.
Publish(grpc.BidiStreamingServer[PublishRequest, PublishResponse]) error
// contains filtered or unexported methods
}
PublisherServiceServer is the server API for PublisherService service. All implementations must embed UnimplementedPublisherServiceServer for forward compatibility.
PublisherService is the producer → ingress write path: internal, trusted, latency-sensitive. The channel is authenticated (per-validator credential); producers are never declared in requests — write access is the credential, and the head check arbitrates concurrent writers onto one chain. There is no tail-fetch call here: on takeover or after a rejection the producer reads the stream to the tip via ConsumerService and re-applies what it missed.
type PublisherService_PublishClient ¶
type PublisherService_PublishClient = grpc.BidiStreamingClient[PublishRequest, PublishResponse]
This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type PublisherService_PublishServer ¶
type PublisherService_PublishServer = grpc.BidiStreamingServer[PublishRequest, PublishResponse]
This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type RangeRequest ¶
type RangeRequest struct {
// Types that are valid to be assigned to After:
//
// *RangeRequest_Head
// *RangeRequest_Block
After isRangeRequest_After `protobuf_oneof:"after"`
// Maximum entries in the response; a server default and maximum apply.
Limit uint32 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"`
// Long-poll budget in milliseconds: if fewer than limit entries are
// ready, the request is held up to this long for more before returning.
// A server maximum applies.
WaitMs uint32 `protobuf:"varint,4,opt,name=wait_ms,json=waitMs,proto3" json:"wait_ms,omitempty"`
// contains filtered or unexported fields
}
func (*RangeRequest) Descriptor
deprecated
func (*RangeRequest) Descriptor() ([]byte, []int)
Deprecated: Use RangeRequest.ProtoReflect.Descriptor instead.
func (*RangeRequest) GetAfter ¶
func (x *RangeRequest) GetAfter() isRangeRequest_After
func (*RangeRequest) GetBlock ¶
func (x *RangeRequest) GetBlock() uint64
func (*RangeRequest) GetHead ¶
func (x *RangeRequest) GetHead() []byte
func (*RangeRequest) GetLimit ¶
func (x *RangeRequest) GetLimit() uint32
func (*RangeRequest) GetWaitMs ¶
func (x *RangeRequest) GetWaitMs() uint32
func (*RangeRequest) ProtoMessage ¶
func (*RangeRequest) ProtoMessage()
func (*RangeRequest) ProtoReflect ¶
func (x *RangeRequest) ProtoReflect() protoreflect.Message
func (*RangeRequest) Reset ¶
func (x *RangeRequest) Reset()
func (*RangeRequest) String ¶
func (x *RangeRequest) String() string
type RangeRequest_Block ¶
type RangeRequest_Block struct {
Block uint64 `protobuf:"varint,2,opt,name=block,proto3,oneof"`
}
type RangeRequest_Head ¶
type RangeRequest_Head struct {
Head []byte `protobuf:"bytes,1,opt,name=head,proto3,oneof"`
}
type RangeResponse ¶
type RangeResponse struct {
Entries []*Entry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"`
// The position this response ends at, always valid to pass back as
// after.head: the post-fold head of the last returned entry, or — when
// entries is empty — the resolved request position (the presented head, or
// the post-fold head of block n's latest generation for a block-addressed
// request).
Next []byte `protobuf:"bytes,2,opt,name=next,proto3" json:"next,omitempty"`
// True when the response reached the tip.
Live bool `protobuf:"varint,3,opt,name=live,proto3" json:"live,omitempty"`
// contains filtered or unexported fields
}
func (*RangeResponse) Descriptor
deprecated
func (*RangeResponse) Descriptor() ([]byte, []int)
Deprecated: Use RangeResponse.ProtoReflect.Descriptor instead.
func (*RangeResponse) GetEntries ¶
func (x *RangeResponse) GetEntries() []*Entry
func (*RangeResponse) GetLive ¶
func (x *RangeResponse) GetLive() bool
func (*RangeResponse) GetNext ¶
func (x *RangeResponse) GetNext() []byte
func (*RangeResponse) ProtoMessage ¶
func (*RangeResponse) ProtoMessage()
func (*RangeResponse) ProtoReflect ¶
func (x *RangeResponse) ProtoReflect() protoreflect.Message
func (*RangeResponse) Reset ¶
func (x *RangeResponse) Reset()
func (*RangeResponse) String ¶
func (x *RangeResponse) String() string
type Record ¶
type Record struct {
// Ordered raw signed transactions (tx hash derivable); one per message for
// lowest latency, or a batch under load. The commitment chain folds per
// transaction, so batching does not change the chain. Never empty: every
// appended entry must advance the head — an empty record would leave two
// entries at one head, breaking head-as-position — so the ingress rejects
// it as MALFORMED.
Transactions [][]byte `protobuf:"bytes,1,rep,name=transactions,proto3" json:"transactions,omitempty"`
// Running head (32 bytes) just before this record's transactions; a block's
// first record carries C_open(N).
PrefixCommitment []byte `protobuf:"bytes,2,opt,name=prefix_commitment,json=prefixCommitment,proto3" json:"prefix_commitment,omitempty"`
// contains filtered or unexported fields
}
Record carries one or more sequenced transactions for the open block, never spanning two blocks.
func (*Record) Descriptor
deprecated
func (*Record) GetPrefixCommitment ¶
func (*Record) GetTransactions ¶
func (*Record) ProtoMessage ¶
func (*Record) ProtoMessage()
func (*Record) ProtoReflect ¶
func (x *Record) ProtoReflect() protoreflect.Message
type StreamRequest ¶
type StreamRequest struct {
// Types that are valid to be assigned to After:
//
// *StreamRequest_Head
// *StreamRequest_Block
After isStreamRequest_After `protobuf_oneof:"after"`
// contains filtered or unexported fields
}
The resume position is exclusive and shared by Stream and Range:
head — resumes right after the entry whose post-fold head equals the
value; the consumer presents its own running head, so the stream
continues with exactly what it has not applied, including any
re-anchor entries. Every head value is unique to its position by
construction (this is why the head, not a tx hash, is the resume
token).
block — resumes after block n's latest generation (cold start: a fresh
node passes its sealed chain head, then adopts the first entry's
prefix_commitment as its seed). If the latest generation at n is
still open, the position resolves before its open record — the
in-progress generation is served from its start, never from the
middle.
unset — from the earliest retained entry.
There is intentionally no latest/live-only value — it would skip the entries between a consumer's head and the tip.
func (*StreamRequest) Descriptor
deprecated
func (*StreamRequest) Descriptor() ([]byte, []int)
Deprecated: Use StreamRequest.ProtoReflect.Descriptor instead.
func (*StreamRequest) GetAfter ¶
func (x *StreamRequest) GetAfter() isStreamRequest_After
func (*StreamRequest) GetBlock ¶
func (x *StreamRequest) GetBlock() uint64
func (*StreamRequest) GetHead ¶
func (x *StreamRequest) GetHead() []byte
func (*StreamRequest) ProtoMessage ¶
func (*StreamRequest) ProtoMessage()
func (*StreamRequest) ProtoReflect ¶
func (x *StreamRequest) ProtoReflect() protoreflect.Message
func (*StreamRequest) Reset ¶
func (x *StreamRequest) Reset()
func (*StreamRequest) String ¶
func (x *StreamRequest) String() string
type StreamRequest_Block ¶
type StreamRequest_Block struct {
Block uint64 `protobuf:"varint,2,opt,name=block,proto3,oneof"`
}
type StreamRequest_Head ¶
type StreamRequest_Head struct {
Head []byte `protobuf:"bytes,1,opt,name=head,proto3,oneof"`
}
type StreamResponse ¶
type StreamResponse struct {
// Types that are valid to be assigned to Frame:
//
// *StreamResponse_Entry
// *StreamResponse_Live
Frame isStreamResponse_Frame `protobuf_oneof:"frame"`
// contains filtered or unexported fields
}
func (*StreamResponse) Descriptor
deprecated
func (*StreamResponse) Descriptor() ([]byte, []int)
Deprecated: Use StreamResponse.ProtoReflect.Descriptor instead.
func (*StreamResponse) GetEntry ¶
func (x *StreamResponse) GetEntry() *Entry
func (*StreamResponse) GetFrame ¶
func (x *StreamResponse) GetFrame() isStreamResponse_Frame
func (*StreamResponse) GetLive ¶
func (x *StreamResponse) GetLive() *Live
func (*StreamResponse) ProtoMessage ¶
func (*StreamResponse) ProtoMessage()
func (*StreamResponse) ProtoReflect ¶
func (x *StreamResponse) ProtoReflect() protoreflect.Message
func (*StreamResponse) Reset ¶
func (x *StreamResponse) Reset()
func (*StreamResponse) String ¶
func (x *StreamResponse) String() string
type StreamResponse_Entry ¶
type StreamResponse_Entry struct {
Entry *Entry `protobuf:"bytes,1,opt,name=entry,proto3,oneof"`
}
type StreamResponse_Live ¶
type StreamResponse_Live struct {
Live *Live `protobuf:"bytes,2,opt,name=live,proto3,oneof"`
}
type UnimplementedConsumerServiceServer ¶
type UnimplementedConsumerServiceServer struct{}
UnimplementedConsumerServiceServer must be embedded to have forward compatible implementations.
NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.
func (UnimplementedConsumerServiceServer) GetBlock ¶
func (UnimplementedConsumerServiceServer) GetBlock(context.Context, *GetBlockRequest) (*GetBlockResponse, error)
func (UnimplementedConsumerServiceServer) Range ¶
func (UnimplementedConsumerServiceServer) Range(context.Context, *RangeRequest) (*RangeResponse, error)
func (UnimplementedConsumerServiceServer) Stream ¶
func (UnimplementedConsumerServiceServer) Stream(*StreamRequest, grpc.ServerStreamingServer[StreamResponse]) error
type UnimplementedPublisherServiceServer ¶
type UnimplementedPublisherServiceServer struct{}
UnimplementedPublisherServiceServer must be embedded to have forward compatible implementations.
NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.
func (UnimplementedPublisherServiceServer) Publish ¶
func (UnimplementedPublisherServiceServer) Publish(grpc.BidiStreamingServer[PublishRequest, PublishResponse]) error
type UnsafeConsumerServiceServer ¶
type UnsafeConsumerServiceServer interface {
// contains filtered or unexported methods
}
UnsafeConsumerServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to ConsumerServiceServer will result in compilation errors.
type UnsafePublisherServiceServer ¶
type UnsafePublisherServiceServer interface {
// contains filtered or unexported methods
}
UnsafePublisherServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to PublisherServiceServer will result in compilation errors.