diff options
author | Felix Lange <fjl@twurst.com> | 2016-04-13 19:05:29 +0800 |
---|---|---|
committer | Felix Lange <fjl@twurst.com> | 2016-04-13 19:05:29 +0800 |
commit | e50e3bea495d96de9e67d4e9ab6fd9a9de7ba551 (patch) | |
tree | 37f57b694f59b2de2541e69a96ae80edfaa4e263 /eth/api.go | |
parent | b34b130fb5f8de8bc875c4ddadff044a41c074b4 (diff) | |
parent | bea56d84e53c255febaad5cb26d30122d87d02d9 (diff) | |
download | dexon-e50e3bea495d96de9e67d4e9ab6fd9a9de7ba551.tar dexon-e50e3bea495d96de9e67d4e9ab6fd9a9de7ba551.tar.gz dexon-e50e3bea495d96de9e67d4e9ab6fd9a9de7ba551.tar.bz2 dexon-e50e3bea495d96de9e67d4e9ab6fd9a9de7ba551.tar.lz dexon-e50e3bea495d96de9e67d4e9ab6fd9a9de7ba551.tar.xz dexon-e50e3bea495d96de9e67d4e9ab6fd9a9de7ba551.tar.zst dexon-e50e3bea495d96de9e67d4e9ab6fd9a9de7ba551.zip |
Merge pull request #2235 from fjl/chaindb-api-and-console-fixes
eth: add chaindbProperty to debug API (+ console fixes)
Diffstat (limited to 'eth/api.go')
-rw-r--r-- | eth/api.go | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/eth/api.go b/eth/api.go index 508070646..105886752 100644 --- a/eth/api.go +++ b/eth/api.go @@ -26,6 +26,7 @@ import ( "math/big" "os" "runtime" + "strings" "sync" "time" @@ -46,6 +47,7 @@ import ( "github.com/ethereum/go-ethereum/p2p" "github.com/ethereum/go-ethereum/rlp" "github.com/ethereum/go-ethereum/rpc" + "github.com/syndtr/goleveldb/leveldb" "golang.org/x/net/context" ) @@ -1566,6 +1568,22 @@ func NewPrivateDebugAPI(config *core.ChainConfig, eth *Ethereum) *PrivateDebugAP return &PrivateDebugAPI{config: config, eth: eth} } +// ChaindbProperty returns leveldb properties of the chain database. +func (api *PrivateDebugAPI) ChaindbProperty(property string) (string, error) { + ldb, ok := api.eth.chainDb.(interface { + LDB() *leveldb.DB + }) + if !ok { + return "", fmt.Errorf("chaindbProperty does not work for memory databases") + } + if property == "" { + property = "leveldb.stats" + } else if !strings.HasPrefix(property, "leveldb.") { + property = "leveldb." + property + } + return ldb.LDB().GetProperty(property) +} + // BlockTraceResults is the returned value when replaying a block to check for // consensus results and full VM trace logs for all included transactions. type BlockTraceResult struct { |