rawdb

package
v0.0.0-...-de85661 Latest Latest
Warning

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

Go to latest
Published: Aug 3, 2022 License: Unlicense Imports: 26 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (

	// SnapshotRootKey tracks the hash of the last snapshot.
	SnapshotRootKey = []byte("SnapshotRoot")

	PreimagePrefix = []byte("secure-key-") // PreimagePrefix + hash -> preimage

	CodePrefix = "0108" //code前缀

)

blockheader标识

View Source
var FreezerNoSnappy = map[string]bool{
	// contains filtered or unexported fields
}

冻结应用程序配置是否为旧表禁用压缩。哈希和困难不能很好地压缩。

Functions

func DeleteBlock

func DeleteBlock(db typedb.KeyValueWriter, hash entity.Hash, number uint64)

DeleteBlock删除与哈希关联的所有块数据。

func DeleteBlockWithoutNumber

func DeleteBlockWithoutNumber(db typedb.KeyValueWriter, hash entity.Hash, number uint64)

DeleteBlockWithoutNumber删除与哈希关联的所有块数据,但哈希到数字的映射除外。

func DeleteBody

func DeleteBody(db typedb.KeyValueWriter, hash entity.Hash, number uint64)

DeleteBody删除与哈希关联的所有块体数据。

func DeleteCanonicalHash

func DeleteCanonicalHash(db typedb.KeyValueWriter, number uint64)

DeleteCanonicalHash删除数字到哈希规范映射。

func DeleteHeader

func DeleteHeader(db typedb.KeyValueWriter, hash entity.Hash, number uint64)

DeleteHeader删除与哈希关联的所有块头数据。

func DeleteReceipts

func DeleteReceipts(db typedb.KeyValueWriter, hash entity.Hash, number uint64)

DeleteReceipts删除与块哈希关联的所有收据数据。

func DeleteSkeletonHeader

func DeleteSkeletonHeader(db typedb.KeyValueWriter, number uint64)

DeleteSkeletonHeader 删除与哈希相关的所有块头数据。

func DeleteTd

func DeleteTd(db typedb.KeyValueWriter, hash entity.Hash, number uint64)

DeleteTd删除与哈希关联的所有块总难度数据。

func DeleteTxLookupEntry

func DeleteTxLookupEntry(db typedb.KeyValueWriter, hash entity.Hash)

DeleteTxLookupEntry删除与哈希相关的所有事务数据。

func HasBody

func HasBody(db typedb.Reader, hash entity.Hash, number uint64) bool

HasBody验证是否存在与哈希对应的块体。

func HasCodeWithPrefix

func HasCodeWithPrefix(db typedb.KeyValueReader, hash entity.Hash) bool

HasCodeWithPrefix检查数据库中是否存在与提供的代码哈希对应的合同代码。 此函数将仅使用前缀方案检查是否存在。

func HasReceipts

func HasReceipts(db typedb.Reader, hash entity.Hash, number uint64) bool

HasReceives验证是否存在属于某个块的所有交易凭证。

func HasTrieNode

func HasTrieNode(db typedb.KeyValueReader, hash entity.Hash) bool

hastreenode检查数据库中是否存在具有所提供哈希的trie节点。

func NewDatabase

func NewDatabase(db typedb.KeyValueStore) typedb.Database

NewDatabase在给定的键值数据存储上创建一个高级数据库,而无需将不可变的链段移动到冷藏库中。

func NewDatabaseWithFreezer

func NewDatabaseWithFreezer(db typedb.KeyValueStore, freezer string, namespace string, readonly bool) (typedb.Database, error)

NewDatabaseWithFriezer在给定的键值数据存储上创建一个高级数据库,通过一个冷冻库将不变的链段移动到冷藏库中。

func NewFreezerTable

func NewFreezerTable(path, name string, disableSnappy, readonly bool) (*freezerTable, error)

NewFreezerTable将给定路径作为冻结表打开。

func NewLevelDBDatabase

func NewLevelDBDatabase(file string, cache int, handles int, namespace string, readonly bool) (typedb.Database, error)

NewLevelDBDatabase创建了一个持久的键值数据库,而无需将不可变的链段移动到冷藏库中。

func NewLevelDBDatabaseWithFreezer

func NewLevelDBDatabaseWithFreezer(file string, cache int, handles int, freezer string, namespace string, readonly bool) (typedb.Database, error)

NewLevelDBDatabaseWithFriezer创建一个持久的键值数据库,其中一个冷冻库将不可变的链段移动到冷藏库中。

func NewMemoryDatabase

func NewMemoryDatabase() typedb.Database

NewMemoryDatabase创建了一个短暂的内存键值数据库

func NewnofreeDatabase

func NewnofreeDatabase(db typedb.KeyValueStore) typedb.Database

NewDatabase在给定的键值数据存储上创建一个高级数据库

func PopUncleanShutdownMarker

func PopUncleanShutdownMarker(db typedb.KeyValueStore)

PopUncleanShutdownMarker removes the last unclean shutdown marker

func PushUncleanShutdownMarker

func PushUncleanShutdownMarker(db typedb.KeyValueStore) ([]uint64, uint64, error)

PushUncleanShutdownMarker appends a new unclean shutdown marker and returns the previous data - a list of timestamps - a count of how many old unclean-shutdowns have been discarded

func ReadAllHashes

func ReadAllHashes(db typedb.Iteratee, number uint64) []entity.Hash

ReadAllHashes检索指定给特定高度的块的所有哈希,包括规范叉和重新排序叉。

func ReadBlock

func ReadBlock(db typedb.Reader, hash entity.Hash, number uint64) *block2.Block

ReadBlock检索与哈希相对应的整个块,并将其从存储的标头和正文中组装回来。如果无法检索标头或正文,则返回nil。 注意,由于头和块体的并发下载,头和规范哈希可以存储在数据库中,但主体数据(尚未)不能存储。

func ReadBody

func ReadBody(db typedb.Reader, hash entity.Hash, number uint64) *block2.Body

检索与哈希对应的body

func ReadBodyRLP

func ReadBodyRLP(db typedb.Reader, hash entity.Hash, number uint64) rlp.RawValue

ReadBodyRLP检索RLP编码中的块体(事务和未结项)。

func ReadCanonicalHash

func ReadCanonicalHash(db typedb.Reader, number uint64) entity.Hash

ReadCanonicalHash检索分配给规范块号的哈希。

func ReadChainConfig

func ReadChainConfig(db typedb.KeyValueReader, hash entity.Hash) *entity.ChainConfig

ReadChainConfig retrieves the consensus settings based on the given genesis hash.

func ReadCode

func ReadCode(db typedb.KeyValueReader, hash entity.Hash) []byte

ReadCode检索所提供代码哈希的合同代码。

func ReadCodeWithPrefix

func ReadCodeWithPrefix(db typedb.KeyValueReader, hash entity.Hash) []byte

ReadCodeWithPrefix检索所提供代码哈希的合同代码。 此函数与ReadCode之间的主要区别在于,此函数仅检查最新方案(带前缀)的存在性。

func ReadDatabaseVersion

func ReadDatabaseVersion(db typedb.KeyValueReader) *uint64

ReadDatabaseVersion retrieves the version number of the database.

func ReadGenesisState

func ReadGenesisState(db typedb.KeyValueReader, hash entity.Hash) []byte

ReadGenesisState retrieves the genesis state based on the given genesis hash.

func ReadHeadBlockHash

func ReadHeadBlockHash(db typedb.KeyValueReader) entity.Hash

ReadHeadBlockHash检索当前规范头块的哈希。

func ReadHeadHeader

func ReadHeadHeader(db typedb.Reader) *block2.Header

ReadHeadHeader returns the current canonical head header.

func ReadHeadHeaderHash

func ReadHeadHeaderHash(db typedb.KeyValueReader) entity.Hash

ReadHeadHeaderHash检索当前规范标头的哈希。

func ReadHeader

func ReadHeader(db typedb.Reader, hash entity.Hash, number uint64) *block2.Header

检索与哈希对应的块头。

func ReadHeaderNumber

func ReadHeaderNumber(db typedb.KeyValueReader, hash entity.Hash) *uint64

ReadHeaderNumber返回分配给哈希的标头编号。

func ReadHeaderRLP

func ReadHeaderRLP(db typedb.Reader, hash entity.Hash, number uint64) rlp.RawValue

ReadHeaderRLP在其原始RLP数据库编码中检索块头。

func ReadHeaderRange

func ReadHeaderRange(db typedb.Reader, number uint64, count uint64) []rlp.RawValue

ReadHeaderRange返回rlp编码的标头,从“number”开始,向后返回genesis。 此方法假设调用方已经设置了计数上限,以防止DoS问题。由于该方法在头朝向genesis模式下运行,如果缺少头(“数字”),它将返回一个空切片。 因此,调用方必须确保head('number')参数实际上是一个现有的头。 N、 B:因为输入是一个数字,而不是散列,所以这个方法只在canon头上操作。

func ReadRawReceipts

func ReadRawReceipts(db typedb.Reader, hash entity.Hash, number uint64) block2.Receipts

ReadRawReceipts检索属于块的所有交易凭证。收据元数据字段不能保证填充,因此不应使用它们。如果需要元数据,请使用ReadReceipts。

func ReadReceipts

func ReadReceipts(db typedb.Reader, hash entity.Hash, number uint64, config *entity.ChainConfig) block2.Receipts

ReadReceipts检索属于块的所有事务收据,包括其相应的元数据字段。 如果无法填充这些元数据字段,则返回nil。 当前实现通过读取收据的相应块体来填充这些元数据字段,因此,如果未找到块体,即使收据本身已存储,也将返回nil。

func ReadReceiptsRLP

func ReadReceiptsRLP(db typedb.Reader, hash entity.Hash, number uint64) rlp.RawValue

ReadReceiptsRLP检索属于RLP编码中的块的所有事务收据。

func ReadSkeletonHeader

func ReadSkeletonHeader(db typedb.KeyValueReader, number uint64) *block.Header

ReadSkeletonHeader从骨架同步存储中检索块标头,

func ReadSkeletonSyncStatus

func ReadSkeletonSyncStatus(db typedb.KeyValueReader) []byte

ReadSkeletonSyncStatus检索在关机时保存的序列化同步状态。

func ReadTd

func ReadTd(db typedb.Reader, hash entity.Hash, number uint64) *big.Int

ReadTd检索与哈希对应的块的总难度。

func ReadTdRLP

func ReadTdRLP(db typedb.Reader, hash entity.Hash, number uint64) rlp.RawValue

ReadTdRLP检索与RLP编码中的哈希对应的块的总难度。

func ReadTransitionStatus

func ReadTransitionStatus(db typedb.KeyValueReader) []byte

ReadTransitionStatus retrieves the eth2 transition status from the database

func ReadTrieNode

func ReadTrieNode(db typedb.KeyValueReader, hash entity.Hash) []byte

ReadTrieNode检索所提供哈希的trie节点。

func UpdateUncleanShutdownMarker

func UpdateUncleanShutdownMarker(db typedb.KeyValueStore)

UpdateUncleanShutdownMarker updates the last marker's timestamp to now.

func WriteBlock

func WriteBlock(db typedb.KeyValueWriter, block *block2.Block)

func WriteBody

func WriteBody(db typedb.KeyValueWriter, hash entity.Hash, number uint64, body *block2.Body)

body新增到数据库

func WriteBodyRLP

func WriteBodyRLP(db typedb.KeyValueWriter, hash entity.Hash, number uint64, rlp rlp.RawValue)

WriteBodyRLP将RLP编码的块体存储到数据库中。

func WriteCanonicalHash

func WriteCanonicalHash(db typedb.KeyValueWriter, hash entity.Hash, number uint64)

WriteCanonicalHash存储分配给规范块号的哈希。

func WriteChainConfig

func WriteChainConfig(db typedb.KeyValueWriter, hash entity.Hash, cfg *entity.ChainConfig)

WriteChainConfig writes the chain config settings to the database.

func WriteCode

func WriteCode(db typedb.KeyValueWriter, hash entity.Hash, code []byte)

WriteCode写入提供的合同代码数据库。

func WriteDatabaseVersion

func WriteDatabaseVersion(db typedb.KeyValueWriter, version uint64)

WriteDatabaseVersion stores the version number of the database

func WriteGenesisState

func WriteGenesisState(db typedb.KeyValueWriter, hash entity.Hash, data []byte)

WriteGenesisState将genesis状态写入磁盘。

func WriteHeadBlockHash

func WriteHeadBlockHash(db typedb.KeyValueWriter, hash entity.Hash)

WriteHeadBlockHash存储头块的哈希。

func WriteHeadHeaderHash

func WriteHeadHeaderHash(db typedb.KeyValueWriter, hash entity.Hash)

WriteHeaderHash存储当前规范标头的哈希。

func WriteHeader

func WriteHeader(db typedb.KeyValueWriter, header *block2.Header)

header新增到数据库

func WriteHeaderNumber

func WriteHeaderNumber(db typedb.KeyValueWriter, hash entity.Hash, number uint64)

WriteHeaderNumber存储哈希->数字映射。

func WriteLastPivotNumber

func WriteLastPivotNumber(db typedb.KeyValueWriter, pivot uint64)

WriteLastPivotNumber存储最后一个数据透视块的编号。

func WritePreimages

func WritePreimages(db typedb.KeyValueWriter, preimages map[entity.Hash][]byte)

WritePreimages writes the provided set of preimages to the database.

func WriteReceipts

func WriteReceipts(db typedb.KeyValueWriter, hash entity.Hash, number uint64, receipts block2.Receipts)

收据新增到数据库

func WriteSkeletonHeader

func WriteSkeletonHeader(db typedb.KeyValueWriter, header *block.Header)

WriteSkeletonHeader将块头存储到骨架同步存储中。

func WriteSkeletonSyncStatus

func WriteSkeletonSyncStatus(db typedb.KeyValueWriter, status []byte)

WriteSkeletonSyncStatus存储要在关机时保存的序列化同步状态。

func WriteTd

func WriteTd(db typedb.KeyValueWriter, hash entity.Hash, number uint64, td *big.Int)

td新增到数据库

func WriteTransitionStatus

func WriteTransitionStatus(db typedb.KeyValueWriter, data []byte)

WriteTransitionStatus stores the eth2 transition status to the database

func WriteTrieNode

func WriteTrieNode(db typedb.KeyValueWriter, hash entity.Hash, node []byte)

WriteTrieNode写入提供的trie节点数据库。

func WriteTxLookupEntriesByBlock

func WriteTxLookupEntriesByBlock(db typedb.KeyValueWriter, block *block2.Block)

WriteTxLookupEntriesByBlock为块中的每个事务存储位置元数据,支持基于哈希的事务和收据查找。

Types

type Freezer

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

冷冻库是一个内存映射的仅附加数据库,用于将不可变的有序数据存储到平面文件中:-仅附加的特性确保磁盘写入最小化。 -内存映射确保我们可以最大限度地利用系统内存进行缓存,而无需为go ethereum保留内存。这还将减少Geth的内存需求,从而减少GC开销。

func NewFreezer

func NewFreezer(datadir string, namespace string, readonly bool, maxTableSize uint32, tables map[string]bool) (*Freezer, error)

NewFreezer创建一个冻结器实例,用于根据给定的参数维护不可变的有序数据。 “tables”参数定义数据表。如果映射项的值为true,则会对表禁用snappy压缩。

func (*Freezer) Ancient

func (f *Freezer) Ancient(kind string, number uint64) ([]byte, error)

古代从只附加不可变文件中检索古代二进制blob。

func (*Freezer) AncientDatadir

func (f *Freezer) AncientDatadir() (string, error)

AncientDatadir返回古代存储的根目录路径。

func (*Freezer) AncientRange

func (f *Freezer) AncientRange(kind string, start, count, maxBytes uint64) ([][]byte, error)

Ancentrange从索引“start”开始按顺序检索多个项目。它会回来的 -最多“最大”项, -至少1项(即使超过maxByteSize),但在其他情况下 返回尽可能多的符合maxByteSize的项目。

func (*Freezer) AncientSize

func (f *Freezer) AncientSize(kind string) (uint64, error)

AncientSize返回指定类别的古代大小。

func (*Freezer) Ancients

func (f *Freezer) Ancients() (uint64, error)

古人返回冻结物品的长度。

func (*Freezer) Close

func (f *Freezer) Close() error

Close终止链冻结器,取消映射所有数据文件。

func (*Freezer) HasAncient

func (f *Freezer) HasAncient(kind string, number uint64) (bool, error)

HasAgent返回一个指示器,指示冷冻柜中是否存在指定的古代数据。

func (*Freezer) MigrateTable

func (f *Freezer) MigrateTable(kind string, convert convertLegacyFn) error

MigrateTable按顺序处理给定表中的条目,如果它们是旧格式的,则将它们转换为新格式。

func (*Freezer) ModifyAncients

func (f *Freezer) ModifyAncients(fn func(typedb.AncientWriteOp) error) (writeSize int64, err error)

ModifyAncients运行给定的写入操作。

func (*Freezer) ReadAncients

func (f *Freezer) ReadAncients(fn func(typedb.AncientReaderOp) error) (err error)

ReadAncients运行给定的读取操作,同时确保在底层冻结器上不会发生写入操作。

func (*Freezer) Sync

func (f *Freezer) Sync() error

同步将所有数据表刷新到磁盘。

func (*Freezer) Tail

func (f *Freezer) Tail() (uint64, error)

Tail返回冷冻柜中第一个存储的项目数。

func (*Freezer) TruncateHead

func (f *Freezer) TruncateHead(items uint64) error

TruncateHead丢弃任何超过所提供阈值的最近数据。

func (*Freezer) TruncateTail

func (f *Freezer) TruncateTail(tail uint64) error

TruncateTail丢弃任何低于提供的阈值数的最新数据。

Jump to

Keyboard shortcuts

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