Use PBSS and pebble by default (#1412)

* Use pebble db and PBSS by default

* Address CR comments

* Fix failed test
This commit is contained in:
Jerry 2025-01-27 10:45:33 -08:00 committed by GitHub
parent 4ef49519f0
commit 4c6169a604
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 38 additions and 15 deletions

View file

@ -8,7 +8,8 @@ chain = "mainnet"
# vmdebug = false
datadir = "/var/lib/bor/data"
# ancient = ""
# "db.engine" = "leveldb"
# "db.engine" = "pebble"
# "state.scheme" = "path"
# keystore = "/var/lib/bor/keystore"
# "rpc.batchlimit" = 100
# "rpc.returndatalimit" = 100000

View file

@ -8,7 +8,8 @@ verbosity = 3 # Logging verbosity for the server (5=trace|4=de
vmdebug = false # Record information useful for VM and contract debugging
datadir = "var/lib/bor" # Path of the data directory to store information
ancient = "" # Data directory for ancient chain segments (default = inside chaindata)
"db.engine" = "leveldb" # Used to select leveldb or pebble as database (default = leveldb)
"db.engine" = "pebble" # Used to select leveldb or pebble as database (default = pebble)
"state.scheme" = "path" # Used to select the state scheme (default = path)
keystore = "" # Path of the directory where keystores are located
"rpc.batchlimit" = 100 # Maximum number of messages in a batch (default=100, use 0 for no limits)
"rpc.returndatalimit" = 100000 # Maximum size (in bytes) a result of an rpc request could have (default=100000, use 0 for no limits)

View file

@ -28,7 +28,7 @@ The ```bor server``` command runs the Bor client.
- ```datadir.ancient```: Data directory for ancient chain segments (default = inside chaindata)
- ```db.engine```: Backing database implementation to use ('leveldb' or 'pebble') (default: leveldb)
- ```db.engine```: Backing database implementation to use ('leveldb' or 'pebble') (default: pebble)
- ```dev```: Enable developer mode with ephemeral proof-of-authority network and a pre-funded developer account, mining enabled (default: false)
@ -84,7 +84,7 @@ The ```bor server``` command runs the Bor client.
- ```snapshot```: Enables the snapshot-database mode (default: true)
- ```state.scheme```: Scheme to use for storing ethereum state ('hash' or 'path') (default: hash)
- ```state.scheme```: Scheme to use for storing ethereum state ('hash' or 'path') (default: path)
- ```syncmode```: Blockchain sync mode (only "full" sync supported) (default: full)

View file

@ -28,6 +28,7 @@ func TestCommand_DebugBlock(t *testing.T) {
// enable archive mode for getting traces of ancient blocks
config.GcMode = "archive"
config.StateScheme = "hash"
// start the mock server
srv, err := server.CreateMockServer(config)

View file

@ -609,7 +609,7 @@ func DefaultConfig() *Config {
EnablePreimageRecording: false,
DataDir: DefaultDataDir(),
Ancient: "",
DBEngine: "leveldb",
DBEngine: "pebble",
KeyStoreDir: "",
Logging: &LoggingConfig{
Vmodule: "",
@ -647,7 +647,7 @@ func DefaultConfig() *Config {
},
SyncMode: "full",
GcMode: "full",
StateScheme: "hash",
StateScheme: "path",
Snapshot: true,
BorLogs: false,
TxPool: &TxPoolConfig{
@ -1168,6 +1168,9 @@ func (c *Config) buildEth(stack *node.Node, accountManager *accounts.Manager) (*
log.Info("Enabling recording of key preimages since archive mode is used")
}
if c.StateScheme == "path" {
return nil, fmt.Errorf("path storage scheme is not supported in archive mode, please use hash instead")
}
default:
return nil, fmt.Errorf("gcmode '%s' not found", c.GcMode)
}

View file

@ -144,3 +144,17 @@ func TestMakePasswordListFromFile(t *testing.T) {
assert.Equal(t, []string{"test1", "test2"}, result)
})
}
func TestConfigStateScheme(t *testing.T) {
config := DefaultConfig()
config.StateScheme = "path"
config.GcMode = "archive"
assert.NoError(t, config.loadChain())
_, err := config.buildNode()
assert.NoError(t, err)
_, err = config.buildEth(nil, nil)
assert.Error(t, err)
}

View file

@ -5,7 +5,8 @@ log-level = ""
vmdebug = false
datadir = "/var/lib/bor"
ancient = ""
"db.engine" = "leveldb"
"db.engine" = "pebble"
"db.scheme" = "path"
keystore = ""
"rpc.batchlimit" = 100
"rpc.returndatalimit" = 100000

View file

@ -4,7 +4,8 @@ chain = "mainnet"
# vmdebug = false
datadir = "/var/lib/bor/data"
# ancient = ""
# "db.engine" = "leveldb"
# "db.engine" = "pebble"
state.scheme = "hash"
# keystore = ""
# "rpc.batchlimit" = 100
# "rpc.returndatalimit" = 100000

View file

@ -4,7 +4,7 @@ chain = "mainnet"
# vmdebug = false
datadir = "/var/lib/bor/data"
# ancient = ""
# db.engine = "leveldb"
# db.engine = "pebble"
# keystore = ""
# "rpc.batchlimit" = 100
# "rpc.returndatalimit" = 100000

View file

@ -6,7 +6,7 @@ chain = "mainnet"
# vmdebug = false
datadir = "/var/lib/bor/data"
# ancient = ""
# db.engine = "leveldb"
# db.engine = "pebble"
# keystore = "$BOR_DIR/keystore"
# "rpc.batchlimit" = 100
# "rpc.returndatalimit" = 100000

View file

@ -6,7 +6,7 @@ chain = "mainnet"
# vmdebug = false
datadir = "/var/lib/bor/data"
# ancient = ""
# db.engine = "leveldb"
# db.engine = "pebble"
# keystore = "$BOR_DIR/keystore"
# "rpc.batchlimit" = 100
# "rpc.returndatalimit" = 100000

View file

@ -4,7 +4,8 @@ chain = "amoy"
# vmdebug = false
datadir = "/var/lib/bor/data"
# ancient = ""
# db.engine = "leveldb"
# db.engine = "pebble"
state.scheme = "hash"
# keystore = ""
# "rpc.batchlimit" = 100
# "rpc.returndatalimit" = 100000

View file

@ -4,7 +4,7 @@ chain = "amoy"
# vmdebug = false
datadir = "/var/lib/bor/data"
# ancient = ""
# db.engine = "leveldb"
# db.engine = "pebble"
# keystore = ""
# "rpc.batchlimit" = 100
# "rpc.returndatalimit" = 100000

View file

@ -6,7 +6,7 @@ chain = "amoy"
# vmdebug = false
datadir = "/var/lib/bor/data"
# ancient = ""
# db.engine = "leveldb"
# db.engine = "pebble"
# keystore = "$BOR_DIR/keystore"
# "rpc.batchlimit" = 100
# "rpc.returndatalimit" = 100000

View file

@ -6,7 +6,7 @@ chain = "amoy"
# vmdebug = false
datadir = "/var/lib/bor/data"
# ancient = ""
# db.engine = "leveldb"
# db.engine = "pebble"
# keystore = "$BOR_DIR/keystore"
# "rpc.batchlimit" = 100
# "rpc.returndatalimit" = 100000