Skip to content

Commit 4c6169a

Browse files
authored
Use PBSS and pebble by default (#1412)
* Use pebble db and PBSS by default * Address CR comments * Fix failed test
1 parent 4ef4951 commit 4c6169a

File tree

15 files changed

+38
-15
lines changed

15 files changed

+38
-15
lines changed

builder/files/config.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ chain = "mainnet"
88
# vmdebug = false
99
datadir = "/var/lib/bor/data"
1010
# ancient = ""
11-
# "db.engine" = "leveldb"
11+
# "db.engine" = "pebble"
12+
# "state.scheme" = "path"
1213
# keystore = "/var/lib/bor/keystore"
1314
# "rpc.batchlimit" = 100
1415
# "rpc.returndatalimit" = 100000

docs/cli/example_config.toml

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

docs/cli/server.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ The ```bor server``` command runs the Bor client.
2828

2929
- ```datadir.ancient```: Data directory for ancient chain segments (default = inside chaindata)
3030

31-
- ```db.engine```: Backing database implementation to use ('leveldb' or 'pebble') (default: leveldb)
31+
- ```db.engine```: Backing database implementation to use ('leveldb' or 'pebble') (default: pebble)
3232

3333
- ```dev```: Enable developer mode with ephemeral proof-of-authority network and a pre-funded developer account, mining enabled (default: false)
3434

@@ -84,7 +84,7 @@ The ```bor server``` command runs the Bor client.
8484

8585
- ```snapshot```: Enables the snapshot-database mode (default: true)
8686

87-
- ```state.scheme```: Scheme to use for storing ethereum state ('hash' or 'path') (default: hash)
87+
- ```state.scheme```: Scheme to use for storing ethereum state ('hash' or 'path') (default: path)
8888

8989
- ```syncmode```: Blockchain sync mode (only "full" sync supported) (default: full)
9090

internal/cli/debug_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ func TestCommand_DebugBlock(t *testing.T) {
2828

2929
// enable archive mode for getting traces of ancient blocks
3030
config.GcMode = "archive"
31+
config.StateScheme = "hash"
3132

3233
// start the mock server
3334
srv, err := server.CreateMockServer(config)

internal/cli/server/config.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -609,7 +609,7 @@ func DefaultConfig() *Config {
609609
EnablePreimageRecording: false,
610610
DataDir: DefaultDataDir(),
611611
Ancient: "",
612-
DBEngine: "leveldb",
612+
DBEngine: "pebble",
613613
KeyStoreDir: "",
614614
Logging: &LoggingConfig{
615615
Vmodule: "",
@@ -647,7 +647,7 @@ func DefaultConfig() *Config {
647647
},
648648
SyncMode: "full",
649649
GcMode: "full",
650-
StateScheme: "hash",
650+
StateScheme: "path",
651651
Snapshot: true,
652652
BorLogs: false,
653653
TxPool: &TxPoolConfig{
@@ -1168,6 +1168,9 @@ func (c *Config) buildEth(stack *node.Node, accountManager *accounts.Manager) (*
11681168

11691169
log.Info("Enabling recording of key preimages since archive mode is used")
11701170
}
1171+
if c.StateScheme == "path" {
1172+
return nil, fmt.Errorf("path storage scheme is not supported in archive mode, please use hash instead")
1173+
}
11711174
default:
11721175
return nil, fmt.Errorf("gcmode '%s' not found", c.GcMode)
11731176
}

internal/cli/server/config_test.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,3 +144,17 @@ func TestMakePasswordListFromFile(t *testing.T) {
144144
assert.Equal(t, []string{"test1", "test2"}, result)
145145
})
146146
}
147+
148+
func TestConfigStateScheme(t *testing.T) {
149+
config := DefaultConfig()
150+
config.StateScheme = "path"
151+
config.GcMode = "archive"
152+
153+
assert.NoError(t, config.loadChain())
154+
155+
_, err := config.buildNode()
156+
assert.NoError(t, err)
157+
158+
_, err = config.buildEth(nil, nil)
159+
assert.Error(t, err)
160+
}

internal/cli/server/testdata/default.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ log-level = ""
55
vmdebug = false
66
datadir = "/var/lib/bor"
77
ancient = ""
8-
"db.engine" = "leveldb"
8+
"db.engine" = "pebble"
9+
"db.scheme" = "path"
910
keystore = ""
1011
"rpc.batchlimit" = 100
1112
"rpc.returndatalimit" = 100000

packaging/templates/mainnet-v1/archive/config.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ chain = "mainnet"
44
# vmdebug = false
55
datadir = "/var/lib/bor/data"
66
# ancient = ""
7-
# "db.engine" = "leveldb"
7+
# "db.engine" = "pebble"
8+
state.scheme = "hash"
89
# keystore = ""
910
# "rpc.batchlimit" = 100
1011
# "rpc.returndatalimit" = 100000

packaging/templates/mainnet-v1/sentry/sentry/bor/config.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ chain = "mainnet"
44
# vmdebug = false
55
datadir = "/var/lib/bor/data"
66
# ancient = ""
7-
# db.engine = "leveldb"
7+
# db.engine = "pebble"
88
# keystore = ""
99
# "rpc.batchlimit" = 100
1010
# "rpc.returndatalimit" = 100000

packaging/templates/mainnet-v1/sentry/validator/bor/config.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ chain = "mainnet"
66
# vmdebug = false
77
datadir = "/var/lib/bor/data"
88
# ancient = ""
9-
# db.engine = "leveldb"
9+
# db.engine = "pebble"
1010
# keystore = "$BOR_DIR/keystore"
1111
# "rpc.batchlimit" = 100
1212
# "rpc.returndatalimit" = 100000

0 commit comments

Comments
 (0)