Documentation ¶
Index ¶
- Variables
- func DeleteBlock(db typedb.KeyValueWriter, hash entity.Hash, number uint64)
- func DeleteBlockWithoutNumber(db typedb.KeyValueWriter, hash entity.Hash, number uint64)
- func DeleteBody(db typedb.KeyValueWriter, hash entity.Hash, number uint64)
- func DeleteCanonicalHash(db typedb.KeyValueWriter, number uint64)
- func DeleteHeader(db typedb.KeyValueWriter, hash entity.Hash, number uint64)
- func DeleteReceipts(db typedb.KeyValueWriter, hash entity.Hash, number uint64)
- func DeleteSkeletonHeader(db typedb.KeyValueWriter, number uint64)
- func DeleteTd(db typedb.KeyValueWriter, hash entity.Hash, number uint64)
- func DeleteTxLookupEntry(db typedb.KeyValueWriter, hash entity.Hash)
- func HasBody(db typedb.Reader, hash entity.Hash, number uint64) bool
- func HasCodeWithPrefix(db typedb.KeyValueReader, hash entity.Hash) bool
- func HasReceipts(db typedb.Reader, hash entity.Hash, number uint64) bool
- func HasTrieNode(db typedb.KeyValueReader, hash entity.Hash) bool
- func NewDatabase(db typedb.KeyValueStore) typedb.Database
- func NewDatabaseWithFreezer(db typedb.KeyValueStore, freezer string, namespace string, readonly bool) (typedb.Database, error)
- func NewFreezerTable(path, name string, disableSnappy, readonly bool) (*freezerTable, error)
- func NewLevelDBDatabase(file string, cache int, handles int, namespace string, readonly bool) (typedb.Database, error)
- func NewLevelDBDatabaseWithFreezer(file string, cache int, handles int, freezer string, namespace string, ...) (typedb.Database, error)
- func NewMemoryDatabase() typedb.Database
- func NewnofreeDatabase(db typedb.KeyValueStore) typedb.Database
- func PopUncleanShutdownMarker(db typedb.KeyValueStore)
- func PushUncleanShutdownMarker(db typedb.KeyValueStore) ([]uint64, uint64, error)
- func ReadAllHashes(db typedb.Iteratee, number uint64) []entity.Hash
- func ReadBlock(db typedb.Reader, hash entity.Hash, number uint64) *block2.Block
- func ReadBody(db typedb.Reader, hash entity.Hash, number uint64) *block2.Body
- func ReadBodyRLP(db typedb.Reader, hash entity.Hash, number uint64) rlp.RawValue
- func ReadCanonicalHash(db typedb.Reader, number uint64) entity.Hash
- func ReadChainConfig(db typedb.KeyValueReader, hash entity.Hash) *entity.ChainConfig
- func ReadCode(db typedb.KeyValueReader, hash entity.Hash) []byte
- func ReadCodeWithPrefix(db typedb.KeyValueReader, hash entity.Hash) []byte
- func ReadDatabaseVersion(db typedb.KeyValueReader) *uint64
- func ReadGenesisState(db typedb.KeyValueReader, hash entity.Hash) []byte
- func ReadHeadBlockHash(db typedb.KeyValueReader) entity.Hash
- func ReadHeadHeader(db typedb.Reader) *block2.Header
- func ReadHeadHeaderHash(db typedb.KeyValueReader) entity.Hash
- func ReadHeader(db typedb.Reader, hash entity.Hash, number uint64) *block2.Header
- func ReadHeaderNumber(db typedb.KeyValueReader, hash entity.Hash) *uint64
- func ReadHeaderRLP(db typedb.Reader, hash entity.Hash, number uint64) rlp.RawValue
- func ReadHeaderRange(db typedb.Reader, number uint64, count uint64) []rlp.RawValue
- func ReadRawReceipts(db typedb.Reader, hash entity.Hash, number uint64) block2.Receipts
- func ReadReceipts(db typedb.Reader, hash entity.Hash, number uint64, config *entity.ChainConfig) block2.Receipts
- func ReadReceiptsRLP(db typedb.Reader, hash entity.Hash, number uint64) rlp.RawValue
- func ReadSkeletonHeader(db typedb.KeyValueReader, number uint64) *block.Header
- func ReadSkeletonSyncStatus(db typedb.KeyValueReader) []byte
- func ReadTd(db typedb.Reader, hash entity.Hash, number uint64) *big.Int
- func ReadTdRLP(db typedb.Reader, hash entity.Hash, number uint64) rlp.RawValue
- func ReadTransitionStatus(db typedb.KeyValueReader) []byte
- func ReadTrieNode(db typedb.KeyValueReader, hash entity.Hash) []byte
- func UpdateUncleanShutdownMarker(db typedb.KeyValueStore)
- func WriteBlock(db typedb.KeyValueWriter, block *block2.Block)
- func WriteBody(db typedb.KeyValueWriter, hash entity.Hash, number uint64, body *block2.Body)
- func WriteBodyRLP(db typedb.KeyValueWriter, hash entity.Hash, number uint64, rlp rlp.RawValue)
- func WriteCanonicalHash(db typedb.KeyValueWriter, hash entity.Hash, number uint64)
- func WriteChainConfig(db typedb.KeyValueWriter, hash entity.Hash, cfg *entity.ChainConfig)
- func WriteCode(db typedb.KeyValueWriter, hash entity.Hash, code []byte)
- func WriteDatabaseVersion(db typedb.KeyValueWriter, version uint64)
- func WriteGenesisState(db typedb.KeyValueWriter, hash entity.Hash, data []byte)
- func WriteHeadBlockHash(db typedb.KeyValueWriter, hash entity.Hash)
- func WriteHeadHeaderHash(db typedb.KeyValueWriter, hash entity.Hash)
- func WriteHeader(db typedb.KeyValueWriter, header *block2.Header)
- func WriteHeaderNumber(db typedb.KeyValueWriter, hash entity.Hash, number uint64)
- func WriteLastPivotNumber(db typedb.KeyValueWriter, pivot uint64)
- func WritePreimages(db typedb.KeyValueWriter, preimages map[entity.Hash][]byte)
- func WriteReceipts(db typedb.KeyValueWriter, hash entity.Hash, number uint64, ...)
- func WriteSkeletonHeader(db typedb.KeyValueWriter, header *block.Header)
- func WriteSkeletonSyncStatus(db typedb.KeyValueWriter, status []byte)
- func WriteTd(db typedb.KeyValueWriter, hash entity.Hash, number uint64, td *big.Int)
- func WriteTransitionStatus(db typedb.KeyValueWriter, data []byte)
- func WriteTrieNode(db typedb.KeyValueWriter, hash entity.Hash, node []byte)
- func WriteTxLookupEntriesByBlock(db typedb.KeyValueWriter, block *block2.Block)
- type Freezer
- func (f *Freezer) Ancient(kind string, number uint64) ([]byte, error)
- func (f *Freezer) AncientDatadir() (string, error)
- func (f *Freezer) AncientRange(kind string, start, count, maxBytes uint64) ([][]byte, error)
- func (f *Freezer) AncientSize(kind string) (uint64, error)
- func (f *Freezer) Ancients() (uint64, error)
- func (f *Freezer) Close() error
- func (f *Freezer) HasAncient(kind string, number uint64) (bool, error)
- func (f *Freezer) MigrateTable(kind string, convert convertLegacyFn) error
- func (f *Freezer) ModifyAncients(fn func(typedb.AncientWriteOp) error) (writeSize int64, err error)
- func (f *Freezer) ReadAncients(fn func(typedb.AncientReaderOp) error) (err error)
- func (f *Freezer) Sync() error
- func (f *Freezer) Tail() (uint64, error)
- func (f *Freezer) TruncateHead(items uint64) error
- func (f *Freezer) TruncateTail(tail uint64) error
Constants ¶
This section is empty.
Variables ¶
var ( // SnapshotRootKey tracks the hash of the last snapshot. SnapshotRootKey = []byte("SnapshotRoot") PreimagePrefix = []byte("secure-key-") // PreimagePrefix + hash -> preimage CodePrefix = "0108" //code前缀 )
blockheader标识
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 HasCodeWithPrefix ¶
func HasCodeWithPrefix(db typedb.KeyValueReader, hash entity.Hash) bool
HasCodeWithPrefix检查数据库中是否存在与提供的代码哈希对应的合同代码。 此函数将仅使用前缀方案检查是否存在。
func HasReceipts ¶
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 ¶
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 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 ¶
ReadAllHashes检索指定给特定高度的块的所有哈希,包括规范叉和重新排序叉。
func ReadBlock ¶
ReadBlock检索与哈希相对应的整个块,并将其从存储的标头和正文中组装回来。如果无法检索标头或正文,则返回nil。 注意,由于头和块体的并发下载,头和规范哈希可以存储在数据库中,但主体数据(尚未)不能存储。
func ReadBodyRLP ¶
ReadBodyRLP检索RLP编码中的块体(事务和未结项)。
func ReadCanonicalHash ¶
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 ¶
ReadHeadHeader returns the current canonical head header.
func ReadHeadHeaderHash ¶
func ReadHeadHeaderHash(db typedb.KeyValueReader) entity.Hash
ReadHeadHeaderHash检索当前规范标头的哈希。
func ReadHeader ¶
检索与哈希对应的块头。
func ReadHeaderNumber ¶
func ReadHeaderNumber(db typedb.KeyValueReader, hash entity.Hash) *uint64
ReadHeaderNumber返回分配给哈希的标头编号。
func ReadHeaderRLP ¶
ReadHeaderRLP在其原始RLP数据库编码中检索块头。
func ReadHeaderRange ¶
ReadHeaderRange返回rlp编码的标头,从“number”开始,向后返回genesis。 此方法假设调用方已经设置了计数上限,以防止DoS问题。由于该方法在头朝向genesis模式下运行,如果缺少头(“数字”),它将返回一个空切片。 因此,调用方必须确保head('number')参数实际上是一个现有的头。 N、 B:因为输入是一个数字,而不是散列,所以这个方法只在canon头上操作。
func ReadRawReceipts ¶
ReadRawReceipts检索属于块的所有交易凭证。收据元数据字段不能保证填充,因此不应使用它们。如果需要元数据,请使用ReadReceipts。
func ReadReceipts ¶
func ReadReceipts(db typedb.Reader, hash entity.Hash, number uint64, config *entity.ChainConfig) block2.Receipts
ReadReceipts检索属于块的所有事务收据,包括其相应的元数据字段。 如果无法填充这些元数据字段,则返回nil。 当前实现通过读取收据的相应块体来填充这些元数据字段,因此,如果未找到块体,即使收据本身已存储,也将返回nil。
func ReadReceiptsRLP ¶
ReadReceiptsRLP检索属于RLP编码中的块的所有事务收据。
func ReadSkeletonHeader ¶
func ReadSkeletonHeader(db typedb.KeyValueReader, number uint64) *block.Header
ReadSkeletonHeader从骨架同步存储中检索块标头,
func ReadSkeletonSyncStatus ¶
func ReadSkeletonSyncStatus(db typedb.KeyValueReader) []byte
ReadSkeletonSyncStatus检索在关机时保存的序列化同步状态。
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 WriteBodyRLP ¶
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 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 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) AncientDatadir ¶
AncientDatadir返回古代存储的根目录路径。
func (*Freezer) AncientRange ¶
Ancentrange从索引“start”开始按顺序检索多个项目。它会回来的 -最多“最大”项, -至少1项(即使超过maxByteSize),但在其他情况下 返回尽可能多的符合maxByteSize的项目。
func (*Freezer) AncientSize ¶
AncientSize返回指定类别的古代大小。
func (*Freezer) HasAncient ¶
HasAgent返回一个指示器,指示冷冻柜中是否存在指定的古代数据。
func (*Freezer) MigrateTable ¶
MigrateTable按顺序处理给定表中的条目,如果它们是旧格式的,则将它们转换为新格式。
func (*Freezer) ModifyAncients ¶
ModifyAncients运行给定的写入操作。
func (*Freezer) ReadAncients ¶
func (f *Freezer) ReadAncients(fn func(typedb.AncientReaderOp) error) (err error)
ReadAncients运行给定的读取操作,同时确保在底层冻结器上不会发生写入操作。
func (*Freezer) TruncateHead ¶
TruncateHead丢弃任何超过所提供阈值的最近数据。
func (*Freezer) TruncateTail ¶
TruncateTail丢弃任何低于提供的阈值数的最新数据。