internal/ethapi: fix debug.chaindbProperty
This commit is contained in:
		@@ -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))
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user