diff --git a/consensus/ethash/api.go b/consensus/ethash/api.go
index 68b3a84b0957ae915859d642caa09ba2a03a95bf..f4d3802e0b37c1e56ed145c9e0bfc052a921f0ce 100644
--- a/consensus/ethash/api.go
+++ b/consensus/ethash/api.go
@@ -89,7 +89,7 @@ func (api *API) SubmitWork(nonce types.BlockNonce, hash, digest common.Hash) boo
 //
 // It accepts the miner hash rate and an identifier which must be unique
 // between nodes.
-func (api *API) SubmitHashRate(rate hexutil.Uint64, id common.Hash) bool {
+func (api *API) SubmitHashrate(rate hexutil.Uint64, id common.Hash) bool {
 	if api.ethash.remote == nil {
 		return false
 	}
diff --git a/consensus/ethash/ethash_test.go b/consensus/ethash/ethash_test.go
index eb3850b3b07da25ad8ae738ec2861ebbd9946be2..382eefeecf124b708398d9d9d5b7174e69d6789a 100644
--- a/consensus/ethash/ethash_test.go
+++ b/consensus/ethash/ethash_test.go
@@ -135,7 +135,7 @@ func TestRemoteSealer(t *testing.T) {
 	}
 }
 
-func TestHashRate(t *testing.T) {
+func TestHashrate(t *testing.T) {
 	var (
 		hashrate = []hexutil.Uint64{100, 200, 300}
 		expect   uint64
@@ -150,7 +150,7 @@ func TestHashRate(t *testing.T) {
 
 	api := &API{ethash}
 	for i := 0; i < len(hashrate); i += 1 {
-		if res := api.SubmitHashRate(hashrate[i], ids[i]); !res {
+		if res := api.SubmitHashrate(hashrate[i], ids[i]); !res {
 			t.Error("remote miner submit hashrate failed")
 		}
 		expect += uint64(hashrate[i])
@@ -170,7 +170,7 @@ func TestClosedRemoteSealer(t *testing.T) {
 		t.Error("expect to return an error to indicate ethash is stopped")
 	}
 
-	if res := api.SubmitHashRate(hexutil.Uint64(100), common.HexToHash("a")); res {
+	if res := api.SubmitHashrate(hexutil.Uint64(100), common.HexToHash("a")); res {
 		t.Error("expect to return false when submit hashrate to a stopped ethash")
 	}
 }
diff --git a/eth/api.go b/eth/api.go
index 53ef91392ba69c64fb5f73495db2bb2929a8f421..c2f72a1897d1d5223e3b408b432e54b7178a3dd5 100644
--- a/eth/api.go
+++ b/eth/api.go
@@ -61,11 +61,6 @@ func (api *PublicEthereumAPI) Coinbase() (common.Address, error) {
 	return api.Etherbase()
 }
 
-// Hashrate returns the POW hashrate
-func (api *PublicEthereumAPI) Hashrate() hexutil.Uint64 {
-	return hexutil.Uint64(api.e.Miner().HashRate())
-}
-
 // ChainId is the EIP-155 replay-protection chain id for the current ethereum chain config.
 func (api *PublicEthereumAPI) ChainId() (hexutil.Uint64, error) {
 	// if current block is at or past the EIP-155 replay-protection fork block, return chainID from config
@@ -149,11 +144,6 @@ func (api *PrivateMinerAPI) SetRecommitInterval(interval int) {
 	api.e.Miner().SetRecommitInterval(time.Duration(interval) * time.Millisecond)
 }
 
-// GetHashrate returns the current hashrate of the miner.
-func (api *PrivateMinerAPI) GetHashrate() uint64 {
-	return api.e.miner.HashRate()
-}
-
 // PrivateAdminAPI is the collection of Ethereum full node-related APIs
 // exposed over the private admin endpoint.
 type PrivateAdminAPI struct {
diff --git a/ethstats/ethstats.go b/ethstats/ethstats.go
index 0f386c02fdc9feaf900e2855195f8dfe564d3819..c7acb9481c547bf28878fbe97437f66df02796db 100644
--- a/ethstats/ethstats.go
+++ b/ethstats/ethstats.go
@@ -754,7 +754,7 @@ func (s *Service) reportStats(conn *connWrapper) error {
 	fullBackend, ok := s.backend.(fullNodeBackend)
 	if ok {
 		mining = fullBackend.Miner().Mining()
-		hashrate = int(fullBackend.Miner().HashRate())
+		hashrate = int(fullBackend.Miner().Hashrate())
 
 		sync := fullBackend.Downloader().Progress()
 		syncing = fullBackend.CurrentHeader().Number.Uint64() >= sync.HighestBlock
diff --git a/internal/web3ext/web3ext.go b/internal/web3ext/web3ext.go
index aba262699cfbf6d8a6dae40d93f2103008230895..e1f20ad72a845aea0d5001e7e4c24b6eae0d1656 100644
--- a/internal/web3ext/web3ext.go
+++ b/internal/web3ext/web3ext.go
@@ -138,8 +138,8 @@ web3._extend({
 			params: 3,
 		}),
 		new web3._extend.Method({
-			name: 'submitHashRate',
-			call: 'ethash_submitHashRate',
+			name: 'submitHashrate',
+			call: 'ethash_submitHashrate',
 			params: 2,
 		}),
 	]
diff --git a/miner/miner.go b/miner/miner.go
index 4d71e307a66340d0c2e99970615ec88fea0129c7..00c3d0cb5cfc9f0e51962f84265f4a09397a7718 100644
--- a/miner/miner.go
+++ b/miner/miner.go
@@ -160,7 +160,7 @@ func (miner *Miner) Mining() bool {
 	return miner.worker.isRunning()
 }
 
-func (miner *Miner) HashRate() uint64 {
+func (miner *Miner) Hashrate() uint64 {
 	if pow, ok := miner.engine.(consensus.PoW); ok {
 		return uint64(pow.Hashrate())
 	}