db

package
v1.0.0-rc2 Latest Latest
Warning

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

Go to latest
Published: Jun 30, 2019 License: Apache-2.0 Imports: 27 Imported by: 2

Documentation

Index

Constants

View Source
const BITSPERKEY = 10

used to compute the size of bloom filter bits array . too small will lead to high false positive rate.

Variables

View Source
var (
	AccountPrefix        = []byte{0x00}
	NanoPayPrefix        = []byte{0x01}
	NanoPayCleanupPrefix = []byte{0x02}
	NamePrefix           = []byte{0x03}
	NameRegistrantPrefix = []byte{0x04}
	PubSubPrefix         = []byte{0x05}
	PubSubCleanupPrefix  = []byte{0x06}
	IssueAssetPrefix     = []byte{0x07}
)

Functions

func NewAccount

func NewAccount(n uint64, b *balance, id []byte) *account

func NewTrieStore

func NewTrieStore(db IStore) *cachingDB

Types

type Asset

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

func (*Asset) Deserialize

func (ia *Asset) Deserialize(r io.Reader) error

func (*Asset) Empty

func (ia *Asset) Empty() bool

func (*Asset) Serialize

func (ia *Asset) Serialize(w io.Writer) error

type ChainStore

type ChainStore struct {
	States *StateDB
	// contains filtered or unexported fields
}

func NewLedgerStore

func NewLedgerStore() (*ChainStore, error)

func (*ChainStore) AddHeader

func (cs *ChainStore) AddHeader(header *block.Header) error

func (*ChainStore) CalcNextDonation

func (cs *ChainStore) CalcNextDonation(height uint32) (*Donation, error)

func (*ChainStore) Close

func (cs *ChainStore) Close()

func (*ChainStore) GenerateStateRoot

func (cs *ChainStore) GenerateStateRoot(b *block.Block, genesisBlockInitialized, needBeCommitted bool) (Uint256, error)

func (*ChainStore) GetAsset

func (cs *ChainStore) GetAsset(assetID common.Uint256) (name, symbol string, totalSupply common.Fixed64, precision uint32, err error)

func (*ChainStore) GetBalance

func (cs *ChainStore) GetBalance(addr Uint160) Fixed64

func (*ChainStore) GetBalanceByAssetID

func (cs *ChainStore) GetBalanceByAssetID(addr Uint160, assetID Uint256) Fixed64

func (*ChainStore) GetBlock

func (cs *ChainStore) GetBlock(hash Uint256) (*block.Block, error)

func (*ChainStore) GetBlockByHeight

func (cs *ChainStore) GetBlockByHeight(height uint32) (*block.Block, error)

func (*ChainStore) GetBlockHash

func (cs *ChainStore) GetBlockHash(height uint32) (Uint256, error)

func (*ChainStore) GetCurrentBlockHash

func (cs *ChainStore) GetCurrentBlockHash() Uint256

func (*ChainStore) GetCurrentBlockStateRoot

func (cs *ChainStore) GetCurrentBlockStateRoot() (Uint256, error)

func (*ChainStore) GetCurrentHeaderHash

func (cs *ChainStore) GetCurrentHeaderHash() Uint256

func (*ChainStore) GetDatabase

func (cs *ChainStore) GetDatabase() IStore

func (*ChainStore) GetDonation

func (cs *ChainStore) GetDonation() (Fixed64, error)

func (*ChainStore) GetFirstAvailableTopicBucket

func (cs *ChainStore) GetFirstAvailableTopicBucket(topic string) int

func (*ChainStore) GetHeader

func (cs *ChainStore) GetHeader(hash Uint256) (*block.Header, error)

func (*ChainStore) GetHeaderByHeight

func (cs *ChainStore) GetHeaderByHeight(height uint32) (*block.Header, error)

func (*ChainStore) GetHeaderHashByHeight

func (cs *ChainStore) GetHeaderHashByHeight(height uint32) Uint256

func (*ChainStore) GetHeaderHeight

func (cs *ChainStore) GetHeaderHeight() uint32

func (*ChainStore) GetHeaderWithCache

func (cs *ChainStore) GetHeaderWithCache(hash Uint256) (*block.Header, error)

func (*ChainStore) GetHeight

func (cs *ChainStore) GetHeight() uint32

func (*ChainStore) GetHeightByBlockHash

func (cs *ChainStore) GetHeightByBlockHash(hash Uint256) (uint32, error)

func (*ChainStore) GetID

func (cs *ChainStore) GetID(publicKey []byte) ([]byte, error)

func (*ChainStore) GetName

func (cs *ChainStore) GetName(registrant []byte) (string, error)

func (*ChainStore) GetNanoPay

func (cs *ChainStore) GetNanoPay(addr Uint160, recipient Uint160, nonce uint64) (Fixed64, uint32, error)

func (*ChainStore) GetNonce

func (cs *ChainStore) GetNonce(addr Uint160) uint64

func (*ChainStore) GetRegistrant

func (cs *ChainStore) GetRegistrant(name string) ([]byte, error)

func (*ChainStore) GetSubscribers

func (cs *ChainStore) GetSubscribers(topic string, bucket uint32) (map[string]string, error)

func (*ChainStore) GetSubscribersCount

func (cs *ChainStore) GetSubscribersCount(topic string, bucket uint32) int

func (*ChainStore) GetTopicBucketsCount

func (cs *ChainStore) GetTopicBucketsCount(topic string) (uint32, error)

func (*ChainStore) GetTransaction

func (cs *ChainStore) GetTransaction(hash Uint256) (*transaction.Transaction, error)

func (*ChainStore) InitLedgerStoreWithGenesisBlock

func (cs *ChainStore) InitLedgerStoreWithGenesisBlock(genesisBlock *block.Block) (uint32, error)

func (*ChainStore) IsBlockInStore

func (cs *ChainStore) IsBlockInStore(hash Uint256) bool

func (*ChainStore) IsDoubleSpend

func (cs *ChainStore) IsDoubleSpend(tx *transaction.Transaction) bool

func (*ChainStore) IsSubscribed

func (cs *ChainStore) IsSubscribed(topic string, bucket uint32, subscriber []byte, identifier string) (bool, error)

func (*ChainStore) IsTxHashDuplicate

func (cs *ChainStore) IsTxHashDuplicate(txhash Uint256) bool

func (*ChainStore) ResetDB

func (cs *ChainStore) ResetDB() error

func (*ChainStore) Rollback

func (cs *ChainStore) Rollback(b *block.Block) error

func (*ChainStore) SaveBlock

func (cs *ChainStore) SaveBlock(b *block.Block, fastAdd bool) error

type DataEntryPrefix

type DataEntryPrefix byte
const (
	// DATA
	DATA_BlockHash   DataEntryPrefix = 0x00
	DATA_Header      DataEntryPrefix = 0x01
	DATA_Transaction DataEntryPrefix = 0x02

	ST_Prepaid   DataEntryPrefix = 0xc7
	ST_StateTrie DataEntryPrefix = 0xc8

	//SYSTEM
	SYS_CurrentBlock DataEntryPrefix = 0x40
	SYS_Donations    DataEntryPrefix = 0x42

	//CONFIG
	CFG_Version DataEntryPrefix = 0xf0
)

type Donation

type Donation struct {
	Height uint32
	Amount Fixed64
}

func NewDonation

func NewDonation(height uint32, amount Fixed64) *Donation

func (*Donation) Deserialize

func (d *Donation) Deserialize(r io.Reader) error

func (*Donation) Serialize

func (d *Donation) Serialize(w io.Writer) error

type HeaderCache

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

func NewHeaderCache

func NewHeaderCache() *HeaderCache

func (*HeaderCache) AddHeaderToCache

func (hc *HeaderCache) AddHeaderToCache(header *block.Header)

func (*HeaderCache) Dump

func (hc *HeaderCache) Dump()

func (*HeaderCache) GetCachedHeader

func (hc *HeaderCache) GetCachedHeader(hash common.Uint256) (*block.Header, error)

func (*HeaderCache) GetCachedHeaderHashByHeight

func (hc *HeaderCache) GetCachedHeaderHashByHeight(height uint32) common.Uint256

func (*HeaderCache) GetCurrentCacheHeaderHash

func (hc *HeaderCache) GetCurrentCacheHeaderHash() common.Uint256

func (*HeaderCache) GetCurrentCachedHeight

func (hc *HeaderCache) GetCurrentCachedHeight() uint32

func (*HeaderCache) RemoveCachedHeader

func (hc *HeaderCache) RemoveCachedHeader(stopHeight uint32)

func (*HeaderCache) RollbackHeader

func (hc *HeaderCache) RollbackHeader(h *block.Header)

type IIterator

type IIterator interface {
	Next() bool
	Prev() bool
	First() bool
	Last() bool
	Seek(key []byte) bool
	Key() []byte
	Value() []byte
	Release()
}

type IStore

type IStore interface {
	Put(key []byte, value []byte) error
	Get(key []byte) ([]byte, error)
	Has(key []byte) (bool, error)
	Delete(key []byte) error
	NewBatch() error
	BatchPut(key []byte, value []byte) error
	BatchDelete(key []byte) error
	BatchCommit() error
	Close() error
	NewIterator(prefix []byte) IIterator
}

type ITrie

type ITrie interface {
	TryGet(key []byte) ([]byte, error)
	TryUpdate(key, value []byte) error
	TryDelete(key []byte) error
	Hash() Uint256
	CommitTo() (Uint256, error)
	NodeIterator(start []byte) trie.NodeIterator
}

type Iterator

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

func (*Iterator) First

func (it *Iterator) First() bool

func (*Iterator) Key

func (it *Iterator) Key() []byte

func (*Iterator) Last

func (it *Iterator) Last() bool

func (*Iterator) Next

func (it *Iterator) Next() bool

func (*Iterator) Prev

func (it *Iterator) Prev() bool

func (*Iterator) Release

func (it *Iterator) Release()

func (*Iterator) Seek

func (it *Iterator) Seek(key []byte) bool

func (*Iterator) Value

func (it *Iterator) Value() []byte

type LevelDBStore

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

func NewLevelDBStore

func NewLevelDBStore(file string) (*LevelDBStore, error)

func (*LevelDBStore) BatchCommit

func (self *LevelDBStore) BatchCommit() error

func (*LevelDBStore) BatchDelete

func (self *LevelDBStore) BatchDelete(key []byte) error

func (*LevelDBStore) BatchPut

func (self *LevelDBStore) BatchPut(key []byte, value []byte) error

func (*LevelDBStore) Close

func (self *LevelDBStore) Close() error

func (*LevelDBStore) Delete

func (self *LevelDBStore) Delete(key []byte) error

func (*LevelDBStore) Get

func (self *LevelDBStore) Get(key []byte) ([]byte, error)

func (*LevelDBStore) Has

func (self *LevelDBStore) Has(key []byte) (bool, error)

func (*LevelDBStore) NewBatch

func (self *LevelDBStore) NewBatch() error

func (*LevelDBStore) NewIterator

func (self *LevelDBStore) NewIterator(prefix []byte) IIterator

func (*LevelDBStore) Put

func (self *LevelDBStore) Put(key []byte, value []byte) error

type Operation

type Operation int
const (
	Addition Operation = iota
	Subtraction
)

type StateDB

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

func NewStateDB

func NewStateDB(root common.Uint256, db *cachingDB) (*StateDB, error)

func (*StateDB) CleanupNanoPay

func (sdb *StateDB) CleanupNanoPay(height uint32) error

func (*StateDB) CleanupPubSub

func (sdb *StateDB) CleanupPubSub(height uint32) error

func (*StateDB) Finalize

func (sdb *StateDB) Finalize(commit bool) (root common.Uint256, err error)

func (*StateDB) FinalizeAccounts

func (sdb *StateDB) FinalizeAccounts(commit bool)

func (*StateDB) FinalizeIssueAsset

func (sdb *StateDB) FinalizeIssueAsset(commit bool)

func (*StateDB) FinalizeNames

func (sdb *StateDB) FinalizeNames(commit bool)

func (*StateDB) FinalizeNanoPay

func (sdb *StateDB) FinalizeNanoPay(commit bool)

func (*StateDB) FinalizePubSub

func (sdb *StateDB) FinalizePubSub(commit bool)

func (*StateDB) GetAsset

func (sdb *StateDB) GetAsset(assetID common.Uint256) (*Asset, error)

func (*StateDB) GetBalance

func (sdb *StateDB) GetBalance(assetID common.Uint256, addr common.Uint160) common.Fixed64

func (*StateDB) GetID

func (sdb *StateDB) GetID(addr common.Uint160) []byte

func (*StateDB) GetNanoPay

func (sdb *StateDB) GetNanoPay(sender, recipient common.Uint160, nonce uint64) (common.Fixed64, uint32, error)

func (*StateDB) GetNonce

func (sdb *StateDB) GetNonce(addr common.Uint160) uint64

func (*StateDB) GetOrNewAccount

func (sdb *StateDB) GetOrNewAccount(addr common.Uint160) *account

func (*StateDB) IncrNonce

func (sdb *StateDB) IncrNonce(addr common.Uint160) error

func (*StateDB) IntermediateRoot

func (sdb *StateDB) IntermediateRoot() common.Uint256

func (*StateDB) SetAccount

func (sdb *StateDB) SetAccount(addr common.Uint160, acc *account)

func (*StateDB) SetAsset

func (sdb *StateDB) SetAsset(assetID common.Uint256, name string, symbol string, totalSupply common.Fixed64, precision uint32, owner common.Uint160) error

func (*StateDB) SetBalance

func (sdb *StateDB) SetBalance(addr common.Uint160, assetID common.Uint256, value common.Fixed64) error

func (*StateDB) SetID

func (sdb *StateDB) SetID(addr common.Uint160, id []byte) error

func (*StateDB) SetNanoPay

func (sdb *StateDB) SetNanoPay(sender, recipient common.Uint160, nonce uint64, balance common.Fixed64, expiresAt uint32) error

func (*StateDB) SetNonce

func (sdb *StateDB) SetNonce(addr common.Uint160, nonce uint64) error

func (*StateDB) UpdateBalance

func (sdb *StateDB) UpdateBalance(addr common.Uint160, assetID common.Uint256, value common.Fixed64, op Operation) error

func (*StateDB) UpdateID

func (sdb *StateDB) UpdateID(addr common.Uint160, id []byte) error

Jump to

Keyboard shortcuts

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