Documentation ¶
Index ¶
- func VerifyUnitStateProof(u *UnitStateProof, algorithm crypto.Hash, ucv UnicityCertificateValidator) error
- type Action
- type LogPruner
- type Option
- type Options
- type Predicate
- type ShardState
- type State
- func (s *State) AddUnitLog(id types.UnitID, transactionRecordHash []byte) (int, error)
- func (s *State) Apply(actions ...Action) error
- func (s *State) CalculateRoot() (uint64, []byte, error)
- func (s *State) Clone() *State
- func (s *State) Commit() error
- func (s *State) CommittedTreeBlockNumber() uint64
- func (s *State) CreateUnitStateProof(id types.UnitID, logIndex int, uc *types.UnicityCertificate) (*UnitStateProof, error)
- func (s *State) GetUnit(id types.UnitID, committed bool) (*Unit, error)
- func (s *State) IsCommitted() bool
- func (s *State) PruneLog(id types.UnitID) error
- func (s *State) ReleaseToSavepoint(id int)
- func (s *State) Revert()
- func (s *State) RollbackToSavepoint(id int)
- func (s *State) Savepoint() int
- type StateTreeCert
- type StateTreePathItem
- type UnicityCertificateValidator
- type Unit
- type UnitData
- type UnitStateProof
- type UnitTreeCert
- type UpdateFunction
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func VerifyUnitStateProof ¶
func VerifyUnitStateProof(u *UnitStateProof, algorithm crypto.Hash, ucv UnicityCertificateValidator) error
Types ¶
type Action ¶
type Action func(s ShardState, hashAlgorithm crypto.Hash) error
func DeleteUnit ¶
DeleteUnit removes the unit from the state with given identifier.
func UpdateUnitData ¶
func UpdateUnitData(id types.UnitID, f UpdateFunction) Action
UpdateUnitData changes the data of the item, leaves owner as is.
type LogPruner ¶
type LogPruner struct {
// contains filtered or unexported fields
}
func NewLogPruner ¶
type ShardState ¶
type State ¶
type State struct {
// contains filtered or unexported fields
}
State is a data structure that keeps track of units, unit ledgers, and calculates global state tree root hash.
State can be changed by calling Apply function with one or more Action function. Savepoint method can be used to add a special marker to the state that allows all actions that are executed after savepoint was established to be rolled back. In the other words, savepoint lets you roll back part of the state changes instead of the entire state. Releasing a savepoint does NOT trigger a state root hash calculation. To calculate the root hash of the state use method CalculateRoot. Calling a Commit method commits and releases all savepoints.
func NewEmptyState ¶
func NewEmptyState() *State
func (*State) AddUnitLog ¶
func (*State) Apply ¶
Apply applies given actions to the state. All Action functions are executed together as a single atomic operation. If any of the Action functions returns an error all previous state changes made by any of the action function will be reverted.
func (*State) Clone ¶
Clone returns a clone of the state. The original state and the cloned state can be used by different goroutines but can never be merged. The cloned state is usually used by read only operations (e.g. unit proof generation).
func (*State) CommittedTreeBlockNumber ¶
CommittedTreeBlockNumber returns the block number of the committed state tree.
func (*State) CreateUnitStateProof ¶
func (s *State) CreateUnitStateProof(id types.UnitID, logIndex int, uc *types.UnicityCertificate) (*UnitStateProof, error)
func (*State) IsCommitted ¶
func (*State) ReleaseToSavepoint ¶
ReleaseToSavepoint destroys all savepoints, keeping all state changes after it was created. If a savepoint with given id does not exist then this method does nothing.
Releasing savepoints does NOT trigger a state root hash calculation. To calculate the root hash of the state a Commit method must be called.
func (*State) RollbackToSavepoint ¶
RollbackToSavepoint destroys savepoints without keeping the changes in the state tree. All actions that were executed after the savepoint was established are rolled back, restoring the state to what it was at the time of the savepoint.
type StateTreeCert ¶
type StateTreeCert struct {
// contains filtered or unexported fields
}
type StateTreePathItem ¶
type StateTreePathItem struct {
// contains filtered or unexported fields
}
type UnicityCertificateValidator ¶
type UnicityCertificateValidator interface {
Validate(uc *types.UnicityCertificate) error
}
type Unit ¶
type Unit struct {
// contains filtered or unexported fields
}
Unit is a node in the state tree. It is used to build state tree and unit ledgers.
type UnitStateProof ¶
type UnitStateProof struct {
// contains filtered or unexported fields
}
func (*UnitStateProof) CalculateSateTreeOutput ¶
func (u *UnitStateProof) CalculateSateTreeOutput(algorithm crypto.Hash) ([]byte, uint64)
type UnitTreeCert ¶
type UnitTreeCert struct {
// contains filtered or unexported fields
}
type UpdateFunction ¶
UpdateFunction is a function for updating the data of an item. Taken in previous UnitData and returns new UnitData.