forked from cerc-io/plugeth
Merge pull request #19856 from karalabe/chaindb-property-fix
internal/ethapi: fix debug.chaindbProperty
This commit is contained in:
commit
e8c9579fb7
@ -44,7 +44,6 @@ import (
|
|||||||
"github.com/ethereum/go-ethereum/params"
|
"github.com/ethereum/go-ethereum/params"
|
||||||
"github.com/ethereum/go-ethereum/rlp"
|
"github.com/ethereum/go-ethereum/rlp"
|
||||||
"github.com/ethereum/go-ethereum/rpc"
|
"github.com/ethereum/go-ethereum/rpc"
|
||||||
"github.com/syndtr/goleveldb/leveldb"
|
|
||||||
"github.com/tyler-smith/go-bip39"
|
"github.com/tyler-smith/go-bip39"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -1633,22 +1632,18 @@ func NewPrivateDebugAPI(b Backend) *PrivateDebugAPI {
|
|||||||
return &PrivateDebugAPI{b: b}
|
return &PrivateDebugAPI{b: b}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ChaindbProperty returns leveldb properties of the chain database.
|
// ChaindbProperty returns leveldb properties of the key-value database.
|
||||||
func (api *PrivateDebugAPI) ChaindbProperty(property string) (string, error) {
|
func (api *PrivateDebugAPI) ChaindbProperty(property string) (string, error) {
|
||||||
ldb, ok := api.b.ChainDb().(interface {
|
|
||||||
LDB() *leveldb.DB
|
|
||||||
})
|
|
||||||
if !ok {
|
|
||||||
return "", fmt.Errorf("chaindbProperty does not work for memory databases")
|
|
||||||
}
|
|
||||||
if property == "" {
|
if property == "" {
|
||||||
property = "leveldb.stats"
|
property = "leveldb.stats"
|
||||||
} else if !strings.HasPrefix(property, "leveldb.") {
|
} else if !strings.HasPrefix(property, "leveldb.") {
|
||||||
property = "leveldb." + property
|
property = "leveldb." + property
|
||||||
}
|
}
|
||||||
return ldb.LDB().GetProperty(property)
|
return api.b.ChainDb().Stat(property)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ChaindbCompact flattens the entire key-value database into a single level,
|
||||||
|
// removing all unused slots and merging all keys.
|
||||||
func (api *PrivateDebugAPI) ChaindbCompact() error {
|
func (api *PrivateDebugAPI) ChaindbCompact() error {
|
||||||
for b := byte(0); b < 255; b++ {
|
for b := byte(0); b < 255; b++ {
|
||||||
log.Info("Compacting chain database", "range", fmt.Sprintf("0x%0.2X-0x%0.2X", b, b+1))
|
log.Info("Compacting chain database", "range", fmt.Sprintf("0x%0.2X-0x%0.2X", b, b+1))
|
||||||
|
Loading…
Reference in New Issue
Block a user