sequencestorev1

package
v0.0.0-...-cca06ec Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 3, 2026 License: GPL-3.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ConsumerService_Stream_FullMethodName   = "/sequencestore.v1.ConsumerService/Stream"
	ConsumerService_Range_FullMethodName    = "/sequencestore.v1.ConsumerService/Range"
	ConsumerService_GetBlock_FullMethodName = "/sequencestore.v1.ConsumerService/GetBlock"
)
View Source
const (
	PublisherService_Publish_FullMethodName = "/sequencestore.v1.PublisherService/Publish"
)

Variables

View Source
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.

View Source
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)

View Source
var File_sequencestore_v1_sequencestore_proto protoreflect.FileDescriptor
View Source
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) Enum

func (x AckStatus) Enum() *AckStatus

func (AckStatus) EnumDescriptor deprecated

func (AckStatus) EnumDescriptor() ([]byte, []int)

Deprecated: Use AckStatus.Descriptor instead.

func (AckStatus) Number

func (x AckStatus) Number() protoreflect.EnumNumber

func (AckStatus) String

func (x AckStatus) String() string

func (AckStatus) Type

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) Descriptor() ([]byte, []int)

Deprecated: Use BlockOpen.ProtoReflect.Descriptor instead.

func (*BlockOpen) GetBaseFee

func (x *BlockOpen) GetBaseFee() []byte

func (*BlockOpen) GetBlockNumber

func (x *BlockOpen) GetBlockNumber() uint64

func (*BlockOpen) GetBlockTimestamp

func (x *BlockOpen) GetBlockTimestamp() uint64

func (*BlockOpen) GetGasLimit

func (x *BlockOpen) GetGasLimit() uint64

func (*BlockOpen) GetParentHash

func (x *BlockOpen) GetParentHash() []byte

func (*BlockOpen) GetPrefixCommitment

func (x *BlockOpen) GetPrefixCommitment() []byte

func (*BlockOpen) ProtoMessage

func (*BlockOpen) ProtoMessage()

func (*BlockOpen) ProtoReflect

func (x *BlockOpen) ProtoReflect() protoreflect.Message

func (*BlockOpen) Reset

func (x *BlockOpen) Reset()

func (*BlockOpen) String

func (x *BlockOpen) String() string

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) Descriptor() ([]byte, []int)

Deprecated: Use BlockSeal.ProtoReflect.Descriptor instead.

func (*BlockSeal) GetHeader

func (x *BlockSeal) GetHeader() []byte

func (*BlockSeal) GetPrefixCommitment

func (x *BlockSeal) GetPrefixCommitment() []byte

func (*BlockSeal) ProtoMessage

func (*BlockSeal) ProtoMessage()

func (*BlockSeal) ProtoReflect

func (x *BlockSeal) ProtoReflect() protoreflect.Message

func (*BlockSeal) Reset

func (x *BlockSeal) Reset()

func (*BlockSeal) String

func (x *BlockSeal) String() string

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.

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) Descriptor() ([]byte, []int)

Deprecated: Use Entry.ProtoReflect.Descriptor instead.

func (*Entry) GetBlockOpen

func (x *Entry) GetBlockOpen() *BlockOpen

func (*Entry) GetBlockSeal

func (x *Entry) GetBlockSeal() *BlockSeal

func (*Entry) GetKind

func (x *Entry) GetKind() isEntry_Kind

func (*Entry) GetRecord

func (x *Entry) GetRecord() *Record

func (*Entry) GetSignature

func (x *Entry) GetSignature() []byte

func (*Entry) ProtoMessage

func (*Entry) ProtoMessage()

func (*Entry) ProtoReflect

func (x *Entry) ProtoReflect() protoreflect.Message

func (*Entry) Reset

func (x *Entry) Reset()

func (*Entry) String

func (x *Entry) String() string

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) Descriptor() ([]byte, []int)

Deprecated: Use Live.ProtoReflect.Descriptor instead.

func (*Live) ProtoMessage

func (*Live) ProtoMessage()

func (*Live) ProtoReflect

func (x *Live) ProtoReflect() protoreflect.Message

func (*Live) Reset

func (x *Live) Reset()

func (*Live) String

func (x *Live) String() string

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.

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) Descriptor() ([]byte, []int)

Deprecated: Use Record.ProtoReflect.Descriptor instead.

func (*Record) GetPrefixCommitment

func (x *Record) GetPrefixCommitment() []byte

func (*Record) GetTransactions

func (x *Record) GetTransactions() [][]byte

func (*Record) ProtoMessage

func (*Record) ProtoMessage()

func (*Record) ProtoReflect

func (x *Record) ProtoReflect() protoreflect.Message

func (*Record) Reset

func (x *Record) Reset()

func (*Record) String

func (x *Record) String() string

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) Range

func (UnimplementedConsumerServiceServer) Stream

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

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL