database

package
v0.5.1-rc3 Latest Latest
Warning

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

Go to latest
Published: Mar 9, 2022 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Account

type Account struct {
	// contains filtered or unexported fields
}

Account manages a record.

func (*Account) Chain

func (r *Account) Chain(name string, typ protocol.ChainType) (*Chain, error)

Chain returns a chain manager for the given chain.

func (*Account) Data

func (r *Account) Data() (*Data, error)

Data returns a data chain manager for the data chain.

func (*Account) GetObject

func (r *Account) GetObject() (*protocol.ObjectMetadata, error)

GetObject loads the object metadata.

func (*Account) GetState

func (r *Account) GetState() (state.Chain, error)

GetState loads the record state.

func (*Account) GetStateAs

func (r *Account) GetStateAs(state state.Chain) error

GetStateAs loads the record state and unmarshals into the given value.

func (*Account) Index

func (r *Account) Index(key ...interface{}) *Value

Index returns a value that can read or write an index value.

func (*Account) IndexChain added in v0.5.1

func (r *Account) IndexChain(name string, major bool) (*Chain, error)

IndexChain returns a chain manager for the index chain of the given chain.

func (*Account) PutBpt

func (r *Account) PutBpt(hash [32]byte)

PutBpt writes the record's BPT entry.

func (*Account) PutState

func (r *Account) PutState(accountState state.Chain) error

PutState stores the record state and adds the record to the BPT (as a hash).

func (*Account) ReadChain

func (r *Account) ReadChain(name string) (*Chain, error)

ReadChain returns a read-only chain manager for the given chain.

func (*Account) ReadIndexChain added in v0.5.1

func (r *Account) ReadIndexChain(name string, major bool) (*Chain, error)

ReadIndexChain returns a read-only chain manager for the index chain of the given chain.

type Batch

type Batch struct {
	// contains filtered or unexported fields
}

Batch batches database writes.

func (*Batch) Account

func (b *Batch) Account(u *url.URL) *Account

Account returns an Account for the given URL.

func (*Batch) AccountByID deprecated

func (b *Batch) AccountByID(id []byte) *Account

AccountByID returns an Account for the given ID.

Deprecated: Use Account.

func (*Batch) BptRootHash

func (b *Batch) BptRootHash() []byte

BptRootHash returns the root hash of the BPT.

func (*Batch) Commit

func (b *Batch) Commit() error

Commit commits pending writes to the key-value store. Attempting to use the Batch after calling Commit will result in a panic.

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) GetMinorRootChainAnchor added in v0.5.1

func (b *Batch) GetMinorRootChainAnchor(network *config.Network) ([]byte, error)

func (*Batch) Import

func (b *Batch) Import(db interface{ Export() map[storage.Key][]byte })

Import imports values from another database.

func (*Batch) Transaction

func (b *Batch) Transaction(id []byte) *Transaction

Transaction returns a Transaction for the given transaction ID.

func (*Batch) UpdateBpt

func (b *Batch) UpdateBpt()

UpdateBpt updates the Patricia Tree hashes with the values from the updates since the last update.

type Chain

type Chain struct {
	// contains filtered or unexported fields
}

Chain manages a Merkle tree (chain).

func (*Chain) AddEntry

func (c *Chain) AddEntry(entry []byte, unique bool) error

AddEntry adds an entry to the chain

func (*Chain) Anchor

func (c *Chain) Anchor() []byte

Anchor calculates the anchor of the current Merkle state.

func (*Chain) Entries

func (c *Chain) Entries(start int64, end int64) ([][]byte, error)

Entries returns entries in the given range.

func (*Chain) Entry

func (c *Chain) Entry(height int64) ([]byte, error)

Entry loads the entry in the chain at the given height.

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.

func (*Chain) Height

func (c *Chain) Height() int64

Height returns the height of the chain.

func (*Chain) HeightOf

func (c *Chain) HeightOf(hash []byte) (int64, error)

HeightOf returns the height of the given entry in the chain.

func (*Chain) Pending

func (c *Chain) Pending() []managed.Hash

Pending returns the pending roots of the current Merkle state.

func (*Chain) Receipt

func (c *Chain) Receipt(from, to int64) (*managed.Receipt, error)

Receipt builds a receipt from one index to another

func (*Chain) State

func (c *Chain) State(height int64) (*managed.MerkleState, error)

State returns the state of the chain at the given height.

type Data

type Data struct {
	// contains filtered or unexported fields
}

Data manages a data chain.

func (*Data) Entry

func (d *Data) Entry(height int64) (*protocol.DataEntry, error)

Entry looks up an entry by its height.

func (*Data) Get

func (d *Data) Get(hash []byte) (*protocol.DataEntry, error)

Get looks up an entry by it's hash.

func (*Data) GetHashes

func (d *Data) GetHashes(start, end int64) ([][]byte, error)

GetHashes returns entry hashes in the given range

func (*Data) GetLatest

func (d *Data) GetLatest() ([]byte, *protocol.DataEntry, error)

GetLatest looks up the latest entry.

func (*Data) Height

func (d *Data) Height() int64

Height returns the number of entries.

func (*Data) Put

func (d *Data) Put(hash []byte, entry *protocol.DataEntry) error

Put adds an entry to the chain.

type Database

type Database struct {
	// contains filtered or unexported fields
}

Database is an Accumulate database.

func New

func New(store storage.KeyValueStore, logger log.Logger) *Database

New creates a new database using the given key-value store.

func Open

func Open(cfg *config.Config, logger log.Logger) (*Database, error)

Open opens a key-value store and creates a new database with it.

func OpenBadger added in v0.5.1

func OpenBadger(filepath string, logger log.Logger) (*Database, error)

func OpenEtcd added in v0.5.1

func OpenEtcd(prefix string, config *clientv3.Config, logger log.Logger) (*Database, error)

func OpenInMemory added in v0.5.1

func OpenInMemory(logger log.Logger) *Database

func (*Database) Begin

func (d *Database) Begin(writable bool) *Batch

Begin starts a new batch.

func (*Database) Close

func (d *Database) Close() error

Close closes the database and the key-value store.

func (*Database) Update added in v0.5.1

func (d *Database) Update(fn func(*Batch) error) error

Update runs the function with a writable transaction and commits if the function succeeds.

func (*Database) View added in v0.5.1

func (d *Database) View(fn func(*Batch) error) error

View runs the function with a read-only transaction.

type Transaction

type Transaction struct {
	// contains filtered or unexported fields
}

Transaction manages a transaction.

func (*Transaction) AddSignatures

func (t *Transaction) AddSignatures(newSignatures ...protocol.Signature) (count int, err error)

AddSignatures adds signatures the transaction's list of signatures.

func (*Transaction) AddSyntheticTxns

func (t *Transaction) AddSyntheticTxns(txids ...[32]byte) error

AddSyntheticTxns adds the given IDs to the list of synthetic transactions produced by the transaction.

func (*Transaction) Get

Get loads the transaction state, status, and signatures.

See GetState, GetStatus, and GetSignatures.

func (*Transaction) GetSignatures

func (t *Transaction) GetSignatures() ([]protocol.Signature, error)

GetSignatures loads the transaction's signatures.

func (*Transaction) GetState

func (t *Transaction) GetState() (*state.Transaction, error)

GetState loads the transaction state.

func (*Transaction) GetStatus

func (t *Transaction) GetStatus() (*protocol.TransactionStatus, error)

GetStatus loads the transaction state.

func (*Transaction) GetSyntheticTxns

func (t *Transaction) GetSyntheticTxns() ([][32]byte, error)

GetSyntheticTxns returns IDs of synthetic transactions produced by the transaction.

func (*Transaction) Index

func (t *Transaction) Index(key ...interface{}) *Value

Index returns a value that can read or write an index value.

func (*Transaction) Put

Put stores the transaction object metadata, state, status, and signatures. Put appends signatures and does not overwrite existing signatures.

See PutState, PutStatus, and AddSignatures.

func (*Transaction) PutState

func (t *Transaction) PutState(state *state.Transaction) error

PutState stores the transaction state and adds the transaction to the BPT (as a hash).

func (*Transaction) PutStatus

func (t *Transaction) PutStatus(status *protocol.TransactionStatus) error

PutStatus stores the transaction state.

type Value

type Value struct {
	// contains filtered or unexported fields
}

Value reads and writes a value.

func (*Value) Get

func (v *Value) Get() ([]byte, error)

Get loads the value.

func (*Value) GetAs

func (v *Value) GetAs(u encoding.BinaryUnmarshaler) error

GetAs loads the value and unmarshals it into the given value.

func (*Value) Key

func (v *Value) Key() storage.Key

Key returns the value's storage key.

func (*Value) Put

func (v *Value) Put(data []byte)

Put stores the value.

func (*Value) PutAs

func (v *Value) PutAs(u encoding.BinaryMarshaler) error

PutAs marshals the given value and stores it.

Jump to

Keyboard shortcuts

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