Commit Graph

220 Commits

Author SHA1 Message Date
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
obscuren ca1b2a1a91 Changed prev_hash to block_hash, state transition now uses vm env
* PREVHASH => BLOCKHASH( N )
* State transition object uses VMEnv as it's query interface
* Updated vm.Enviroment has GetHash( n ) for BLOCKHASH instruction
* Added GetHash to xeth, core, utils & test environments
2015-01-03 17:18:43 +01:00
obscuren 4dc7ee9087 Closure => Context 2015-01-02 16:14:12 +01:00
obscuren 477a6d426c Added a query interface for world state 2015-01-02 12:07:54 +01:00
obscuren 1c7e8e9093 Set TD to block once processed 2015-01-02 11:16:42 +01:00
obscuren 1382e8d84b Delete current chain for reset 2014-12-23 14:50:04 +01:00
obscuren 9e5257b83b Chain importer 2014-12-23 14:33:15 +01:00
obscuren 4cd79d8ddd Refactored block & Transaction
* Includes new rlp decoder
2014-12-23 13:48:44 +01:00
obscuren 0dc566124a Merge fixes 2014-12-18 13:22:59 +01:00
obscuren 721e8ae93f Merged develop 2014-12-18 13:19:41 +01:00
obscuren 2d09e67713 Updated to new methods 2014-12-18 13:17:24 +01:00
obscuren 49e0267fe7 Locks, refactor, tests
* Added additional chain tests
* Added proper mutex' on chain
* Removed ethereum dependencies
2014-12-18 13:12:54 +01:00
obscuren e6fdf0c9f7 Merge branch 'develop' into poc8 2014-12-18 00:12:51 +01:00
obscuren b1c58b76a9 moved err check 2014-12-17 12:57:35 +01:00
zelig 72290f67fe resolve merge conflict hell 2014-12-14 20:57:29 +00:00
zelig 7b39cc83cc adapt chain_manager to eth protocol interface
- add Status() to return td, currentblock hash, genesis hash
- GetChainHashesFromHash -> GetBlockHashesFromHash
2014-12-14 20:45:12 +00:00
zelig d84810d89d add Status to retrieve TD, currentBlock, genesis for easy interface with eth/protocol 2014-12-14 20:30:56 +00:00
obscuren 2b5fcb4642 moved interfaces 2014-12-10 20:26:55 +01:00
obscuren 5553e5aaed states moved to chain 2014-12-10 19:59:12 +01:00
obscuren 9925916851 upped proto version and modified block pool 2014-12-05 16:26:39 +01:00
obscuren 73123bf257 Only set TD if it's actually higher 2014-12-04 15:35:21 +01:00
obscuren 9008b155d3 Renamed `chain` => `core` 2014-12-04 10:28:02 +01:00