obscuren
4e07967711
core: fixed chain reorg during splits
...
Chain reorgs weren't properly handled when a chain was further ahead.
Previously we'd end up with mixed chains in our canonical numbering
sequence. Added test for this type of forking.
```
/-o-o-o A
o-C-+
\-o-o-o-o B
```
Ends up with with C A1, A2, A3, B4
2015-04-29 12:51:05 +02:00
obscuren
7ac24d551b
core: seperated proccing mutex and getting mutex
2015-04-29 12:51:04 +02:00
obscuren
a4b79f1dac
core: moved mutex locks in insert blocks to start of function
...
Insert blocks will no longer allow processing of multiple chains at the
same time. The block lock has been moved to start of the function.
2015-04-29 12:51:04 +02:00
obscuren
04a09b7e2d
core: set min gas price at startup
2015-04-29 12:51:04 +02:00
obscuren
145e02fc54
core, miner: added value check on tx validation
...
* Changed CalcGasLimit to no longer need current block
* Added a gas * price + value on tx validation
* Transactions in the pool are now re-validated once every X
2015-04-26 11:19:40 +02:00
obscuren
405720b218
xeth, core, cmd/utils: Transaction can not be over block gas limit
...
Transactions will be invalidated when the tx.gas_limit > block.gas_limit
2015-04-24 17:48:13 +02:00
Bas van Kervel
c273ed7d82
Moved leveldb update loop to eth/backend
...
change order of block insert and update LastBlock
bugfix, wrong hash stored in blockDb
2015-04-23 17:58:58 +02:00
obscuren
7edbb0110f
core: set the state for the managed tx state
...
Set the state for the managed tx state instead of creating a new
managed state.
2015-04-23 11:50:12 +02:00
obscuren
b8160cc6d4
core: shuffled some code
2015-04-20 20:37:40 +02:00
obscuren
72d065d491
core: force block process & fixed chain manager test
2015-04-20 16:02:50 +02:00
obscuren
97a9753f87
core: added chain reset mechanism on bad blocks
2015-04-20 12:58:17 +02:00
obscuren
45da3e17e2
core: added chain head reset to known block
2015-04-20 12:29:02 +02:00
obscuren
97b0c4b697
core: moved TD calculation from proc to chain
2015-04-20 12:01:20 +02:00
obscuren
164b878854
cleanup
2015-04-19 00:08:57 +02:00
obscuren
84f1af6413
core: merge using equal block numbers rather than the current block
2015-04-18 21:23:42 +02:00
obscuren
dff39553d4
core: changed split detection to also account for number less than
2015-04-16 00:11:40 +02:00
obscuren
333d4e0f27
core: during split properly insert parent blocks
...
During a split parent and grand parent were included in the database but
not in the canonical chain (numbered chain). Added a `merge` function
which finds the common ancestor of the chains and reinserts the missing
blocks.
2015-04-14 00:20:29 +02:00
Jeffrey Wilcke
1fa844aaf5
Merge pull request #702 from ethersphere/frontier/blockpool
...
blockpool stability fixes:
2015-04-13 17:35:25 +02:00
zelig
3d57e377a4
blockpool stability fixes:
...
- follow up locks and fix them
- chainManager: call SetQueued for parentErr future blocks, uncomment TD checks, unskip test
- make ErrIncorrectTD non-fatal to be forgiving to genuine mistaken nodes (temp) but demote them to guard against stuck best peers.
- add purging to bounded nodeCache (config nodeCacheSize)
- use nodeCache when creating blockpool entries and let non-best peers add blocks (performance boost)
- minor error in addError
- reduce idleBestPeerTimeout to 1 minute
- correct status counts and unskip status passing status test
- glogified logging
2015-04-13 13:13:55 +01:00
Bas van Kervel
49a513bdeb
Added blockchain DB versioning support, closes #650
2015-04-13 10:13:52 +02:00
obscuren
46898f1e55
Merge branch 'frontier/blockpool' of https://github.com/ethersphere/go-ethereum into ethersphere-frontier/blockpool
2015-04-09 16:54:32 +02:00
obscuren
0636e17dbe
Added default registrar
2015-04-09 16:37:04 +02:00
zelig
262714fc6c
future queued block support
...
- queued bool // flag for blockpool to skip TD check
- set to true when future block queued
- in checkTD: skip check if queued
- TODO: add test (insertchain sets future block)
2015-04-09 13:58:35 +01:00
obscuren
688d118c7e
Updated logging
2015-04-07 14:57:04 +02:00
obscuren
9c55576c7b
Block header changed & console miner control
...
* miner control moved to `admin.miner`
* miner option to set extra data
* block extra now bytes
2015-04-05 18:59:18 +02:00
obscuren
736aefe9b5
time lapse
2015-04-05 17:59:38 +02:00
obscuren
053d5552ab
Updated logging
2015-04-04 23:04:19 +02:00
obscuren
c39484bc4b
Added thread safe each
2015-04-04 20:34:10 +02:00
obscuren
eff6a43419
Removed debugging
2015-04-04 18:29:11 +02:00
obscuren
7a18a39351
prevent deadlock
2015-04-04 18:23:51 +02:00
obscuren
e1ed8c33bd
Improved chain manager, improved block processor, fixed tests
...
* ChainManager allows cached future blocks for later processing
* BlockProcessor allows a 4 second window on future blocks
* Fixed tests
2015-04-04 16:35:23 +02:00
obscuren
c985ce4d78
Changed log to new logging
2015-04-04 13:41:58 +02:00
obscuren
218bfeb60e
check for nil block (tmp).
...
@zelig this needs to be addressed in the block pool.
2015-04-04 12:40:48 +02:00
obscuren
a0e44e3281
basic glog
2015-04-04 12:40:11 +02:00
obscuren
f9d94c7462
do not include BlockEqualTS as valid uncles
2015-04-03 17:19:09 +02:00
Gustav Simonsson
c26c8d3a44
Read most protocol params from common/params.json
...
* Add params package with exported variables generated from
github.com/ethereum/common/blob/master/params.json
* Use params package variables in applicable places
* Add check for minimum gas limit in validation of block's gas limit
* Remove common/params.json from go-ethereum to avoid
outdated version of it
2015-04-02 06:22:32 +02:00
obscuren
9de1ad6546
fixed tests
2015-03-24 15:27:05 +01:00
obscuren
0ec171ccdf
Copy fix
2015-03-24 13:38:16 +01:00
obscuren
0ee0094cc0
better block propagation
2015-03-23 22:59:19 +01:00
obscuren
0330077d76
moved state and vm to core
2015-03-23 16:59:09 +01:00
obscuren
d7eaa97a29
moved to error
2015-03-23 16:55:40 +01:00
obscuren
211cb03f83
Merge branch 'develop' of github.com-obscure:ethereum/go-ethereum into develop
2015-03-23 16:47:05 +01:00
Gustav Simonsson
becc503230
Correct difficulty calculation to use new difficulty minimum
2015-03-23 16:32:20 +01:00
obscuren
dc3a9379f5
logging for possible uncles
2015-03-23 16:14:33 +01:00
obscuren
524f8199bf
added some nil checks for cache (testing specific)
2015-03-23 12:22:58 +01:00
obscuren
deee9cb170
Added caching for block chain. Currently set to 10k
2015-03-20 15:54:42 +01:00
obscuren
29eb220910
:-)
2015-03-19 17:18:55 +01:00
obscuren
b5a71d955c
merge
2015-03-19 16:59:13 +01:00
obscuren
e540a75030
re-enabled json logging
2015-03-19 16:30:01 +01:00
obscuren
14a2f42f37
fixed chain event. Closes #529
2015-03-19 16:19:54 +01:00
obscuren
4d0ae8b0cb
Merge branch 'conversion' of github.com-obscure:ethereum/go-ethereum into conversion
2015-03-18 14:16:07 +01:00
obscuren
48dd601de0
prep template for fixed size hashes
2015-03-18 14:15:58 +01:00
Felix Lange
b5b83db450
core: use package rlp to encode blocks
...
This also changes the chain export format so there is no
enclosing list around the blocks, which enables streaming export.
2015-03-18 13:36:48 +01:00
obscuren
8ce6a36478
converted chain manager
2015-03-16 23:48:18 +01:00
obscuren
b523441361
Moved ethutil => common
2015-03-16 11:27:38 +01:00
obscuren
44636e5b82
typo
2015-03-14 13:21:20 +01:00
obscuren
532a74f50e
Improved errors. Closes #475
2015-03-14 12:43:10 +01:00
obscuren
b927c29469
GetBlockByNumber now properly looks for a number in the database
2015-03-13 18:29:42 +01:00
obscuren
03403399fc
Return proper error
2015-03-13 17:47:11 +01:00
obscuren
cda88ce31a
Implemented a manage state for keeping track of nonces
2015-03-13 14:37:54 +01:00
obscuren
e69d5b32e8
Increased genesis gas & gas floor limit to 3141592
2015-03-13 13:52:23 +01:00
obscuren
ce595b9266
fallback
2015-03-10 20:28:20 +01:00
obscuren
07955b3041
merge
2015-03-08 01:09:34 +01:00
obscuren
cd856cb213
Separated block db from state db. Partial fix for #416
2015-03-06 18:26:16 +01:00
obscuren
8d9be18b29
Queued approach to delivering chain events
2015-03-06 15:50:44 +01:00
obscuren
23ad2f02c0
debug comments & pow handling
2015-03-06 10:22:40 +01:00
Taylor Gerring
fbb307cca0
Added eth.chain.new_head
2015-03-05 10:58:13 -06:00
Jeffrey Wilcke
3b30765378
Merge pull request #426 from Gustav-Simonsson/add_blockchain_tests
...
Add initial implementation of block tests
2015-03-05 17:43:56 +01:00
obscuren
c47866d251
Miner fixes and updates (including miner)
2015-03-05 09:14:58 +01:00
Gustav Simonsson
871dfd399b
Add initial implementation of block tests
...
* Add blocktest cmd and support for block tests files in
tests/BlockTests , the launched node does not connect to
network, resets state with a genesis block from the test file
and starts the RPC API
2015-03-04 20:27:09 +01:00
obscuren
84a4f761f3
uncle validation
2015-03-04 10:49:56 +01:00
obscuren
26de12d9bf
Changed nonce to a uint64
2015-03-03 21:04:31 +01:00
obscuren
f0b2ea64fc
Merge branch 'jsonlogs' of https://github.com/ethersphere/go-ethereum into ethersphere-jsonlogs
...
Conflicts:
eth/block_pool.go
eth/block_pool_test.go
eth/protocol_test.go
miner/worker.go
2015-03-03 20:30:05 +01:00
zelig
6c2856df23
add eth.chain.new_head log to core/chain_manager
2015-03-03 15:44:41 +07:00
obscuren
b383ff0b96
New gas prices model
2015-03-02 16:32:02 +01:00
obscuren
747647e02a
Merge branch 'master' into develop
2015-02-23 19:25:50 +01:00
obscuren
0b57bad2de
removed log
2015-02-23 19:25:41 +01:00
obscuren
b2a225a52e
Properly uninstall filters. Mining issue fixed #closes #365
...
* Added an additional tx state which is used to get the current nonce
* Refresh transient state each time a new canonical block is found
* Properly uninstall filters. Fixes a possible crash in RPC
2015-02-23 15:43:41 +01:00
obscuren
cc43ab9a81
Minor updates for release
2015-02-20 18:05:46 +01:00
obscuren
66d5559866
Fixed chain event issue
2015-02-20 16:59:08 +01:00
obscuren
75625801f5
fixed merge
2015-02-20 15:18:07 +01:00
obscuren
d8ac267f41
dirty tracking for state objects fixed
2015-02-20 14:01:30 +01:00
obscuren
fa4cbad315
Optimisations and fixed a couple of DDOS issues in the miner
2015-02-19 22:33:22 +01:00
obscuren
655e942597
Added GetBlock GetUncle with OOB guard
2015-02-18 13:14:21 +01:00
obscuren
7fc9b5b3f9
Changed to ChainEvent and fixed a nil pointer in transact
2015-02-17 22:20:47 +01:00
obscuren
567428fb34
Filter and mutex locks added
2015-02-17 16:12:55 +01:00
obscuren
d2a4bc4d73
Removed reference to lastBlockNumber & LastBlockNumber
2015-02-16 12:03:27 +01:00
obscuren
2c3a014f03
Resolved some bugs in the miner
...
* TODO nonce error sometimes persists
* Fixed mining on wrong blocks
* Fixed state error & receipt fail
2015-02-15 16:16:27 +01:00
obscuren
b143dad596
Reference pointer to block instead of pointer to function
2015-02-15 02:09:57 +01:00
obscuren
da2fae0e43
Basic structure miner
2015-02-10 13:04:38 +01:00
obscuren
65158d39b0
Filtering
2015-02-04 15:05:47 -08:00
obscuren
3440a8a0bf
changed lost key
2015-01-28 21:12:26 +01:00
obscuren
7394ee7c72
Fixed difficulty
...
Difficulty was broken when refactored.
2015-01-18 15:45:54 +01:00
obscuren
491c23a728
Moved the TD method from block processor.
2015-01-09 22:42:36 +01:00
obscuren
905b8cc82f
mem fixes for vm. Changed uncle inclusion tests
2015-01-09 17:38:35 +01:00
zelig
b3161f5803
Merge remote-tracking branch 'upstream/develop' into develop
2015-01-09 06:21:47 +00:00
zelig
3bdf28c1fe
GetBlockHashesFromHash(hash, max) gives back max hashes starting from PARENT of hash
2015-01-09 05:03:26 +00:00
obscuren
b25126a277
Minor fixed and additions for block proc
...
* Path check length
* Genesis include TD
* Output TD on last block
2015-01-08 16:37:06 +01:00
obscuren
fed3e6a808
Refactored ethutil.Config.Db out
2015-01-07 13:17:48 +01:00
obscuren
25e6c4eff8
Adjusted difficulty and skip get tx messages
2015-01-06 14:02:47 +01:00