Documentation ¶
Overview ¶
For key value stores where buckets are not supported, we add a byte to the key to represent a bucket. For now, all buckets are hard coded, but we could change that in the future.
Buckets are not really enough to index everything we wish to index. So we have labels as well. Labels are shifted 8 bits left, so they can be combined with the buckets to create a unique key.
This allows us to put the raw directory block at DBlockBucket+L_raw, and meta data about the directory block at DBlockBucket+MetaLabel
Index ¶
- func GetSignaturesForSigner(transaction *Transaction, signer protocol.Signer) ([]protocol.Signature, error)
- func Restore(db Beginner, file ioutil.SectionReader, opts *RestoreOptions) error
- func UpdateAccount[T protocol.Account](batch *Batch, url *url.URL, fn func(T) error) (T, error)
- type Account
- func (c *Account) AnchorChain(partition string) *AccountAnchorChain
- func (c *Account) AnchorSequenceChain() *Chain2
- func (c *Account) BptChain() *Chain2
- func (a *Account) BptReceipt() (*merkle.Receipt, error)
- func (a *Account) ChainByName(name string) (*Chain2, error)
- func (c *Account) Chains() values.Set[*protocol.ChainMetadata]
- func (a *Account) Commit() error
- func (c *Account) Data() *AccountData
- func (c *Account) Directory() values.Set[*url.URL]
- func (c *Account) Events() *AccountEvents
- func (a *Account) GetChainByName(name string) (*Chain, error)
- func (a *Account) GetIndexChainByName(name string) (*Chain, error)
- func (a *Account) Hash() ([32]byte, error)
- func (c *Account) IsDirty() bool
- func (c *Account) Key() *record.Key
- func (c *Account) Main() values.Value[protocol.Account]
- func (c *Account) MainChain() *Chain2
- func (c *Account) MajorBlockChain() *Chain2
- func (r *Account) MarkDirty() error
- func (c *Account) Pending() values.Set[*url.TxID]
- func (c *Account) Resolve(key *record.Key) (record.Record, *record.Key, error)
- func (c *Account) RootChain() *Chain2
- func (c *Account) ScratchChain() *Chain2
- func (c *Account) SignatureChain() *Chain2
- func (a *Account) StateReceipt() (*merkle.Receipt, error)
- func (c *Account) SyntheticAnchors() values.Set[[32]byte]
- func (c *Account) SyntheticForAnchor(anchor [32]byte) values.Set[*url.TxID]
- func (c *Account) SyntheticSequenceChain(partition string) *Chain2
- func (c *Account) Transaction(hash [32]byte) *AccountTransaction
- func (a *Account) UpdatedChains() ([]*protocol.BlockEntry, error)
- func (r *Account) Url() *url.URL
- func (a *Account) VerifyHash(hash []byte) error
- func (c *Account) Walk(opts record.WalkOptions, fn record.WalkFunc) error
- type AccountAnchorChain
- func (c *AccountAnchorChain) BPT() *Chain2
- func (c *AccountAnchorChain) Commit() error
- func (c *AccountAnchorChain) IsDirty() bool
- func (c *AccountAnchorChain) Key() *record.Key
- func (c *AccountAnchorChain) Resolve(key *record.Key) (record.Record, *record.Key, error)
- func (c *AccountAnchorChain) Root() *Chain2
- func (c *AccountAnchorChain) Walk(opts record.WalkOptions, fn record.WalkFunc) error
- type AccountData
- func (c *AccountData) Commit() error
- func (c *AccountData) Entry() values.Counted[[32]byte]
- func (c *AccountData) IsDirty() bool
- func (c *AccountData) Key() *record.Key
- func (c *AccountData) Resolve(key *record.Key) (record.Record, *record.Key, error)
- func (c *AccountData) Transaction(entryHash [32]byte) values.Value[[32]byte]
- func (c *AccountData) Walk(opts record.WalkOptions, fn record.WalkFunc) error
- type AccountEvents
- func (c *AccountEvents) BPT() *bpt.BPT
- func (c *AccountEvents) Backlog() *AccountEventsBacklog
- func (c *AccountEvents) Commit() error
- func (c *AccountEvents) IsDirty() bool
- func (c *AccountEvents) Key() *record.Key
- func (c *AccountEvents) Major() *AccountEventsMajor
- func (c *AccountEvents) Minor() *AccountEventsMinor
- func (c *AccountEvents) Resolve(key *record.Key) (record.Record, *record.Key, error)
- func (c *AccountEvents) Walk(opts record.WalkOptions, fn record.WalkFunc) error
- type AccountEventsBacklog
- func (c *AccountEventsBacklog) Commit() error
- func (c *AccountEventsBacklog) Expired() values.Set[*url.TxID]
- func (c *AccountEventsBacklog) IsDirty() bool
- func (c *AccountEventsBacklog) Key() *record.Key
- func (c *AccountEventsBacklog) Resolve(key *record.Key) (record.Record, *record.Key, error)
- func (c *AccountEventsBacklog) Walk(opts record.WalkOptions, fn record.WalkFunc) error
- type AccountEventsMajor
- func (c *AccountEventsMajor) Blocks() values.Set[uint64]
- func (c *AccountEventsMajor) Commit() error
- func (c *AccountEventsMajor) IsDirty() bool
- func (c *AccountEventsMajor) Key() *record.Key
- func (c *AccountEventsMajor) Pending(block uint64) values.Set[*url.TxID]
- func (c *AccountEventsMajor) Resolve(key *record.Key) (record.Record, *record.Key, error)
- func (c *AccountEventsMajor) Walk(opts record.WalkOptions, fn record.WalkFunc) error
- type AccountEventsMinor
- func (c *AccountEventsMinor) Blocks() values.Set[uint64]
- func (c *AccountEventsMinor) Commit() error
- func (c *AccountEventsMinor) IsDirty() bool
- func (c *AccountEventsMinor) Key() *record.Key
- func (c *AccountEventsMinor) Resolve(key *record.Key) (record.Record, *record.Key, error)
- func (c *AccountEventsMinor) Votes(block uint64) values.Set[*protocol.AuthoritySignature]
- func (c *AccountEventsMinor) Walk(opts record.WalkOptions, fn record.WalkFunc) error
- type AccountIterator
- type AccountTransaction
- func (c *AccountTransaction) Commit() error
- func (c *AccountTransaction) History() values.Set[uint64]
- func (c *AccountTransaction) IsDirty() bool
- func (c *AccountTransaction) Key() *record.Key
- func (c *AccountTransaction) Payments() values.Set[[32]byte]
- func (c *AccountTransaction) RecordHistory(msg messaging.Message) error
- func (c *AccountTransaction) Resolve(key *record.Key) (record.Record, *record.Key, error)
- func (c *AccountTransaction) Signatures() values.Set[*SignatureSetEntry]
- func (c *AccountTransaction) ValidatorSignatures() values.Set[protocol.KeySignature]
- func (c *AccountTransaction) Votes() values.Set[*VoteEntry]
- func (c *AccountTransaction) Walk(opts record.WalkOptions, fn record.WalkFunc) error
- type Batch
- func (b *Batch) Account(u *url.URL) *Account
- func (b *Batch) AccountTransaction(id *url.TxID) *AccountTransaction
- func (c *Batch) BPT() *bpt.BPT
- func (b *Batch) Begin(writable bool) *Batch
- func (b *Batch) BptReceipt(key *record.Key, value [32]byte) (*merkle.Receipt, error)
- func (batch *Batch) Collect(file io.WriteSeeker, partition *url.URL, opts *CollectOptions) error
- func (b *Batch) Commit() error
- func (b *Batch) DeleteAccountState_TESTONLY(url *url.URL) error
- func (b *Batch) Discard()
- func (b *Batch) ForEachAccount(fn func(account *Account, hash [32]byte) error) error
- func (b *Batch) GetBptRootHash() ([32]byte, error)
- func (b *Batch) GetMinorRootChainAnchor(describe *config.Describe) ([]byte, error)
- func (c *Batch) IsDirty() bool
- func (b *Batch) IterateAccounts() *AccountIterator
- func (c *Batch) Key() *record.Key
- func (c *Batch) Message(hash [32]byte) *Message
- func (b *Batch) Message2(hash []byte) *Message
- func (b *Batch) Resolve(key *record.Key) (database.Record, *record.Key, error)
- func (b *Batch) SaveAccounts(file io.WriteSeeker, collect func(*Account) ([]byte, error)) error
- func (b *Batch) SetObserver(observer Observer)
- func (c *Batch) SystemData(partition string) *SystemData
- func (b *Batch) Transaction(id []byte) *Transaction
- func (b *Batch) Transaction2(id [32]byte) *Transaction
- func (b *Batch) Update(fn func(batch *Batch) error) error
- func (b *Batch) UpdateBPT() error
- func (b *Batch) UpdatedAccounts() []*Account
- func (b *Batch) View(fn func(batch *Batch) error) error
- func (c *Batch) Walk(opts record.WalkOptions, fn record.WalkFunc) error
- type Beginner
- type BlockStateSynthTxnEntry
- func (e *BlockStateSynthTxnEntry) Compare(f *BlockStateSynthTxnEntry) int
- func (v *BlockStateSynthTxnEntry) Copy() *BlockStateSynthTxnEntry
- func (v *BlockStateSynthTxnEntry) CopyAsInterface() interface{}
- func (v *BlockStateSynthTxnEntry) Equal(u *BlockStateSynthTxnEntry) bool
- func (v *BlockStateSynthTxnEntry) IsValid() error
- func (v *BlockStateSynthTxnEntry) MarshalBinary() ([]byte, error)
- func (v *BlockStateSynthTxnEntry) MarshalJSON() ([]byte, error)
- func (v *BlockStateSynthTxnEntry) UnmarshalBinary(data []byte) error
- func (v *BlockStateSynthTxnEntry) UnmarshalBinaryFrom(rd io.Reader) error
- func (v *BlockStateSynthTxnEntry) UnmarshalJSON(data []byte) error
- type Chain
- func (c *Chain) AddEntry(entry []byte, unique bool) error
- func (c *Chain) Anchor() []byte
- func (c *Chain) AnchorAt(height uint64) ([]byte, error)
- func (c *Chain) CurrentState() *merkle.State
- func (c *Chain) Entries(start int64, end int64) ([][]byte, error)
- func (c *Chain) Entry(height int64) ([]byte, error)
- func (c *Chain) EntryAs(height int64, value encoding.BinaryUnmarshaler) error
- func (c *Chain) Height() int64
- func (c *Chain) HeightOf(hash []byte) (int64, error)
- func (c *Chain) Pending() [][]byte
- func (c *Chain) Receipt(from, to int64) (*merkle.Receipt, error)
- func (c *Chain) State(height int64) (*merkle.State, error)
- type Chain2
- func (c *Chain2) Account() *url.URL
- func (c *Chain2) Anchor() ([]byte, error)
- func (c *Chain2) Commit() error
- func (c *Chain2) Entry(height int64) ([]byte, error)
- func (c *Chain2) EntryAs(height int64, value encoding.BinaryUnmarshaler) error
- func (c *Chain2) Get() (*Chain, error)
- func (c *Chain2) Head() values.Value[*merkle.State]
- func (c *Chain2) Index() *Chain2
- func (c *Chain2) IndexOf(hash []byte) (int64, error)
- func (c *Chain2) Inner() *MerkleManager
- func (c *Chain2) IsDirty() bool
- func (c *Chain2) Key() *record.Key
- func (c *Chain2) Name() string
- func (c *Chain2) Receipt(from, to uint64) (*merkle.Receipt, error)
- func (c *Chain2) Resolve(key *record.Key) (record.Record, *record.Key, error)
- func (c *Chain2) State(height int64) (*merkle.State, error)
- func (c *Chain2) Type() merkle.ChainType
- func (c *Chain2) Url() *url.URL
- func (c *Chain2) Walk(opts database.WalkOptions, fn database.WalkFunc) error
- type CollectMetrics
- type CollectOptions
- type Database
- func New(store keyvalue.Beginner, logger log.Logger) *Database
- func Open(cfg *config.Config, logger log.Logger) (*Database, error)
- func OpenBadger(filepath string, logger log.Logger) (*Database, error)
- func OpenInMemory(logger log.Logger) *Database
- func OpenLevelDB(filepath string, logger log.Logger) (*Database, error)
- func (d *Database) Begin(writable bool) *Batch
- func (d *Database) Close() error
- func (db *Database) Collect(file io.WriteSeeker, partition *url.URL, opts *CollectOptions) error
- func (d *Database) SetObserver(observer Observer)
- func (d *Database) Store() (keyvalue.Beginner, error)
- func (d *Database) Update(fn func(batch *Batch) error) error
- func (d *Database) View(fn func(batch *Batch) error) error
- type Hash
- type HashFunc
- type HashList
- type MerkleManager
- type Message
- func (c *Message) Cause() values.Set[*url.TxID]
- func (c *Message) Commit() error
- func (m *Message) FindSigners(u *url.URL) ([]*url.URL, error)
- func (c *Message) IsDirty() bool
- func (c *Message) Key() *record.Key
- func (m *Message) Main() values.Value[messaging.Message]
- func (c *Message) Produced() values.Set[*url.TxID]
- func (c *Message) Resolve(key *record.Key) (record.Record, *record.Key, error)
- func (c *Message) Signers() values.Set[*url.URL]
- func (c *Message) Walk(opts record.WalkOptions, fn record.WalkFunc) error
- type Observer
- type RestoreMetrics
- type RestoreOptions
- type SigOrTxn
- func (v *SigOrTxn) Copy() *SigOrTxn
- func (v *SigOrTxn) CopyAsInterface() interface{}
- func (v *SigOrTxn) Equal(u *SigOrTxn) bool
- func (v *SigOrTxn) IsValid() error
- func (v *SigOrTxn) MarshalBinary() ([]byte, error)
- func (v *SigOrTxn) MarshalJSON() ([]byte, error)
- func (v *SigOrTxn) UnmarshalBinary(data []byte) error
- func (v *SigOrTxn) UnmarshalBinaryFrom(rd io.Reader) error
- func (v *SigOrTxn) UnmarshalJSON(data []byte) error
- type SigSetEntry
- func (s *SigSetEntry) Compare(t *SigSetEntry) int
- func (v *SigSetEntry) Copy() *SigSetEntry
- func (v *SigSetEntry) CopyAsInterface() interface{}
- func (v *SigSetEntry) Equal(u *SigSetEntry) bool
- func (v *SigSetEntry) IsValid() error
- func (v *SigSetEntry) MarshalBinary() ([]byte, error)
- func (v *SigSetEntry) MarshalJSON() ([]byte, error)
- func (v *SigSetEntry) UnmarshalBinary(data []byte) error
- func (v *SigSetEntry) UnmarshalBinaryFrom(rd io.Reader) error
- func (v *SigSetEntry) UnmarshalJSON(data []byte) error
- type SignatureSet
- type SignatureSetEntry
- func (v *SignatureSetEntry) Copy() *SignatureSetEntry
- func (v *SignatureSetEntry) CopyAsInterface() interface{}
- func (v *SignatureSetEntry) Equal(u *SignatureSetEntry) bool
- func (v *SignatureSetEntry) IsValid() error
- func (v *SignatureSetEntry) MarshalBinary() ([]byte, error)
- func (v *SignatureSetEntry) MarshalJSON() ([]byte, error)
- func (a *SignatureSetEntry) PathHash() [32]byte
- func (v *SignatureSetEntry) UnmarshalBinary(data []byte) error
- func (v *SignatureSetEntry) UnmarshalBinaryFrom(rd io.Reader) error
- func (v *SignatureSetEntry) UnmarshalJSON(data []byte) error
- type SparseHashList
- type SystemData
- func (c *SystemData) Commit() error
- func (c *SystemData) IsDirty() bool
- func (c *SystemData) Key() *record.Key
- func (c *SystemData) Resolve(key *record.Key) (record.Record, *record.Key, error)
- func (c *SystemData) SyntheticIndexIndex(block uint64) values.Value[uint64]
- func (c *SystemData) Walk(opts record.WalkOptions, fn record.WalkFunc) error
- type Transaction
- func (t *Transaction) AddSignature(keyEntryIndex uint64, newSignature protocol.Signature) (int, error)
- func (t *Transaction) AddSystemSignature(net config.NetworkUrl, newSignature protocol.Signature) (int, error)
- func (c *Transaction) Chains() values.Set[*TransactionChainEntry]
- func (c *Transaction) Commit() error
- func (c *Transaction) IsDirty() bool
- func (c *Transaction) Key() *record.Key
- func (c *Transaction) Main() values.Value[*SigOrTxn]
- func (c *Transaction) Produced() values.Set[*url.TxID]
- func (t *Transaction) ReadSignatures(signer *url.URL) (*SignatureSet, error)
- func (t *Transaction) ReadSignaturesForSigner(signer protocol.Signer2) (*SignatureSet, error)
- func (c *Transaction) Resolve(key *record.Key) (record.Record, *record.Key, error)
- func (t *Transaction) RestoreSignatureSets(signer *url.URL, version uint64, entries []SigSetEntry) error
- func (t *Transaction) Signatures(signer *url.URL) (*SignatureSet, error)
- func (t *Transaction) SignaturesForSigner(signer protocol.Signer2) (*SignatureSet, error)
- func (t *Transaction) Status() values.Value[*protocol.TransactionStatus]
- func (c *Transaction) Walk(opts record.WalkOptions, fn record.WalkFunc) error
- type TransactionChainEntry
- func (e *TransactionChainEntry) Compare(f *TransactionChainEntry) int
- func (v *TransactionChainEntry) Copy() *TransactionChainEntry
- func (v *TransactionChainEntry) CopyAsInterface() interface{}
- func (v *TransactionChainEntry) Equal(u *TransactionChainEntry) bool
- func (v *TransactionChainEntry) IsValid() error
- func (v *TransactionChainEntry) MarshalBinary() ([]byte, error)
- func (v *TransactionChainEntry) UnmarshalBinary(data []byte) error
- func (v *TransactionChainEntry) UnmarshalBinaryFrom(rd io.Reader) error
- type Updater
- type Viewer
- type VoteEntry
- func (v *VoteEntry) Copy() *VoteEntry
- func (v *VoteEntry) CopyAsInterface() interface{}
- func (v *VoteEntry) Equal(u *VoteEntry) bool
- func (v *VoteEntry) IsValid() error
- func (v *VoteEntry) MarshalBinary() ([]byte, error)
- func (v *VoteEntry) MarshalJSON() ([]byte, error)
- func (v *VoteEntry) UnmarshalBinary(data []byte) error
- func (v *VoteEntry) UnmarshalBinaryFrom(rd io.Reader) error
- func (v *VoteEntry) UnmarshalJSON(data []byte) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetSignaturesForSigner ¶ added in v1.0.0
func Restore ¶ added in v1.2.10
func Restore(db Beginner, file ioutil.SectionReader, opts *RestoreOptions) error
Types ¶
type Account ¶
type Account struct {
// contains filtered or unexported fields
}
func (*Account) AnchorChain ¶ added in v1.0.0
func (c *Account) AnchorChain(partition string) *AccountAnchorChain
func (*Account) AnchorSequenceChain ¶ added in v1.0.0
func (*Account) BptReceipt ¶ added in v1.0.0
BptReceipt builds a BPT receipt for the account.
func (*Account) ChainByName ¶ added in v1.0.0
ChainByName returns account Chain2 for the named chain, or a not found error if there is no such chain.
func (*Account) Chains ¶ added in v1.0.0
func (c *Account) Chains() values.Set[*protocol.ChainMetadata]
func (*Account) Data ¶
func (c *Account) Data() *AccountData
func (*Account) Events ¶ added in v1.2.0
func (c *Account) Events() *AccountEvents
func (*Account) GetChainByName ¶ added in v1.0.0
GetChainByName calls ChainByName and Get.
func (*Account) GetIndexChainByName ¶ added in v1.0.0
GetChainByName calls ChainByName, Index, and Get.
func (*Account) MajorBlockChain ¶ added in v1.0.0
func (*Account) ScratchChain ¶ added in v1.0.0
func (*Account) SignatureChain ¶ added in v1.0.0
func (*Account) StateReceipt ¶ added in v0.5.1
StateReceipt returns a Merkle receipt for the account state in the BPT.
func (*Account) SyntheticAnchors ¶ added in v1.0.0
func (*Account) SyntheticForAnchor ¶ added in v0.6.0
func (*Account) SyntheticSequenceChain ¶ added in v1.0.0
func (*Account) Transaction ¶ added in v1.1.0
func (c *Account) Transaction(hash [32]byte) *AccountTransaction
func (*Account) UpdatedChains ¶ added in v1.0.2
func (a *Account) UpdatedChains() ([]*protocol.BlockEntry, error)
UpdatedChains returns a block entry for every chain updated in the current database batch.
func (*Account) VerifyHash ¶ added in v1.0.0
type AccountAnchorChain ¶ added in v1.0.0
type AccountAnchorChain struct {
// contains filtered or unexported fields
}
func (*AccountAnchorChain) BPT ¶ added in v1.0.0
func (c *AccountAnchorChain) BPT() *Chain2
func (*AccountAnchorChain) Commit ¶ added in v1.0.0
func (c *AccountAnchorChain) Commit() error
func (*AccountAnchorChain) IsDirty ¶ added in v1.0.0
func (c *AccountAnchorChain) IsDirty() bool
func (*AccountAnchorChain) Key ¶ added in v1.1.1
func (c *AccountAnchorChain) Key() *record.Key
func (*AccountAnchorChain) Root ¶ added in v1.0.0
func (c *AccountAnchorChain) Root() *Chain2
func (*AccountAnchorChain) Walk ¶ added in v1.1.1
func (c *AccountAnchorChain) Walk(opts record.WalkOptions, fn record.WalkFunc) error
type AccountData ¶ added in v1.0.0
type AccountData struct {
// contains filtered or unexported fields
}
func (*AccountData) Commit ¶ added in v1.0.0
func (c *AccountData) Commit() error
func (*AccountData) IsDirty ¶ added in v1.0.0
func (c *AccountData) IsDirty() bool
func (*AccountData) Key ¶ added in v1.1.1
func (c *AccountData) Key() *record.Key
func (*AccountData) Transaction ¶ added in v1.0.0
func (c *AccountData) Transaction(entryHash [32]byte) values.Value[[32]byte]
func (*AccountData) Walk ¶ added in v1.1.1
func (c *AccountData) Walk(opts record.WalkOptions, fn record.WalkFunc) error
type AccountEvents ¶ added in v1.2.0
type AccountEvents struct {
// contains filtered or unexported fields
}
func (*AccountEvents) BPT ¶ added in v1.2.0
func (c *AccountEvents) BPT() *bpt.BPT
func (*AccountEvents) Backlog ¶ added in v1.2.0
func (c *AccountEvents) Backlog() *AccountEventsBacklog
func (*AccountEvents) Commit ¶ added in v1.2.0
func (c *AccountEvents) Commit() error
func (*AccountEvents) IsDirty ¶ added in v1.2.0
func (c *AccountEvents) IsDirty() bool
func (*AccountEvents) Key ¶ added in v1.2.0
func (c *AccountEvents) Key() *record.Key
func (*AccountEvents) Major ¶ added in v1.2.0
func (c *AccountEvents) Major() *AccountEventsMajor
func (*AccountEvents) Minor ¶ added in v1.2.0
func (c *AccountEvents) Minor() *AccountEventsMinor
func (*AccountEvents) Walk ¶ added in v1.2.0
func (c *AccountEvents) Walk(opts record.WalkOptions, fn record.WalkFunc) error
type AccountEventsBacklog ¶ added in v1.2.0
type AccountEventsBacklog struct {
// contains filtered or unexported fields
}
func (*AccountEventsBacklog) Commit ¶ added in v1.2.0
func (c *AccountEventsBacklog) Commit() error
func (*AccountEventsBacklog) Expired ¶ added in v1.2.0
func (c *AccountEventsBacklog) Expired() values.Set[*url.TxID]
func (*AccountEventsBacklog) IsDirty ¶ added in v1.2.0
func (c *AccountEventsBacklog) IsDirty() bool
func (*AccountEventsBacklog) Key ¶ added in v1.2.0
func (c *AccountEventsBacklog) Key() *record.Key
func (*AccountEventsBacklog) Walk ¶ added in v1.2.0
func (c *AccountEventsBacklog) Walk(opts record.WalkOptions, fn record.WalkFunc) error
type AccountEventsMajor ¶ added in v1.2.0
type AccountEventsMajor struct {
// contains filtered or unexported fields
}
func (*AccountEventsMajor) Blocks ¶ added in v1.2.0
func (c *AccountEventsMajor) Blocks() values.Set[uint64]
func (*AccountEventsMajor) Commit ¶ added in v1.2.0
func (c *AccountEventsMajor) Commit() error
func (*AccountEventsMajor) IsDirty ¶ added in v1.2.0
func (c *AccountEventsMajor) IsDirty() bool
func (*AccountEventsMajor) Key ¶ added in v1.2.0
func (c *AccountEventsMajor) Key() *record.Key
func (*AccountEventsMajor) Walk ¶ added in v1.2.0
func (c *AccountEventsMajor) Walk(opts record.WalkOptions, fn record.WalkFunc) error
type AccountEventsMinor ¶ added in v1.2.0
type AccountEventsMinor struct {
// contains filtered or unexported fields
}
func (*AccountEventsMinor) Blocks ¶ added in v1.2.0
func (c *AccountEventsMinor) Blocks() values.Set[uint64]
func (*AccountEventsMinor) Commit ¶ added in v1.2.0
func (c *AccountEventsMinor) Commit() error
func (*AccountEventsMinor) IsDirty ¶ added in v1.2.0
func (c *AccountEventsMinor) IsDirty() bool
func (*AccountEventsMinor) Key ¶ added in v1.2.0
func (c *AccountEventsMinor) Key() *record.Key
func (*AccountEventsMinor) Votes ¶ added in v1.2.0
func (c *AccountEventsMinor) Votes(block uint64) values.Set[*protocol.AuthoritySignature]
func (*AccountEventsMinor) Walk ¶ added in v1.2.0
func (c *AccountEventsMinor) Walk(opts record.WalkOptions, fn record.WalkFunc) error
type AccountIterator ¶ added in v1.1.1
type AccountIterator struct {
// contains filtered or unexported fields
}
func (*AccountIterator) Err ¶ added in v1.1.1
func (it *AccountIterator) Err() error
func (*AccountIterator) Next ¶ added in v1.1.1
func (it *AccountIterator) Next() bool
func (*AccountIterator) Value ¶ added in v1.2.0
func (it *AccountIterator) Value() *Account
type AccountTransaction ¶ added in v1.1.0
type AccountTransaction struct {
// contains filtered or unexported fields
}
func (*AccountTransaction) Commit ¶ added in v1.1.0
func (c *AccountTransaction) Commit() error
func (*AccountTransaction) History ¶ added in v1.1.0
func (c *AccountTransaction) History() values.Set[uint64]
func (*AccountTransaction) IsDirty ¶ added in v1.1.0
func (c *AccountTransaction) IsDirty() bool
func (*AccountTransaction) Key ¶ added in v1.1.1
func (c *AccountTransaction) Key() *record.Key
func (*AccountTransaction) Payments ¶ added in v1.1.0
func (c *AccountTransaction) Payments() values.Set[[32]byte]
func (*AccountTransaction) RecordHistory ¶ added in v1.1.0
func (c *AccountTransaction) RecordHistory(msg messaging.Message) error
RecordHistory adds the message to the signature chain and history.
func (*AccountTransaction) Signatures ¶ added in v1.1.0
func (c *AccountTransaction) Signatures() values.Set[*SignatureSetEntry]
func (*AccountTransaction) ValidatorSignatures ¶ added in v1.1.0
func (c *AccountTransaction) ValidatorSignatures() values.Set[protocol.KeySignature]
func (*AccountTransaction) Votes ¶ added in v1.1.0
func (c *AccountTransaction) Votes() values.Set[*VoteEntry]
func (*AccountTransaction) Walk ¶ added in v1.1.1
func (c *AccountTransaction) Walk(opts record.WalkOptions, fn record.WalkFunc) error
type Batch ¶
type Batch struct {
// contains filtered or unexported fields
}
func (*Batch) AccountTransaction ¶ added in v1.1.0
func (b *Batch) AccountTransaction(id *url.TxID) *AccountTransaction
func (*Batch) BptReceipt ¶ added in v0.5.1
BptReceipt builds a BPT receipt for the given key.
func (*Batch) Collect ¶ added in v1.2.10
func (batch *Batch) Collect(file io.WriteSeeker, partition *url.URL, opts *CollectOptions) error
Collect collects a snapshot of the database.
WARNING: If the batch is nested (if it is not a root batch), Collect may cause excessive memory consumption until the root batch is discarded.
func (*Batch) Commit ¶
Commit commits pending writes to the key-value store or the parent batch. Attempting to use the Batch after calling Commit or Discard will result in a panic.
func (*Batch) DeleteAccountState_TESTONLY ¶ added in v1.0.0
DeleteAccountState_TESTONLY is intended for testing purposes only. It deletes an account from the database. It will panic if the batch's store is not a key-value store.
func (*Batch) Discard ¶
func (b *Batch) Discard()
Discard discards pending writes. Attempting to use the Batch after calling Discard will result in a panic.
func (*Batch) ForEachAccount ¶ added in v1.1.0
func (*Batch) GetBptRootHash ¶ added in v1.2.6
GetBptRootHash returns the BPT root hash, after applying updates as necessary for modified accounts.
func (*Batch) GetMinorRootChainAnchor ¶ added in v0.5.1
func (*Batch) IterateAccounts ¶ added in v1.1.1
func (b *Batch) IterateAccounts() *AccountIterator
func (*Batch) SaveAccounts ¶ added in v1.0.0
func (*Batch) SetObserver ¶ added in v1.1.0
SetObserver sets the database observer.
func (*Batch) SystemData ¶ added in v1.0.0
func (c *Batch) SystemData(partition string) *SystemData
func (*Batch) Transaction ¶
func (b *Batch) Transaction(id []byte) *Transaction
Transaction returns an Transaction for the given hash.
func (*Batch) Transaction2 ¶ added in v1.1.0
func (b *Batch) Transaction2(id [32]byte) *Transaction
func (*Batch) Update ¶ added in v0.5.1
Update runs the function with a writable transaction and commits if the function succeeds.
func (*Batch) UpdatedAccounts ¶ added in v1.0.2
UpdatedAccounts returns every account updated in this database batch.
type BlockStateSynthTxnEntry ¶ added in v1.0.0
type BlockStateSynthTxnEntry struct { Account *url.URL `json:"account,omitempty" form:"account" query:"account" validate:"required"` Transaction []byte `json:"transaction,omitempty" form:"transaction" query:"transaction" validate:"required"` ChainEntry uint64 `json:"chainEntry,omitempty" form:"chainEntry" query:"chainEntry" validate:"required"` // contains filtered or unexported fields }
func (*BlockStateSynthTxnEntry) Compare ¶ added in v1.0.0
func (e *BlockStateSynthTxnEntry) Compare(f *BlockStateSynthTxnEntry) int
func (*BlockStateSynthTxnEntry) Copy ¶ added in v1.0.0
func (v *BlockStateSynthTxnEntry) Copy() *BlockStateSynthTxnEntry
func (*BlockStateSynthTxnEntry) CopyAsInterface ¶ added in v1.0.0
func (v *BlockStateSynthTxnEntry) CopyAsInterface() interface{}
func (*BlockStateSynthTxnEntry) Equal ¶ added in v1.0.0
func (v *BlockStateSynthTxnEntry) Equal(u *BlockStateSynthTxnEntry) bool
func (*BlockStateSynthTxnEntry) IsValid ¶ added in v1.0.0
func (v *BlockStateSynthTxnEntry) IsValid() error
func (*BlockStateSynthTxnEntry) MarshalBinary ¶ added in v1.0.0
func (v *BlockStateSynthTxnEntry) MarshalBinary() ([]byte, error)
func (*BlockStateSynthTxnEntry) MarshalJSON ¶ added in v1.0.0
func (v *BlockStateSynthTxnEntry) MarshalJSON() ([]byte, error)
func (*BlockStateSynthTxnEntry) UnmarshalBinary ¶ added in v1.0.0
func (v *BlockStateSynthTxnEntry) UnmarshalBinary(data []byte) error
func (*BlockStateSynthTxnEntry) UnmarshalBinaryFrom ¶ added in v1.0.0
func (v *BlockStateSynthTxnEntry) UnmarshalBinaryFrom(rd io.Reader) error
func (*BlockStateSynthTxnEntry) UnmarshalJSON ¶ added in v1.0.0
func (v *BlockStateSynthTxnEntry) UnmarshalJSON(data []byte) error
type Chain ¶
type Chain struct {
// contains filtered or unexported fields
}
Chain manages a Merkle tree (chain).
func (*Chain) AnchorAt ¶ added in v0.5.1
AnchorAt calculates the anchor of the chain at the given height.
func (*Chain) CurrentState ¶ added in v0.5.1
CurrentState returns the current state of the chain.
func (*Chain) EntryAs ¶ added in v0.5.1
func (c *Chain) EntryAs(height int64, value encoding.BinaryUnmarshaler) error
EntryAs loads and unmarshals the entry in the chain at the given height.
type Chain2 ¶ added in v1.0.0
type Chain2 struct {
// contains filtered or unexported fields
}
Chain2 is a wrapper for Chain.
func (*Chain2) EntryAs ¶ added in v1.4.0
func (c *Chain2) EntryAs(height int64, value encoding.BinaryUnmarshaler) error
EntryAs loads and unmarshals the entry in the chain at the given height.
func (*Chain2) Get ¶ added in v1.0.0
Get converts the Chain2 to a Chain, updating the account's chains index and loading the chain head.
func (*Chain2) Index ¶ added in v1.0.0
Index returns the index chain of this chain. Index will panic if called on an index chain.
func (*Chain2) Inner ¶ added in v1.0.0
func (c *Chain2) Inner() *MerkleManager
type CollectMetrics ¶ added in v1.2.0
type CollectOptions ¶ added in v1.1.1
type Database ¶
type Database struct {
// contains filtered or unexported fields
}
Database is an Accumulate database.
func OpenBadger ¶ added in v0.5.1
func OpenInMemory ¶ added in v0.5.1
func OpenLevelDB ¶ added in v1.4.0
func (*Database) Collect ¶ added in v1.1.1
func (db *Database) Collect(file io.WriteSeeker, partition *url.URL, opts *CollectOptions) error
Collect collects a snapshot of the database.
Collect is a wrapper around Batch.Collect.
func (*Database) SetObserver ¶ added in v1.1.0
SetObserver sets the database observer.
func (*Database) Store ¶ added in v1.1.1
Store returns the underlying key-value store. Store may return an error in the future.
type Hash ¶ added in v1.1.0
type Hash []byte
This Stateful Merkle Tree implementation handles 256 bit hashes
func (Hash) BinarySize ¶ added in v1.1.0
func (Hash) Combine ¶ added in v1.1.0
Combine Hash this hash (the left hash) with the given right hash to produce a new hash
func (Hash) Copy ¶ added in v1.1.0
Copy Make a copy of a Hash (so the caller cannot modify the original version)
func (Hash) MarshalBinary ¶ added in v1.1.0
func (*Hash) UnmarhsalBinary ¶ added in v1.1.0
type HashList ¶ added in v1.1.0
type HashList [][]byte
func (HashList) BinarySize ¶ added in v1.1.0
func (HashList) MarshalBinary ¶ added in v1.1.0
func (*HashList) UnmarhsalBinary ¶ added in v1.1.0
type MerkleManager ¶ added in v1.1.0
type Message ¶ added in v1.1.0
type Message struct {
// contains filtered or unexported fields
}
func (*Message) FindSigners ¶ added in v1.1.0
FindSigners return signers that are equal to or a child of the given URL. FindSigners only returns an error if the signer list cannot be retrieved. FindSigners returns nil, if no matching signers are found.
type RestoreMetrics ¶ added in v1.2.0
type RestoreMetrics struct { Records struct { Restoring int } }
type RestoreOptions ¶ added in v1.1.1
type RestoreOptions struct { BatchRecordLimit int SkipHashCheck bool Predicate func(*snapshot.RecordEntry) (bool, error) //, func() (database.Value, error) Metrics *RestoreMetrics }
type SigOrTxn ¶ added in v0.6.0
type SigOrTxn struct { Transaction *protocol.Transaction `json:"transaction,omitempty" form:"transaction" query:"transaction" validate:"required"` Signature protocol.Signature `json:"signature,omitempty" form:"signature" query:"signature" validate:"required"` Txid *url.TxID `json:"txid,omitempty" form:"txid" query:"txid" validate:"required"` // contains filtered or unexported fields }
func (*SigOrTxn) CopyAsInterface ¶ added in v0.6.0
func (v *SigOrTxn) CopyAsInterface() interface{}
func (*SigOrTxn) MarshalBinary ¶ added in v0.6.0
func (*SigOrTxn) MarshalJSON ¶ added in v0.6.0
func (*SigOrTxn) UnmarshalBinary ¶ added in v0.6.0
func (*SigOrTxn) UnmarshalBinaryFrom ¶ added in v0.6.0
func (*SigOrTxn) UnmarshalJSON ¶ added in v0.6.0
type SigSetEntry ¶ added in v1.0.0
type SigSetEntry struct { Type protocol.SignatureType `json:"type,omitempty" form:"type" query:"type" validate:"required"` KeyEntryIndex uint64 `json:"keyEntryIndex,omitempty" form:"keyEntryIndex" query:"keyEntryIndex" validate:"required"` SignatureHash [32]byte `json:"signatureHash,omitempty" form:"signatureHash" query:"signatureHash" validate:"required"` ValidatorKeyHash *[32]byte `json:"validatorKeyHash,omitempty" form:"validatorKeyHash" query:"validatorKeyHash" validate:"required"` // contains filtered or unexported fields }
func (*SigSetEntry) Compare ¶ added in v1.0.0
func (s *SigSetEntry) Compare(t *SigSetEntry) int
func (*SigSetEntry) Copy ¶ added in v1.0.0
func (v *SigSetEntry) Copy() *SigSetEntry
func (*SigSetEntry) CopyAsInterface ¶ added in v1.0.0
func (v *SigSetEntry) CopyAsInterface() interface{}
func (*SigSetEntry) Equal ¶ added in v1.0.0
func (v *SigSetEntry) Equal(u *SigSetEntry) bool
func (*SigSetEntry) IsValid ¶ added in v1.0.0
func (v *SigSetEntry) IsValid() error
func (*SigSetEntry) MarshalBinary ¶ added in v1.0.0
func (v *SigSetEntry) MarshalBinary() ([]byte, error)
func (*SigSetEntry) MarshalJSON ¶ added in v1.0.0
func (v *SigSetEntry) MarshalJSON() ([]byte, error)
func (*SigSetEntry) UnmarshalBinary ¶ added in v1.0.0
func (v *SigSetEntry) UnmarshalBinary(data []byte) error
func (*SigSetEntry) UnmarshalBinaryFrom ¶ added in v1.0.0
func (v *SigSetEntry) UnmarshalBinaryFrom(rd io.Reader) error
func (*SigSetEntry) UnmarshalJSON ¶ added in v1.0.0
func (v *SigSetEntry) UnmarshalJSON(data []byte) error
type SignatureSet ¶ added in v0.5.1
type SignatureSet struct {
// contains filtered or unexported fields
}
func (*SignatureSet) Add ¶ added in v0.5.1
Add adds a signature to the signature set. Add does nothing if the signature set already includes the signer's public key. The entry hash must refer to a signature chain entry.
func (*SignatureSet) Count ¶ added in v0.5.1
func (s *SignatureSet) Count() int
func (*SignatureSet) Entries ¶ added in v1.0.0
func (s *SignatureSet) Entries() []SigSetEntry
func (*SignatureSet) Version ¶ added in v1.0.0
func (s *SignatureSet) Version() uint64
type SignatureSetEntry ¶ added in v1.1.0
type SignatureSetEntry struct { // KeyIndex is the index of the public key entry in the signer. KeyIndex uint64 `json:"keyIndex" form:"keyIndex" query:"keyIndex" validate:"required"` // Version is the signer version. Version uint64 `json:"version,omitempty" form:"version" query:"version" validate:"required"` // Path is the authority/delegation path. Path []*url.URL `json:"path,omitempty" form:"path" query:"path" validate:"required"` // Hash is the hash of the signature. Hash [32]byte `json:"hash,omitempty" form:"hash" query:"hash" validate:"required"` // contains filtered or unexported fields }
func (*SignatureSetEntry) Copy ¶ added in v1.1.0
func (v *SignatureSetEntry) Copy() *SignatureSetEntry
func (*SignatureSetEntry) CopyAsInterface ¶ added in v1.1.0
func (v *SignatureSetEntry) CopyAsInterface() interface{}
func (*SignatureSetEntry) Equal ¶ added in v1.1.0
func (v *SignatureSetEntry) Equal(u *SignatureSetEntry) bool
func (*SignatureSetEntry) IsValid ¶ added in v1.1.0
func (v *SignatureSetEntry) IsValid() error
func (*SignatureSetEntry) MarshalBinary ¶ added in v1.1.0
func (v *SignatureSetEntry) MarshalBinary() ([]byte, error)
func (*SignatureSetEntry) MarshalJSON ¶ added in v1.1.0
func (v *SignatureSetEntry) MarshalJSON() ([]byte, error)
func (*SignatureSetEntry) PathHash ¶ added in v1.1.0
func (a *SignatureSetEntry) PathHash() [32]byte
PathHash returns a hash derived from the delegation path.
func (*SignatureSetEntry) UnmarshalBinary ¶ added in v1.1.0
func (v *SignatureSetEntry) UnmarshalBinary(data []byte) error
func (*SignatureSetEntry) UnmarshalBinaryFrom ¶ added in v1.1.0
func (v *SignatureSetEntry) UnmarshalBinaryFrom(rd io.Reader) error
func (*SignatureSetEntry) UnmarshalJSON ¶ added in v1.1.0
func (v *SignatureSetEntry) UnmarshalJSON(data []byte) error
type SparseHashList ¶ added in v1.1.0
type SparseHashList [][]byte
func (SparseHashList) BinarySize ¶ added in v1.1.0
func (l SparseHashList) BinarySize(height int64) int
func (SparseHashList) Copy ¶ added in v1.1.0
func (l SparseHashList) Copy() SparseHashList
func (SparseHashList) MarshalBinary ¶ added in v1.1.0
func (l SparseHashList) MarshalBinary(height int64) ([]byte, error)
func (*SparseHashList) UnmarshalBinary ¶ added in v1.1.0
func (l *SparseHashList) UnmarshalBinary(height int64, data []byte) error
type SystemData ¶ added in v1.0.0
type SystemData struct {
// contains filtered or unexported fields
}
func (*SystemData) Commit ¶ added in v1.0.0
func (c *SystemData) Commit() error
func (*SystemData) IsDirty ¶ added in v1.0.0
func (c *SystemData) IsDirty() bool
func (*SystemData) Key ¶ added in v1.1.1
func (c *SystemData) Key() *record.Key
func (*SystemData) SyntheticIndexIndex ¶ added in v1.0.0
func (c *SystemData) SyntheticIndexIndex(block uint64) values.Value[uint64]
func (*SystemData) Walk ¶ added in v1.1.1
func (c *SystemData) Walk(opts record.WalkOptions, fn record.WalkFunc) error
type Transaction ¶
type Transaction struct {
// contains filtered or unexported fields
}
func (*Transaction) AddSignature ¶ added in v0.5.1
func (t *Transaction) AddSignature(keyEntryIndex uint64, newSignature protocol.Signature) (int, error)
AddSignature loads the appropriate signature set and adds the signature to it.
func (*Transaction) AddSystemSignature ¶ added in v1.0.0
func (t *Transaction) AddSystemSignature(net config.NetworkUrl, newSignature protocol.Signature) (int, error)
AddSystemSignature adds a system signature to the operator signature set. AddSystemSignature panics if the signature is not a system signature.
func (*Transaction) Chains ¶ added in v1.0.0
func (c *Transaction) Chains() values.Set[*TransactionChainEntry]
func (*Transaction) Commit ¶ added in v1.0.0
func (c *Transaction) Commit() error
func (*Transaction) IsDirty ¶ added in v1.0.0
func (c *Transaction) IsDirty() bool
func (*Transaction) Key ¶ added in v1.1.1
func (c *Transaction) Key() *record.Key
func (*Transaction) Produced ¶ added in v1.0.0
func (c *Transaction) Produced() values.Set[*url.TxID]
func (*Transaction) ReadSignatures ¶ added in v0.5.1
func (t *Transaction) ReadSignatures(signer *url.URL) (*SignatureSet, error)
ReadSignatures returns a read-only signature set for the given signer.
func (*Transaction) ReadSignaturesForSigner ¶ added in v0.6.0
func (t *Transaction) ReadSignaturesForSigner(signer protocol.Signer2) (*SignatureSet, error)
SignaturesForSigner returns a read-only signature set for the given signer account.
func (*Transaction) RestoreSignatureSets ¶ added in v1.0.0
func (t *Transaction) RestoreSignatureSets(signer *url.URL, version uint64, entries []SigSetEntry) error
RestoreSignatureSets is specifically only to be used to restore a transaction's signature sets from a snapshot.
func (*Transaction) Signatures ¶ added in v0.5.1
func (t *Transaction) Signatures(signer *url.URL) (*SignatureSet, error)
Signatures returns a signature set for the given signer.
func (*Transaction) SignaturesForSigner ¶ added in v0.6.0
func (t *Transaction) SignaturesForSigner(signer protocol.Signer2) (*SignatureSet, error)
SignaturesForSigner returns a signature set for the given signer account.
func (*Transaction) Status ¶ added in v1.0.0
func (t *Transaction) Status() values.Value[*protocol.TransactionStatus]
func (*Transaction) Walk ¶ added in v1.1.1
func (c *Transaction) Walk(opts record.WalkOptions, fn record.WalkFunc) error
type TransactionChainEntry ¶ added in v1.0.0
type TransactionChainEntry struct { Account *url.URL `json:"account,omitempty" form:"account" query:"account" validate:"required"` // Chain is the name of the chain. Chain string `json:"chain,omitempty" form:"chain" query:"chain" validate:"required"` // ChainIndex is the index of the entry in the chain's index chain. ChainIndex uint64 `json:"chainIndex,omitempty" form:"chainIndex" query:"chainIndex" validate:"required"` // AnchorIndex is the index of the entry in the anchor chain's index chain. AnchorIndex uint64 `json:"anchorIndex,omitempty" form:"anchorIndex" query:"anchorIndex" validate:"required"` // contains filtered or unexported fields }
func (*TransactionChainEntry) Compare ¶ added in v1.0.0
func (e *TransactionChainEntry) Compare(f *TransactionChainEntry) int
func (*TransactionChainEntry) Copy ¶ added in v1.0.0
func (v *TransactionChainEntry) Copy() *TransactionChainEntry
func (*TransactionChainEntry) CopyAsInterface ¶ added in v1.0.0
func (v *TransactionChainEntry) CopyAsInterface() interface{}
func (*TransactionChainEntry) Equal ¶ added in v1.0.0
func (v *TransactionChainEntry) Equal(u *TransactionChainEntry) bool
func (*TransactionChainEntry) IsValid ¶ added in v1.0.0
func (v *TransactionChainEntry) IsValid() error
func (*TransactionChainEntry) MarshalBinary ¶ added in v1.0.0
func (v *TransactionChainEntry) MarshalBinary() ([]byte, error)
func (*TransactionChainEntry) UnmarshalBinary ¶ added in v1.0.0
func (v *TransactionChainEntry) UnmarshalBinary(data []byte) error
func (*TransactionChainEntry) UnmarshalBinaryFrom ¶ added in v1.0.0
func (v *TransactionChainEntry) UnmarshalBinaryFrom(rd io.Reader) error
type VoteEntry ¶ added in v1.1.0
type VoteEntry struct { // Authority is the URL of the authority. Authority *url.URL `json:"authority,omitempty" form:"authority" query:"authority" validate:"required"` // Hash is the hash of the signature. Hash [32]byte `json:"hash,omitempty" form:"hash" query:"hash" validate:"required"` // contains filtered or unexported fields }
func (*VoteEntry) CopyAsInterface ¶ added in v1.1.0
func (v *VoteEntry) CopyAsInterface() interface{}