Documentation ¶
Index ¶
- Variables
- func ChunkListFromCommit(commit flow.StateCommitment) flow.ChunkList
- func ChunkLocatorID(resultID flow.Identifier, chunkIndex uint64) flow.Identifier
- func IsChunkFaultError(err error) bool
- type Assignment
- type AssignmentBuilder
- type AssignmentDataPack
- type CFExecutionDataBlockIDMismatch
- type CFExecutionDataChunksLengthMismatch
- type CFExecutionDataInvalidChunkCID
- type CFInvalidEventsCollection
- type CFInvalidExecutionDataID
- type CFInvalidServiceEventsEmitted
- type CFInvalidVerifiableChunk
- type CFMissingRegisterTouch
- type CFNonMatchingFinalState
- type CFSystemChunkIncludedCollection
- type ChunkFaultError
- type Locator
- type LocatorList
- type LocatorMap
Constants ¶
This section is empty.
Variables ¶
var ErrUnknownChunkIndex = errors.New("verifier assignment for invalid chunk requested")
Functions ¶
func ChunkListFromCommit ¶ added in v0.11.0
func ChunkListFromCommit(commit flow.StateCommitment) flow.ChunkList
ChunkListFromCommit creates a chunklist with one chunk whos final state is the commit
func ChunkLocatorID ¶ added in v0.23.2
func ChunkLocatorID(resultID flow.Identifier, chunkIndex uint64) flow.Identifier
ChunkLocatorID is a util function that returns identifier of corresponding chunk locator to the specified result and chunk index.
func IsChunkFaultError ¶ added in v0.32.0
Types ¶
type Assignment ¶
type Assignment struct {
// contains filtered or unexported fields
}
Assignment is an immutable list that, for each chunk (in order of chunk.Index), records the set of verifier nodes that are assigned to verify that chunk. Assignments are only constructed using AssignmentBuilder, and cannot be modified after construction.
func (*Assignment) ByNodeID ¶
func (a *Assignment) ByNodeID(verifierID flow.Identifier) []uint64
ByNodeID returns the indices of all chunks assigned to the given verifierID
func (*Assignment) HasVerifier ¶ added in v0.14.0
func (a *Assignment) HasVerifier(chunkIdx uint64, identifier flow.Identifier) (bool, error)
HasVerifier checks if a chunk is assigned to the given verifier Errors: ErrUnknownChunkIndex if the chunk index is not present in the assignment
func (*Assignment) Len ¶ added in v0.11.0
func (a *Assignment) Len() int
Len returns the number of chunks in the assignment
func (*Assignment) Verifiers ¶
func (a *Assignment) Verifiers(chunkIdx uint64) (map[flow.Identifier]struct{}, error)
Verifiers returns the list of verifier nodes assigned to a chunk. The protocol mandates that for each chunk in a block, a verifier assignment exists (though it may be empty) and that each block must at least have one chunk. Errors: ErrUnknownChunkIndex if the chunk index is not present in the assignment
type AssignmentBuilder ¶
type AssignmentBuilder struct {
// contains filtered or unexported fields
}
AssignmentBuilder is a helper for constructing a single new Assignment, and should be discarded after calling `Build()`. AssignmentBuilder is not safe for concurrent use by multiple goroutines.
func NewAssignmentBuilder ¶
func NewAssignmentBuilder() *AssignmentBuilder
func (*AssignmentBuilder) Add ¶
func (a *AssignmentBuilder) Add(chunkIdx uint64, verifiers flow.IdentifierList) error
Add records the list of verifier nodes as the assigned verifiers of the chunk. Requires chunks to be added in order of their Index (starting at 0 and increasing by 1 with each addition); otherwise an exception is returned.
func (*AssignmentBuilder) Build ¶
func (a *AssignmentBuilder) Build() *Assignment
Build constructs and returns the immutable assignment. The AssignmentBuilder should be discarded after this call, and further method calls will panic.
type AssignmentDataPack ¶
type AssignmentDataPack struct {
// contains filtered or unexported fields
}
AssignmentDataPack provides a storable representation of chunk assignments on mempool
func NewAssignmentDataPack ¶
func NewAssignmentDataPack(fingerprint flow.Identifier, assignment *Assignment) *AssignmentDataPack
NewAssignmentDataPack casts an assignment and its fingerprint into an assignment data pack
func (*AssignmentDataPack) Assignment ¶
func (a *AssignmentDataPack) Assignment() *Assignment
Assignment returns the assignment part of the assignment data pack
func (*AssignmentDataPack) Checksum ¶
func (a *AssignmentDataPack) Checksum() flow.Identifier
Checksum returns the checksum of the assignment data pack
func (*AssignmentDataPack) ID ¶
func (a *AssignmentDataPack) ID() flow.Identifier
ID returns the unique identifier for assignment data pack
type CFExecutionDataBlockIDMismatch ¶ added in v0.32.0
type CFExecutionDataBlockIDMismatch struct {
// contains filtered or unexported fields
}
CFExecutionDataBlockIDMismatch is returned when the block ID contained in the execution data root is different from chunk's block ID
func NewCFExecutionDataBlockIDMismatch ¶ added in v0.32.0
func NewCFExecutionDataBlockIDMismatch( executionDataRootBlockID flow.Identifier, chunkBlockID flow.Identifier, chInx uint64, execResID flow.Identifier, ) *CFExecutionDataBlockIDMismatch
NewCFExecutionDataBlockIDMismatch creates a new instance of Chunk Fault (ExecutionDataBlockIDMismatch)
func (CFExecutionDataBlockIDMismatch) ChunkIndex ¶ added in v0.32.0
func (cf CFExecutionDataBlockIDMismatch) ChunkIndex() uint64
ChunkIndex returns chunk index of the faulty chunk
func (CFExecutionDataBlockIDMismatch) Error ¶ added in v0.32.0
func (cf CFExecutionDataBlockIDMismatch) Error() string
func (CFExecutionDataBlockIDMismatch) ExecutionResultID ¶ added in v0.32.0
func (cf CFExecutionDataBlockIDMismatch) ExecutionResultID() flow.Identifier
ExecutionResultID returns the execution result identifier including the faulty chunk
func (CFExecutionDataBlockIDMismatch) String ¶ added in v0.32.0
func (cf CFExecutionDataBlockIDMismatch) String() string
type CFExecutionDataChunksLengthMismatch ¶ added in v0.32.0
type CFExecutionDataChunksLengthMismatch struct {
// contains filtered or unexported fields
}
CFExecutionDataChunksLengthMismatch is returned when execution data chunks list has different length than number of chunks for a block
func NewCFExecutionDataChunksLengthMismatch ¶ added in v0.32.0
func NewCFExecutionDataChunksLengthMismatch( executionDataRootChunkLength int, executionResultChunkListLength int, chInx uint64, execResID flow.Identifier, ) *CFExecutionDataChunksLengthMismatch
NewCFExecutionDataChunksLengthMismatch creates a new instance of Chunk Fault (ExecutionDataBlockIDMismatch)
func (CFExecutionDataChunksLengthMismatch) ChunkIndex ¶ added in v0.32.0
func (cf CFExecutionDataChunksLengthMismatch) ChunkIndex() uint64
ChunkIndex returns chunk index of the faulty chunk
func (CFExecutionDataChunksLengthMismatch) Error ¶ added in v0.32.0
func (cf CFExecutionDataChunksLengthMismatch) Error() string
func (CFExecutionDataChunksLengthMismatch) ExecutionResultID ¶ added in v0.32.0
func (cf CFExecutionDataChunksLengthMismatch) ExecutionResultID() flow.Identifier
ExecutionResultID returns the execution result identifier including the faulty chunk
func (CFExecutionDataChunksLengthMismatch) String ¶ added in v0.32.0
func (cf CFExecutionDataChunksLengthMismatch) String() string
type CFExecutionDataInvalidChunkCID ¶ added in v0.32.0
type CFExecutionDataInvalidChunkCID struct {
// contains filtered or unexported fields
}
CFExecutionDataInvalidChunkCID is returned when execution data chunk's CID is different from computed
func NewCFExecutionDataInvalidChunkCID ¶ added in v0.32.0
func NewCFExecutionDataInvalidChunkCID( executionDataRootChunkCID cid.Cid, computedChunkCID cid.Cid, chInx uint64, execResID flow.Identifier, ) *CFExecutionDataInvalidChunkCID
NewCFExecutionDataInvalidChunkCID creates a new instance of Chunk Fault (NewCFExecutionDataInvalidChunkCID)
func (CFExecutionDataInvalidChunkCID) ChunkIndex ¶ added in v0.32.0
func (cf CFExecutionDataInvalidChunkCID) ChunkIndex() uint64
ChunkIndex returns chunk index of the faulty chunk
func (CFExecutionDataInvalidChunkCID) Error ¶ added in v0.32.0
func (cf CFExecutionDataInvalidChunkCID) Error() string
func (CFExecutionDataInvalidChunkCID) ExecutionResultID ¶ added in v0.32.0
func (cf CFExecutionDataInvalidChunkCID) ExecutionResultID() flow.Identifier
ExecutionResultID returns the execution result identifier including the faulty chunk
func (CFExecutionDataInvalidChunkCID) String ¶ added in v0.32.0
func (cf CFExecutionDataInvalidChunkCID) String() string
type CFInvalidEventsCollection ¶ added in v0.19.0
type CFInvalidEventsCollection struct {
// contains filtered or unexported fields
}
CFInvalidEventsCollection is returned when computed events collection hash is different from the chunk's one
func NewCFInvalidEventsCollection ¶ added in v0.19.0
func NewCFInvalidEventsCollection(expected flow.Identifier, computed flow.Identifier, chInx uint64, execResID flow.Identifier, events flow.EventsList) *CFInvalidEventsCollection
func (*CFInvalidEventsCollection) ChunkIndex ¶ added in v0.19.0
func (c *CFInvalidEventsCollection) ChunkIndex() uint64
func (CFInvalidEventsCollection) Error ¶ added in v0.32.0
func (cf CFInvalidEventsCollection) Error() string
func (*CFInvalidEventsCollection) ExecutionResultID ¶ added in v0.19.0
func (c *CFInvalidEventsCollection) ExecutionResultID() flow.Identifier
func (*CFInvalidEventsCollection) String ¶ added in v0.19.0
func (c *CFInvalidEventsCollection) String() string
type CFInvalidExecutionDataID ¶ added in v0.32.0
type CFInvalidExecutionDataID struct {
// contains filtered or unexported fields
}
CFInvalidExecutionDataID is returned when ExecutionResult's ExecutionDataID is different from computed
func NewCFInvalidExecutionDataID ¶ added in v0.32.0
func NewCFInvalidExecutionDataID( erExecutionDataID flow.Identifier, computedExecutionDataID flow.Identifier, chInx uint64, execResID flow.Identifier, ) *CFInvalidExecutionDataID
NewCFInvalidExecutionDataID creates a new instance of Chunk Fault (CFInvalidExecutionDataID)
func (CFInvalidExecutionDataID) ChunkIndex ¶ added in v0.32.0
func (cf CFInvalidExecutionDataID) ChunkIndex() uint64
ChunkIndex returns chunk index of the faulty chunk
func (CFInvalidExecutionDataID) Error ¶ added in v0.32.0
func (cf CFInvalidExecutionDataID) Error() string
func (CFInvalidExecutionDataID) ExecutionResultID ¶ added in v0.32.0
func (cf CFInvalidExecutionDataID) ExecutionResultID() flow.Identifier
ExecutionResultID returns the execution result identifier including the faulty chunk
func (CFInvalidExecutionDataID) String ¶ added in v0.32.0
func (cf CFInvalidExecutionDataID) String() string
type CFInvalidServiceEventsEmitted ¶ added in v0.19.0
type CFInvalidServiceEventsEmitted struct {
// contains filtered or unexported fields
}
CFInvalidServiceEventsEmitted is returned when service events are different from the chunk's one
func CFInvalidServiceSystemEventsEmitted ¶ added in v0.19.0
func CFInvalidServiceSystemEventsEmitted(expected flow.ServiceEventList, computed flow.ServiceEventList, chInx uint64, execResID flow.Identifier) *CFInvalidServiceEventsEmitted
func (*CFInvalidServiceEventsEmitted) ChunkIndex ¶ added in v0.19.0
func (c *CFInvalidServiceEventsEmitted) ChunkIndex() uint64
func (CFInvalidServiceEventsEmitted) Error ¶ added in v0.32.0
func (cf CFInvalidServiceEventsEmitted) Error() string
func (*CFInvalidServiceEventsEmitted) ExecutionResultID ¶ added in v0.19.0
func (c *CFInvalidServiceEventsEmitted) ExecutionResultID() flow.Identifier
func (*CFInvalidServiceEventsEmitted) String ¶ added in v0.19.0
func (c *CFInvalidServiceEventsEmitted) String() string
type CFInvalidVerifiableChunk ¶
type CFInvalidVerifiableChunk struct {
// contains filtered or unexported fields
}
CFInvalidVerifiableChunk is returned when a verifiable chunk is invalid this includes cases that code fails to construct a partial trie, collection hashes doesn't match TODO break this into more detailed ones as we progress
func NewCFInvalidVerifiableChunk ¶
func NewCFInvalidVerifiableChunk(reason string, err error, chInx uint64, execResID flow.Identifier) *CFInvalidVerifiableChunk
NewCFInvalidVerifiableChunk creates a new instance of Chunk Fault (InvalidVerifiableChunk)
func (CFInvalidVerifiableChunk) ChunkIndex ¶
func (cf CFInvalidVerifiableChunk) ChunkIndex() uint64
ChunkIndex returns chunk index of the faulty chunk
func (CFInvalidVerifiableChunk) Error ¶ added in v0.32.0
func (cf CFInvalidVerifiableChunk) Error() string
func (CFInvalidVerifiableChunk) ExecutionResultID ¶
func (cf CFInvalidVerifiableChunk) ExecutionResultID() flow.Identifier
ExecutionResultID returns the execution result identifier including the faulty chunk
func (CFInvalidVerifiableChunk) String ¶
func (cf CFInvalidVerifiableChunk) String() string
type CFMissingRegisterTouch ¶
type CFMissingRegisterTouch struct {
// contains filtered or unexported fields
}
CFMissingRegisterTouch is returned when a register touch is missing (read or update)
func NewCFMissingRegisterTouch ¶
func NewCFMissingRegisterTouch(regsterIDs []string, chInx uint64, execResID flow.Identifier, txID flow.Identifier) *CFMissingRegisterTouch
NewCFMissingRegisterTouch creates a new instance of Chunk Fault (MissingRegisterTouch)
func (CFMissingRegisterTouch) ChunkIndex ¶
func (cf CFMissingRegisterTouch) ChunkIndex() uint64
ChunkIndex returns chunk index of the faulty chunk
func (CFMissingRegisterTouch) Error ¶ added in v0.32.0
func (cf CFMissingRegisterTouch) Error() string
func (CFMissingRegisterTouch) ExecutionResultID ¶
func (cf CFMissingRegisterTouch) ExecutionResultID() flow.Identifier
ExecutionResultID returns the execution result identifier including the faulty chunk
func (CFMissingRegisterTouch) String ¶
func (cf CFMissingRegisterTouch) String() string
type CFNonMatchingFinalState ¶
type CFNonMatchingFinalState struct {
// contains filtered or unexported fields
}
CFNonMatchingFinalState is returned when the computed final state commitment (applying chunk register updates to the partial trie) doesn't match the one provided by the chunk
func NewCFNonMatchingFinalState ¶
func NewCFNonMatchingFinalState(expected flow.StateCommitment, computed flow.StateCommitment, chInx uint64, execResID flow.Identifier) *CFNonMatchingFinalState
NewCFNonMatchingFinalState creates a new instance of Chunk Fault (NonMatchingFinalState)
func (CFNonMatchingFinalState) ChunkIndex ¶
func (cf CFNonMatchingFinalState) ChunkIndex() uint64
ChunkIndex returns chunk index of the faulty chunk
func (CFNonMatchingFinalState) Error ¶ added in v0.32.0
func (cf CFNonMatchingFinalState) Error() string
func (CFNonMatchingFinalState) ExecutionResultID ¶
func (cf CFNonMatchingFinalState) ExecutionResultID() flow.Identifier
ExecutionResultID returns the execution result identifier including the faulty chunk
func (CFNonMatchingFinalState) String ¶
func (cf CFNonMatchingFinalState) String() string
type CFSystemChunkIncludedCollection ¶ added in v0.32.0
type CFSystemChunkIncludedCollection struct {
// contains filtered or unexported fields
}
CFSystemChunkIncludedCollection is returned when a system chunk includes a collection
func NewCFSystemChunkIncludedCollection ¶ added in v0.32.0
func NewCFSystemChunkIncludedCollection(chInx uint64, execResID flow.Identifier) *CFSystemChunkIncludedCollection
NewCFSystemChunkIncludedCollection creates a new instance of Chunk Fault (SystemChunkIncludedCollection)
func (CFSystemChunkIncludedCollection) ChunkIndex ¶ added in v0.32.0
func (cf CFSystemChunkIncludedCollection) ChunkIndex() uint64
ChunkIndex returns chunk index of the faulty chunk
func (CFSystemChunkIncludedCollection) Error ¶ added in v0.32.0
func (cf CFSystemChunkIncludedCollection) Error() string
func (CFSystemChunkIncludedCollection) ExecutionResultID ¶ added in v0.32.0
func (cf CFSystemChunkIncludedCollection) ExecutionResultID() flow.Identifier
ExecutionResultID returns the execution result identifier including the faulty chunk
func (CFSystemChunkIncludedCollection) String ¶ added in v0.32.0
func (cf CFSystemChunkIncludedCollection) String() string
type ChunkFaultError ¶ added in v0.32.0
type ChunkFaultError interface { error ChunkIndex() uint64 ExecutionResultID() flow.Identifier String() string }
ChunkFaultError holds information about a fault that is found while verifying a chunk
type Locator ¶ added in v0.15.0
type Locator struct { ResultID flow.Identifier // execution result id that chunk belongs to Index uint64 // index of chunk in the execution result }
Locator is used to locate a chunk by providing the execution result the chunk belongs to as well as the chunk index within that execution result. Since a chunk is unique by the result ID and its index in the result's chunk list.
func (Locator) Checksum ¶ added in v0.15.0
func (c Locator) Checksum() flow.Identifier
Checksum provides a cryptographic commitment for a chunk locator content.
func (Locator) ID ¶ added in v0.15.0
func (c Locator) ID() flow.Identifier
ID returns a unique id for chunk locator.
type LocatorList ¶ added in v0.15.0
type LocatorList []*Locator
func (LocatorList) ToMap ¶ added in v0.23.2
func (l LocatorList) ToMap() LocatorMap
type LocatorMap ¶ added in v0.23.2
type LocatorMap map[flow.Identifier]*Locator
LocatorMap maps keeps chunk locators based on their locator id.
func (LocatorMap) ToList ¶ added in v0.23.2
func (l LocatorMap) ToList() LocatorList