diff options
author | Jeffrey Wilcke <jeffrey@ethereum.org> | 2016-05-26 04:40:28 +0800 |
---|---|---|
committer | Jeffrey Wilcke <jeffrey@ethereum.org> | 2016-05-26 04:40:28 +0800 |
commit | a7434fd0085f55235acea5348db0c9247e9aac10 (patch) | |
tree | 28c458737e903a3f3b0e8e9e1c90e12e207218a7 /core | |
parent | d9bb8179d39d356b38fd512f4c946f9ca1d1b6e2 (diff) | |
parent | ca18202eb9a94de1d4b51c1572fa74edfa2773bf (diff) | |
download | go-tangerine-a7434fd0085f55235acea5348db0c9247e9aac10.tar go-tangerine-a7434fd0085f55235acea5348db0c9247e9aac10.tar.gz go-tangerine-a7434fd0085f55235acea5348db0c9247e9aac10.tar.bz2 go-tangerine-a7434fd0085f55235acea5348db0c9247e9aac10.tar.lz go-tangerine-a7434fd0085f55235acea5348db0c9247e9aac10.tar.xz go-tangerine-a7434fd0085f55235acea5348db0c9247e9aac10.tar.zst go-tangerine-a7434fd0085f55235acea5348db0c9247e9aac10.zip |
Merge pull request #2614 from fjl/bad-block-report
eth: enable bad block reports
Diffstat (limited to 'core')
-rw-r--r-- | core/bad_block.go | 72 | ||||
-rw-r--r-- | core/blockchain.go | 5 | ||||
-rw-r--r-- | core/types/block.go | 6 |
3 files changed, 5 insertions, 78 deletions
diff --git a/core/bad_block.go b/core/bad_block.go deleted file mode 100644 index cd3fb575a..000000000 --- a/core/bad_block.go +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2015 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. - -package core - -import ( - "bytes" - "encoding/json" - "io/ioutil" - "net/http" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/logger" - "github.com/ethereum/go-ethereum/logger/glog" - "github.com/ethereum/go-ethereum/rlp" -) - -// DisabledBadBlockReporting can be set to prevent blocks being reported. -var DisableBadBlockReporting = true - -// ReportBlock reports the block to the block reporting tool found at -// badblocks.ethdev.com -func ReportBlock(block *types.Block, err error) { - if DisableBadBlockReporting { - return - } - - const url = "https://badblocks.ethdev.com" - - blockRlp, _ := rlp.EncodeToBytes(block) - data := map[string]interface{}{ - "block": common.Bytes2Hex(blockRlp), - "errortype": err.Error(), - "hints": map[string]interface{}{ - "receipts": "NYI", - "vmtrace": "NYI", - }, - } - jsonStr, _ := json.Marshal(map[string]interface{}{"method": "eth_badBlock", "params": []interface{}{data}, "id": "1", "jsonrpc": "2.0"}) - - req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonStr)) - req.Header.Set("Content-Type", "application/json") - - client := &http.Client{} - resp, err := client.Do(req) - if err != nil { - glog.V(logger.Error).Infoln("POST err:", err) - return - } - defer resp.Body.Close() - - if glog.V(logger.Debug) { - glog.Infoln("response Status:", resp.Status) - glog.Infoln("response Headers:", resp.Header) - body, _ := ioutil.ReadAll(resp.Body) - glog.Infoln("response Body:", string(body)) - } -} diff --git a/core/blockchain.go b/core/blockchain.go index 4598800d5..171a49e53 100644 --- a/core/blockchain.go +++ b/core/blockchain.go @@ -1117,15 +1117,12 @@ func (self *BlockChain) update() { } } -// reportBlock reports the given block and error using the canonical block -// reporting tool. Reporting the block to the service is handled in a separate -// goroutine. +// reportBlock logs a bad block error. func reportBlock(block *types.Block, err error) { if glog.V(logger.Error) { glog.Errorf("Bad block #%v (%s)\n", block.Number(), block.Hash().Hex()) glog.Errorf(" %v", err) } - go ReportBlock(block, err) } // InsertHeaderChain attempts to insert the given header chain in to the local diff --git a/core/types/block.go b/core/types/block.go index 387a063ae..37b6f3ec1 100644 --- a/core/types/block.go +++ b/core/types/block.go @@ -141,8 +141,10 @@ type Block struct { // of the chain up to and including the block. td *big.Int - // ReceivedAt is used by package eth to track block propagation time. - ReceivedAt time.Time + // These fields are used by package eth to track + // inter-peer block relay. + ReceivedAt time.Time + ReceivedFrom interface{} } // DeprecatedTd is an old relic for extracting the TD of a block. It is in the |