Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
whqwjb
go-ethereum
提交
702bef84
G
go-ethereum
项目概览
whqwjb
/
go-ethereum
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
go-ethereum
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
702bef84
编写于
4月 06, 2017
作者:
P
Péter Szilágyi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
cmd/geth, eth: drop bad block reporting, its offline anyway
上级
d83a9a8f
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
2 addition
and
96 deletion
+2
-96
cmd/geth/main.go
cmd/geth/main.go
+0
-6
eth/bad_block.go
eth/bad_block.go
+0
-73
eth/handler.go
eth/handler.go
+2
-17
未找到文件。
cmd/geth/main.go
浏览文件 @
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
已删除
100644 → 0
浏览文件 @
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
浏览文件 @
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
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录