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
bcc1660a
Commit
bcc1660a
authored
Jul 04, 2015
by
Jeffrey Wilcke
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
core, miner, tests: added test, implemented bad block reporting
parent
9c3db1be
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
61 additions
and
2 deletions
+61
-2
bad_block.go
core/bad_block.go
+56
-0
chain_manager.go
core/chain_manager.go
+2
-0
worker.go
miner/worker.go
+0
-2
init.go
tests/init.go
+3
-0
No files found.
core/bad_block.go
0 → 100644
View file @
bcc1660a
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
))
}
}
core/chain_manager.go
View file @
bcc1660a
...
...
@@ -611,6 +611,8 @@ func (self *ChainManager) InsertChain(chain types.Blocks) (int, error) {
blockErr
(
block
,
err
)
go
ReportBlock
(
block
,
err
)
return
i
,
err
}
...
...
miner/worker.go
View file @
bcc1660a
...
...
@@ -298,8 +298,6 @@ func (self *worker) push() {
if
agent
.
Work
()
!=
nil
{
agent
.
Work
()
<-
self
.
current
.
block
}
else
{
common
.
Report
(
fmt
.
Sprintf
(
"%v %T
\n
"
,
agent
,
agent
))
}
}
}
...
...
tests/init.go
View file @
bcc1660a
...
...
@@ -8,6 +8,8 @@ import (
"net/http"
"os"
"path/filepath"
"github.com/ethereum/go-ethereum/core"
)
var
(
...
...
@@ -48,6 +50,7 @@ func readJson(reader io.Reader, value interface{}) error {
return
fmt
.
Errorf
(
"Error reading JSON file"
,
err
.
Error
())
}
core
.
DisableBadBlockReporting
=
true
if
err
=
json
.
Unmarshal
(
data
,
&
value
);
err
!=
nil
{
if
syntaxerr
,
ok
:=
err
.
(
*
json
.
SyntaxError
);
ok
{
line
:=
findLine
(
data
,
syntaxerr
.
Offset
)
...
...
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