diff options
author | Felix Lange <fjl@twurst.com> | 2016-02-20 21:36:34 +0800 |
---|---|---|
committer | Felix Lange <fjl@twurst.com> | 2016-04-13 18:08:07 +0800 |
commit | bcd8aeefdd40174a7fb1dd320b00f090d8986f11 (patch) | |
tree | ee473034881b67166405b2c91f08b43d92788837 | |
parent | 05e257c22cbdbf689634927557bcab05f2befad0 (diff) | |
download | dexon-bcd8aeefdd40174a7fb1dd320b00f090d8986f11.tar dexon-bcd8aeefdd40174a7fb1dd320b00f090d8986f11.tar.gz dexon-bcd8aeefdd40174a7fb1dd320b00f090d8986f11.tar.bz2 dexon-bcd8aeefdd40174a7fb1dd320b00f090d8986f11.tar.lz dexon-bcd8aeefdd40174a7fb1dd320b00f090d8986f11.tar.xz dexon-bcd8aeefdd40174a7fb1dd320b00f090d8986f11.tar.zst dexon-bcd8aeefdd40174a7fb1dd320b00f090d8986f11.zip |
eth: add chaindbProperty to debug API
-rw-r--r-- | eth/api.go | 18 | ||||
-rw-r--r-- | rpc/javascript.go | 6 |
2 files changed, 24 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 { diff --git a/rpc/javascript.go b/rpc/javascript.go index d6ffcdf22..166a5289c 100644 --- a/rpc/javascript.go +++ b/rpc/javascript.go @@ -296,6 +296,12 @@ web3._extend({ params: 1 }), new web3._extend.Method({ + name: 'chaindbProperty', + call: 'debug_chaindbProperty', + params: 1, + outputFormatter: console.log + }), + new web3._extend.Method({ name: 'metrics', call: 'debug_metrics', params: 1 |