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
b5cee973
Commit
b5cee973
authored
Mar 15, 2016
by
Felix Lange
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #2350 from leijurv/patch-3
core, eth: replace reorganiz with reorganis
parents
06fe6310
434e4b31
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
8 additions
and
8 deletions
+8
-8
blockchain.go
core/blockchain.go
+1
-1
blockchain_test.go
core/blockchain_test.go
+4
-4
tx_pool_test.go
core/tx_pool_test.go
+1
-1
downloader.go
eth/downloader/downloader.go
+2
-2
No files found.
core/blockchain.go
View file @
b5cee973
...
...
@@ -775,7 +775,7 @@ func (self *BlockChain) WriteBlock(block *types.Block) (status WriteStatus, err
// Second clause in the if statement reduces the vulnerability to selfish mining.
// Please refer to http://www.cs.cornell.edu/~ie53/publications/btcProcFC.pdf
if
externTd
.
Cmp
(
localTd
)
>
0
||
(
externTd
.
Cmp
(
localTd
)
==
0
&&
mrand
.
Float64
()
<
0.5
)
{
// Reorgani
z
e the chain if the parent is not the head block
// Reorgani
s
e the chain if the parent is not the head block
if
block
.
ParentHash
()
!=
self
.
currentBlock
.
Hash
()
{
if
err
:=
self
.
reorg
(
self
.
currentBlock
,
block
);
err
!=
nil
{
return
NonStatTy
,
err
...
...
core/blockchain_test.go
View file @
b5cee973
...
...
@@ -168,7 +168,7 @@ func testHeaderChainImport(chain []*types.Header, blockchain *BlockChain) error
if
err
:=
blockchain
.
Validator
()
.
ValidateHeader
(
header
,
blockchain
.
GetHeader
(
header
.
ParentHash
),
false
);
err
!=
nil
{
return
err
}
// Manually insert the header into the database, but don't reorgani
z
e (allows subsequent testing)
// Manually insert the header into the database, but don't reorgani
s
e (allows subsequent testing)
blockchain
.
mu
.
Lock
()
WriteTd
(
blockchain
.
chainDb
,
header
.
Hash
(),
new
(
big
.
Int
)
.
Add
(
header
.
Difficulty
,
blockchain
.
GetTd
(
header
.
ParentHash
)))
WriteHeader
(
blockchain
.
chainDb
,
header
)
...
...
@@ -491,7 +491,7 @@ func chm(genesis *types.Block, db ethdb.Database) *BlockChain {
return
bc
}
// Tests that reorgani
z
ing a long difficult chain after a short easy one
// Tests that reorgani
s
ing a long difficult chain after a short easy one
// overwrites the canonical numbers and links in the database.
func
TestReorgLongHeaders
(
t
*
testing
.
T
)
{
testReorgLong
(
t
,
false
)
}
func
TestReorgLongBlocks
(
t
*
testing
.
T
)
{
testReorgLong
(
t
,
true
)
}
...
...
@@ -500,7 +500,7 @@ func testReorgLong(t *testing.T, full bool) {
testReorg
(
t
,
[]
int
{
1
,
2
,
4
},
[]
int
{
1
,
2
,
3
,
4
},
10
,
full
)
}
// Tests that reorgani
z
ing a short difficult chain after a long easy one
// Tests that reorgani
s
ing a short difficult chain after a long easy one
// overwrites the canonical numbers and links in the database.
func
TestReorgShortHeaders
(
t
*
testing
.
T
)
{
testReorgShort
(
t
,
false
)
}
func
TestReorgShortBlocks
(
t
*
testing
.
T
)
{
testReorgShort
(
t
,
true
)
}
...
...
@@ -858,7 +858,7 @@ func TestLightVsFastVsFullChainHeads(t *testing.T) {
assert
(
t
,
"light"
,
light
,
height
/
2
,
0
,
0
)
}
// Tests that chain reorgani
z
ations handle transaction removals and reinsertions.
// Tests that chain reorgani
s
ations handle transaction removals and reinsertions.
func
TestChainTxReorgs
(
t
*
testing
.
T
)
{
params
.
MinGasLimit
=
big
.
NewInt
(
125000
)
// Minimum the gas limit may ever be.
params
.
GenesisGasLimit
=
big
.
NewInt
(
3141592
)
// Gas limit of the Genesis block.
...
...
core/tx_pool_test.go
View file @
b5cee973
...
...
@@ -366,7 +366,7 @@ func TestTransactionPostponing(t *testing.T) {
if
len
(
pool
.
queue
[
account
])
!=
0
{
t
.
Errorf
(
"queued transaction mismatch: have %d, want %d"
,
len
(
pool
.
queue
),
0
)
}
// Reduce the balance of the account, and check that transactions are reorgani
z
ed
// Reduce the balance of the account, and check that transactions are reorgani
s
ed
state
.
AddBalance
(
account
,
big
.
NewInt
(
-
750
))
pool
.
resetState
()
...
...
eth/downloader/downloader.go
View file @
b5cee973
...
...
@@ -534,7 +534,7 @@ func (d *Downloader) fetchHeight61(p *peer) (uint64, error) {
// findAncestor61 tries to locate the common ancestor block of the local chain and
// a remote peers blockchain. In the general case when our node was in sync and
// on the correct chain, checking the top N blocks should already get us a match.
// In the rare scenario when we ended up on a long reorgani
z
ation (i.e. none of
// In the rare scenario when we ended up on a long reorgani
s
ation (i.e. none of
// the head blocks match), we do a binary search to find the common ancestor.
func
(
d
*
Downloader
)
findAncestor61
(
p
*
peer
)
(
uint64
,
error
)
{
glog
.
V
(
logger
.
Debug
)
.
Infof
(
"%v: looking for common ancestor"
,
p
)
...
...
@@ -960,7 +960,7 @@ func (d *Downloader) fetchHeight(p *peer) (uint64, error) {
// findAncestor tries to locate the common ancestor link of the local chain and
// a remote peers blockchain. In the general case when our node was in sync and
// on the correct chain, checking the top N links should already get us a match.
// In the rare scenario when we ended up on a long reorgani
z
ation (i.e. none of
// In the rare scenario when we ended up on a long reorgani
s
ation (i.e. none of
// the head links match), we do a binary search to find the common ancestor.
func
(
d
*
Downloader
)
findAncestor
(
p
*
peer
)
(
uint64
,
error
)
{
glog
.
V
(
logger
.
Debug
)
.
Infof
(
"%v: looking for common ancestor"
,
p
)
...
...
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