mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-06-09 16:31:35 +00:00
fix build
This commit is contained in:
parent
9b9143b14b
commit
f4b1790d3b
6 changed files with 13 additions and 9 deletions
|
|
@ -151,7 +151,7 @@ func convertToBinaryTrie(ctx *cli.Context) error {
|
||||||
})
|
})
|
||||||
defer destTriedb.Close()
|
defer destTriedb.Close()
|
||||||
|
|
||||||
binTrie, err := bintrie.NewBinaryTrie(types.EmptyBinaryHash, destTriedb)
|
binTrie, err := bintrie.NewBinaryTrie(types.EmptyBinaryHash, destTriedb, ctx.Int(utils.BinTrieGroupDepthFlag.Name))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to create binary trie: %w", err)
|
return fmt.Errorf("failed to create binary trie: %w", err)
|
||||||
}
|
}
|
||||||
|
|
@ -319,7 +319,7 @@ func commitBinaryTrie(bt *bintrie.BinaryTrie, currentRoot common.Hash, destDB *t
|
||||||
runtime.GC()
|
runtime.GC()
|
||||||
debug.FreeOSMemory()
|
debug.FreeOSMemory()
|
||||||
|
|
||||||
bt, err := bintrie.NewBinaryTrie(newRoot, destDB)
|
bt, err := bintrie.NewBinaryTrie(newRoot, destDB, bt.GroupDepth())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, common.Hash{}, fmt.Errorf("failed to reload binary trie: %w", err)
|
return nil, common.Hash{}, fmt.Errorf("failed to reload binary trie: %w", err)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -262,7 +262,7 @@ func (cfg BlockChainConfig) WithNoAsyncFlush(on bool) *BlockChainConfig {
|
||||||
func (cfg *BlockChainConfig) triedbConfig(isVerkle bool) *triedb.Config {
|
func (cfg *BlockChainConfig) triedbConfig(isVerkle bool) *triedb.Config {
|
||||||
config := &triedb.Config{
|
config := &triedb.Config{
|
||||||
Preimages: cfg.Preimages,
|
Preimages: cfg.Preimages,
|
||||||
IsVerkle: isVerkle,
|
IsUBT: isVerkle,
|
||||||
BinTrieGroupDepth: cfg.BinTrieGroupDepth,
|
BinTrieGroupDepth: cfg.BinTrieGroupDepth,
|
||||||
}
|
}
|
||||||
if cfg.StateScheme == rawdb.HashScheme {
|
if cfg.StateScheme == rawdb.HashScheme {
|
||||||
|
|
|
||||||
|
|
@ -96,7 +96,7 @@ func (db *UBTDatabase) ReadersWithCacheStats(stateRoot common.Hash) (Reader, Rea
|
||||||
|
|
||||||
// OpenTrie opens the main account trie at a specific root hash.
|
// OpenTrie opens the main account trie at a specific root hash.
|
||||||
func (db *UBTDatabase) OpenTrie(root common.Hash) (Trie, error) {
|
func (db *UBTDatabase) OpenTrie(root common.Hash) (Trie, error) {
|
||||||
return bintrie.NewBinaryTrie(root, db.triedb)
|
return bintrie.NewBinaryTrie(root, db.triedb, db.triedb.Config.BinTrieGroupDepth)
|
||||||
}
|
}
|
||||||
|
|
||||||
// OpenStorageTrie opens the storage trie of an account. In binary trie mode,
|
// OpenStorageTrie opens the storage trie of an account. In binary trie mode,
|
||||||
|
|
|
||||||
|
|
@ -255,7 +255,7 @@ type ubtTrieReader struct {
|
||||||
// newUBTTrieReader constructs a Unified-binary-trie reader of the specific state.
|
// newUBTTrieReader constructs a Unified-binary-trie reader of the specific state.
|
||||||
// An error will be returned if the associated trie specified by root is not existent.
|
// An error will be returned if the associated trie specified by root is not existent.
|
||||||
func newUBTTrieReader(root common.Hash, db *triedb.Database) (*ubtTrieReader, error) {
|
func newUBTTrieReader(root common.Hash, db *triedb.Database) (*ubtTrieReader, error) {
|
||||||
binTrie, binErr := bintrie.NewBinaryTrie(root, db)
|
binTrie, binErr := bintrie.NewBinaryTrie(root, db, db.Config.BinTrieGroupDepth)
|
||||||
if binErr != nil {
|
if binErr != nil {
|
||||||
return nil, binErr
|
return nil, binErr
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -113,6 +113,10 @@ type BinaryTrie struct {
|
||||||
groupDepth int // Number of levels per serialized group (1-8, default 8)
|
groupDepth int // Number of levels per serialized group (1-8, default 8)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (t *BinaryTrie) GroupDepth() int {
|
||||||
|
return t.groupDepth
|
||||||
|
}
|
||||||
|
|
||||||
// ToDot converts the binary trie to a DOT language representation. Useful for debugging.
|
// ToDot converts the binary trie to a DOT language representation. Useful for debugging.
|
||||||
func (t *BinaryTrie) ToDot() string {
|
func (t *BinaryTrie) ToDot() string {
|
||||||
t.store.computeHash(t.store.root)
|
t.store.computeHash(t.store.root)
|
||||||
|
|
|
||||||
|
|
@ -86,7 +86,7 @@ type backend interface {
|
||||||
// relevant with trie nodes and node preimages.
|
// relevant with trie nodes and node preimages.
|
||||||
type Database struct {
|
type Database struct {
|
||||||
disk ethdb.Database
|
disk ethdb.Database
|
||||||
config *Config // Configuration for trie database
|
Config *Config // Configuration for trie database
|
||||||
preimages *preimageStore // The store for caching preimages
|
preimages *preimageStore // The store for caching preimages
|
||||||
backend backend // The backend for managing trie nodes
|
backend backend // The backend for managing trie nodes
|
||||||
}
|
}
|
||||||
|
|
@ -104,7 +104,7 @@ func NewDatabase(diskdb ethdb.Database, config *Config) *Database {
|
||||||
}
|
}
|
||||||
db := &Database{
|
db := &Database{
|
||||||
disk: diskdb,
|
disk: diskdb,
|
||||||
config: config,
|
Config: config,
|
||||||
preimages: preimages,
|
preimages: preimages,
|
||||||
}
|
}
|
||||||
if config.HashDB != nil && config.PathDB != nil {
|
if config.HashDB != nil && config.PathDB != nil {
|
||||||
|
|
@ -196,7 +196,7 @@ func (db *Database) Size() (common.StorageSize, common.StorageSize, common.Stora
|
||||||
|
|
||||||
// Scheme returns the node scheme used in the database.
|
// Scheme returns the node scheme used in the database.
|
||||||
func (db *Database) Scheme() string {
|
func (db *Database) Scheme() string {
|
||||||
if db.config.PathDB != nil {
|
if db.Config.PathDB != nil {
|
||||||
return rawdb.PathScheme
|
return rawdb.PathScheme
|
||||||
}
|
}
|
||||||
return rawdb.HashScheme
|
return rawdb.HashScheme
|
||||||
|
|
@ -379,7 +379,7 @@ func (db *Database) IndexProgress() (uint64, uint64, error) {
|
||||||
|
|
||||||
// IsUBT returns the indicator if the database is holding a verkle tree.
|
// IsUBT returns the indicator if the database is holding a verkle tree.
|
||||||
func (db *Database) IsUBT() bool {
|
func (db *Database) IsUBT() bool {
|
||||||
return db.config.IsUBT
|
return db.Config.IsUBT
|
||||||
}
|
}
|
||||||
|
|
||||||
// Disk returns the underlying disk database.
|
// Disk returns the underlying disk database.
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue