Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Geth-Modification
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张蕾
Geth-Modification
Commits
702bef84
Unverified
Commit
702bef84
authored
Apr 06, 2017
by
Péter Szilágyi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
cmd/geth, eth: drop bad block reporting, its offline anyway
parent
d83a9a8f
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
2 additions
and
96 deletions
+2
-96
main.go
cmd/geth/main.go
+0
-6
bad_block.go
eth/bad_block.go
+0
-73
handler.go
eth/handler.go
+2
-17
No files found.
cmd/geth/main.go
View file @
702bef84
...
...
@@ -165,12 +165,6 @@ func init() {
// Start system runtime metrics collection
go
metrics
.
CollectProcessMetrics
(
3
*
time
.
Second
)
// This should be the only place where reporting is enabled
// because it is not intended to run while testing.
// In addition to this check, bad block reports are sent only
// for chains with the main network genesis block and network id 1.
eth
.
EnableBadBlockReporting
=
true
utils
.
SetupNetwork
(
ctx
)
return
nil
}
...
...
eth/bad_block.go
deleted
100644 → 0
View file @
d83a9a8f
// Copyright 2016 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
eth
import
(
"bytes"
"encoding/json"
"fmt"
"net/http"
"time"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/log"
"github.com/ethereum/go-ethereum/rlp"
)
const
(
// The Ethereum main network genesis block.
defaultGenesisHash
=
"0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3"
badBlocksURL
=
"https://badblocks.ethdev.com"
)
var
EnableBadBlockReporting
=
false
func
sendBadBlockReport
(
block
*
types
.
Block
,
err
error
)
{
if
!
EnableBadBlockReporting
{
return
}
var
(
blockRLP
,
_
=
rlp
.
EncodeToBytes
(
block
)
params
=
map
[
string
]
interface
{}{
"block"
:
common
.
Bytes2Hex
(
blockRLP
),
"blockHash"
:
block
.
Hash
()
.
Hex
(),
"errortype"
:
err
.
Error
(),
"client"
:
"go"
,
}
)
if
!
block
.
ReceivedAt
.
IsZero
()
{
params
[
"receivedAt"
]
=
block
.
ReceivedAt
.
UTC
()
.
String
()
}
if
p
,
ok
:=
block
.
ReceivedFrom
.
(
*
peer
);
ok
{
params
[
"receivedFrom"
]
=
map
[
string
]
interface
{}{
"enode"
:
fmt
.
Sprintf
(
"enode://%x@%v"
,
p
.
ID
(),
p
.
RemoteAddr
()),
"name"
:
p
.
Name
(),
"protocolVersion"
:
p
.
version
,
}
}
jsonStr
,
_
:=
json
.
Marshal
(
map
[
string
]
interface
{}{
"method"
:
"eth_badBlock"
,
"id"
:
"1"
,
"jsonrpc"
:
"2.0"
,
"params"
:
[]
interface
{}{
params
}})
client
:=
http
.
Client
{
Timeout
:
8
*
time
.
Second
}
resp
,
err
:=
client
.
Post
(
badBlocksURL
,
"application/json"
,
bytes
.
NewReader
(
jsonStr
))
if
err
!=
nil
{
log
.
Debug
(
"Failed to report bad block"
,
"err"
,
err
)
return
}
log
.
Debug
(
"Bad block report posted"
,
"status"
,
resp
.
StatusCode
)
resp
.
Body
.
Close
()
}
eth/handler.go
View file @
702bef84
...
...
@@ -92,8 +92,6 @@ type ProtocolManager struct {
// wait group is used for graceful shutdowns during downloading
// and processing
wg
sync
.
WaitGroup
badBlockReportingEnabled
bool
}
// NewProtocolManager returns a new ethereum sub protocol manager. The Ethereum sub protocol manages peers capable
...
...
@@ -163,7 +161,7 @@ func NewProtocolManager(config *params.ChainConfig, fastSync bool, networkId int
// Construct the different synchronisation mechanisms
manager
.
downloader
=
downloader
.
New
(
downloader
.
FullSync
,
chaindb
,
manager
.
eventMux
,
blockchain
.
HasHeader
,
blockchain
.
HasBlockAndState
,
blockchain
.
GetHeaderByHash
,
blockchain
.
GetBlockByHash
,
blockchain
.
CurrentHeader
,
blockchain
.
CurrentBlock
,
blockchain
.
CurrentFastBlock
,
blockchain
.
FastSyncCommitHead
,
blockchain
.
GetTdByHash
,
blockchain
.
InsertHeaderChain
,
manager
.
i
nsertChain
,
blockchain
.
InsertReceiptChain
,
blockchain
.
Rollback
,
blockchain
.
GetTdByHash
,
blockchain
.
InsertHeaderChain
,
manager
.
blockchain
.
I
nsertChain
,
blockchain
.
InsertReceiptChain
,
blockchain
.
Rollback
,
manager
.
removePeer
)
validator
:=
func
(
header
*
types
.
Header
)
error
{
...
...
@@ -174,26 +172,13 @@ func NewProtocolManager(config *params.ChainConfig, fastSync bool, networkId int
}
inserter
:=
func
(
blocks
types
.
Blocks
)
(
int
,
error
)
{
atomic
.
StoreUint32
(
&
manager
.
synced
,
1
)
// Mark initial sync done on any fetcher import
return
manager
.
i
nsertChain
(
blocks
)
return
manager
.
blockchain
.
I
nsertChain
(
blocks
)
}
manager
.
fetcher
=
fetcher
.
New
(
blockchain
.
GetBlockByHash
,
validator
,
manager
.
BroadcastBlock
,
heighter
,
inserter
,
manager
.
removePeer
)
if
blockchain
.
Genesis
()
.
Hash
()
.
Hex
()
==
defaultGenesisHash
&&
networkId
==
1
{
log
.
Debug
(
"Bad block reporting is enabled"
)
manager
.
badBlockReportingEnabled
=
true
}
return
manager
,
nil
}
func
(
pm
*
ProtocolManager
)
insertChain
(
blocks
types
.
Blocks
)
(
i
int
,
err
error
)
{
i
,
err
=
pm
.
blockchain
.
InsertChain
(
blocks
)
if
pm
.
badBlockReportingEnabled
&&
core
.
IsValidationErr
(
err
)
&&
i
<
len
(
blocks
)
{
go
sendBadBlockReport
(
blocks
[
i
],
err
)
}
return
i
,
err
}
func
(
pm
*
ProtocolManager
)
removePeer
(
id
string
)
{
// Short circuit if the peer was already removed
peer
:=
pm
.
peers
.
Peer
(
id
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment