aboutsummaryrefslogtreecommitdiffstats
path: root/core/chain_manager.go
Commit message (Collapse)AuthorAgeFilesLines
* core, cmd/geth: improved recover functionalityJeffrey Wilcke2015-07-011-80/+6
| | | | | `geth recover` now accepts both hashes and numbers using "#" and no longer requires the ethereum instance.
* Merge pull request #1370 from obscuren/force-checkpointJeffrey Wilcke2015-07-011-2/+10
|\ | | | | core, cmd/geth: recover by number
| * core, cmd/geth: recover by numberJeffrey Wilcke2015-07-011-2/+10
| |
* | Use uint64 for block header timestampGustav Simonsson2015-06-301-1/+1
|/
* core: added checkpoint for last blockJeffrey Wilcke2015-06-301-56/+41
| | | | | * Add a checkpoint every X blocks * Removed queued write
* core, miner: added queued write to WriteBlockJeffrey Wilcke2015-06-301-15/+18
| | | | | | | | This fixes an issue with the lru cache not being available when calling WriteBlock. WriteBlock previously always assumed to be called from the InsertChain where the lru cache was always created prior to calling WriteBlock. When being called from the worker this could lead in to a nil pointer exception being thrown and causing database corruption.
* cmd/geth: decent error message if metrics are disabledPéter Szilágyi2015-06-301-1/+0
|
* cmd, core, eth, metrics, p2p: require enabling metricsPéter Szilágyi2015-06-301-1/+2
|
* core: replaced BlockCache with lru.CacheJeffrey Wilcke2015-06-301-19/+24
|
* Merge branch 'miner-broadcast' into core-optimisations-2Jeffrey Wilcke2015-06-301-43/+67
|\ | | | | | | | | | | Conflicts: core/chain_manager.go miner/worker.go
| * core, miner: added write block method & changed mining propagationJeffrey Wilcke2015-06-291-45/+67
| |
* | core: fixed testsJeffrey Wilcke2015-06-301-0/+1
| |
* | core: removed write's go routineJeffrey Wilcke2015-06-301-7/+2
| |
* | core: renamed next to pending & fixed testsobscuren2015-06-301-15/+10
| |
* | core: reduced cache limit to 256obscuren2015-06-301-1/+1
| |
* | core: switched to proper LRUobscuren2015-06-301-9/+6
| |
* | core: added LRU caching and added batch writing when LDB is usedobscuren2015-06-301-21/+81
| |
* | core, eth, rpc: avoid unnecessary block header copyingFelix Lange2015-06-301-3/+3
| |
* | core: remove superfluous big.Int allocationsFelix Lange2015-06-301-21/+3
| | | | | | | | | | With blocks now being immutable, use big.Int values from accessor functions instead of copying their results.
* | core/types: make blocks immutableFelix Lange2015-06-301-66/+28
|/
* core, eth, eth/fetcher, ethdb: polish metrics gathering a bitPéter Szilágyi2015-06-241-14/+0
|
* core, ethdb: instrument the block and state dbPéter Szilágyi2015-06-241-1/+14
| | | | | Conflicts: ethdb/database.go
* cmd/geth, core: impl. percentile reporting, instrument insertionsPéter Szilágyi2015-06-241-1/+4
|
* core, ethdb, trie: validate database errorsobscuren2015-06-211-3/+13
|
* core: moved check for max queue to checkQueueobscuren2015-06-151-10/+2
| | | | | Moved the queue to check to the checkQueue method so no undeeded loops need to be initiated or sorting needs to happen twice.
* core: changed interrupt strategyobscuren2015-06-121-102/+101
| | | | | | Removed chain manager's select/channel approach when checking for interrupts. Now using an atomic int32 instead which checked for every block processed.
* eth, core: interupt the chain processing on stopobscuren2015-06-121-94/+104
| | | | | Added an additional channel which is used to interupt the chain manager when it's processing blocks.
* core: log tx count for each set of blocks we're importingobscuren2015-06-101-1/+4
|
* core: fix a race condition accessing the gas limitPéter Szilágyi2015-06-101-3/+5
|
* core: fix a lock annoyance and potential deadlockPéter Szilágyi2015-06-101-4/+9
|
* core: fix up a deadlock caused by double lockingPéter Szilágyi2015-06-091-8/+5
|
* core: fix data race accessing ChainManager.currentBlockPéter Szilágyi2015-06-091-1/+4
|
* core: fix data race in accessing ChainManager.tdPéter Szilágyi2015-06-091-9/+8
|
* core: write accounts to statedb. Closes #1210obscuren2015-06-091-6/+7
|
* Merge pull request #1193 from tgerring/hotbackupJeffrey Wilcke2015-06-091-3/+14
|\ | | | | Improve export command
| * Export should start with block 0Taylor Gerring2015-06-061-1/+1
| |
| * CleanupTaylor Gerring2015-06-061-2/+1
| |
| * Allow exporting subset of chainTaylor Gerring2015-06-061-2/+14
| |
* | core: settable genesis nonceobscuren2015-06-091-9/+15
| | | | | | | | | | | | | | You can set the nonce of the block with `--genesisnonce`. When the genesis nonce changes and it doesn't match with the first block in your database it will fail. A new `datadir` must be given if the nonce of the genesis block changes.
* | core: fix the nonce check one more timeFelix Lange2015-06-081-3/+3
|/ | | | | The block nonce verification was effectively disabled by a typo. This time, there is an actual test for it.
* wipobscuren2015-06-051-2/+10
|
* core, eth, miner: moved nonce management to tx pool.obscuren2015-06-041-20/+1
| | | | | | | | Removed the managed tx state from the chain manager to the transaction pool where it's much easier to keep track of nonces (and manage them). The transaction pool now also uses the queue and pending txs differently where queued txs are now moved over to the pending queue (i.e. txs ready for processing and propagation).
* wipobscuren2015-06-041-2/+3
|
* core: insert less length zero chainsFelix Lange2015-06-011-4/+5
| | | | This reduces the amount of queueEvents that are sent internally.
* core: re-add parallel nonce checksFelix Lange2015-06-011-63/+44
| | | | | In this incancation, the processor waits until the nonce has been verified before handling the block.
* Merge pull request #1155 from karalabe/fix-chainmanager-dataraceFelix Lange2015-05-301-2/+2
|\ | | | | core: fix #1154, sort out data race accessing the future blocks
| * core: fix #1154, sort out data race accessing the future blocksPéter Szilágyi2015-05-301-2/+2
| |
* | core: moved guardsobscuren2015-05-291-9/+8
| |
* | core: log block hash during nonce errorobscuren2015-05-281-2/+2
| |
* | core: partially removed nonce parallelisation and added merge error chkobscuren2015-05-281-24/+56
|/ | | | | | | Invalid forks are now detected Current setup of parellelisation actually inserts bad blocks. This fix is tmp until a better one is found
* core, eth/downloader: expose the bad hashes, check in downloaderPéter Szilágyi2015-05-281-1/+1
|
* core: adjust gas calculationobscuren2015-05-271-0/+1
|
* core: check negative value transactions. Closes #1109obscuren2015-05-271-1/+1
|
* core: prevent crash when last block failsobscuren2015-05-261-6/+16
|
* core: disable cash tmpobscuren2015-05-191-3/+5
|
* core: chain manager no longer exports genesis blockobscuren2015-05-191-2/+2
|
* core: parallelise nonce checking when processing blocksobscuren2015-05-181-6/+83
| | | | | | ChainManager now uses a parallel approach to block processing where all nonces are checked seperatly from the block processing process. This speeds up the process by about 3 times on my i7
* core: global chain insert lockobscuren2015-05-171-44/+43
|
* core, miner: fork resolving and restart miner after sync opobscuren2015-05-161-7/+15
| | | | Fork resolving fixes #940
* core: fixed mining strategyobscuren2015-05-151-9/+15
|
* core: changed how head events are checkedobscuren2015-05-151-2/+2
|
* core: changed log message for forks. closes #952obscuren2015-05-141-11/+13
|
* solidity compiler and contract metadocs integrationzelig2015-05-071-3/+2
| | | | | | | | | | | | | * common/compiler: solidity compiler + tests * rpc: eth_compilers, eth_compileSolidity + tests * fix natspec test using keystore API, notice exp dynamically changes addr, cleanup * resolver implements registrars and needs to create reg contract (temp) * xeth: solidity compiler. expose getter Solc() and paths setter SetSolc(solcPath) * ethereumApi: implement compiler related RPC calls using XEth - json struct tests * admin: make use of XEth.SetSolc to allow runtime setting of compiler paths * cli: command line flags solc to set custom solc bin path * js admin api with new features debug and contractInfo modules * wiki is the doc https://github.com/ethereum/go-ethereum/wiki/Contracts-and-Transactions
* Add genesis block total difficulty in testsGustav Simonsson2015-05-071-0/+1
|
* core: added unix timestamp to debug output for block procobscuren2015-05-041-1/+1
|
* core: print ignored blocksobscuren2015-05-031-1/+1
|
* eth,core: changed NewTicker to Tickobscuren2015-05-031-2/+2
|
* core: added 'ignored' statusobscuren2015-05-011-2/+3
|
* core: added a wait group to chain manager for graceful shutdownobscuren2015-04-301-0/+8
|
* core: check for parent in calc TD. TD = (N != 0 == parent.TD) || (== D)obscuren2015-04-301-0/+4
|
* core, eth: verify td of received blocksobscuren2015-04-301-2/+4
|
* core: added some additional chain tests for shortest chainobscuren2015-04-301-1/+1
|
* core: return the index of the block that failed when inserting a chainobscuren2015-04-291-3/+5
|
* core: fixed chain reorg during splitsobscuren2015-04-291-26/+32
| | | | | | | | | | | | | | 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
* core: seperated proccing mutex and getting mutexobscuren2015-04-291-41/+47
|
* core: moved mutex locks in insert blocks to start of functionobscuren2015-04-291-41/+40
| | | | | 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.
* core: set min gas price at startupobscuren2015-04-291-10/+10
|
* core, miner: added value check on tx validationobscuren2015-04-261-7/+3
| | | | | | * 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
* xeth, core, cmd/utils: Transaction can not be over block gas limitobscuren2015-04-241-11/+18
| | | | Transactions will be invalidated when the tx.gas_limit > block.gas_limit
* Moved leveldb update loop to eth/backendBas van Kervel2015-04-231-5/+5
| | | | | | change order of block insert and update LastBlock bugfix, wrong hash stored in blockDb
* core: set the state for the managed tx stateobscuren2015-04-231-1/+1
| | | | | Set the state for the managed tx state instead of creating a new managed state.
* core: shuffled some codeobscuren2015-04-211-7/+13
|
* core: force block process & fixed chain manager testobscuren2015-04-201-1/+6
|
* core: added chain reset mechanism on bad blocksobscuren2015-04-201-12/+23
|
* core: added chain head reset to known blockobscuren2015-04-201-0/+24
|
* core: moved TD calculation from proc to chainobscuren2015-04-201-5/+6
|
* cleanupobscuren2015-04-191-3/+2
|
* core: merge using equal block numbers rather than the current blockobscuren2015-04-191-1/+7
|
* core: changed split detection to also account for number less thanobscuren2015-04-161-1/+2
|
* core: during split properly insert parent blocksobscuren2015-04-141-1/+32
| | | | | | | 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.
* Merge pull request #702 from ethersphere/frontier/blockpoolJeffrey Wilcke2015-04-131-0/+1
|\ | | | | blockpool stability fixes:
| * blockpool stability fixes:zelig2015-04-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | - 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
* | Added blockchain DB versioning support, closes #650Bas van Kervel2015-04-131-2/+5
|/
* Merge branch 'frontier/blockpool' of ↵obscuren2015-04-091-0/+1
|\ | | | | | | https://github.com/ethersphere/go-ethereum into ethersphere-frontier/blockpool
| * future queued block supportzelig2015-04-091-0/+1
| | | | | | | | | | | | | | - 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)
* | Added default registrarobscuren2015-04-091-9/+1
|/
* Updated loggingobscuren2015-04-071-5/+5
|
* Block header changed & console miner controlobscuren2015-04-061-1/+1
| | | | | | * miner control moved to `admin.miner` * miner option to set extra data * block extra now bytes
* time lapseobscuren2015-04-051-1/+3
|
* Updated loggingobscuren2015-04-051-8/+18
|
* Added thread safe eachobscuren2015-04-051-4/+4
|
* Removed debuggingobscuren2015-04-051-7/+0
|
* prevent deadlockobscuren2015-04-051-13/+6
|
* Improved chain manager, improved block processor, fixed testsobscuren2015-04-041-5/+40
| | | | | | * ChainManager allows cached future blocks for later processing * BlockProcessor allows a 4 second window on future blocks * Fixed tests
* Changed log to new loggingobscuren2015-04-041-5/+9
|
* check for nil block (tmp).obscuren2015-04-041-0/+3
| | | | @zelig this needs to be addressed in the block pool.
* basic glogobscuren2015-04-041-0/+10
|
* do not include BlockEqualTS as valid unclesobscuren2015-04-031-1/+2
|
* Read most protocol params from common/params.jsonGustav Simonsson2015-04-021-8/+6
| | | | | | | | | * 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
* fixed testsobscuren2015-03-241-1/+1
|
* Copy fixobscuren2015-03-241-1/+1
|
* better block propagationobscuren2015-03-241-2/+2
|
* moved state and vm to coreobscuren2015-03-231-1/+1
|
* moved to errorobscuren2015-03-231-9/+2
|
* Merge branch 'develop' of github.com-obscure:ethereum/go-ethereum into developobscuren2015-03-231-2/+4
|\
| * Correct difficulty calculation to use new difficulty minimumGustav Simonsson2015-03-231-2/+4
| |
* | logging for possible unclesobscuren2015-03-231-0/+5
| |
* | added some nil checks for cache (testing specific)obscuren2015-03-231-6/+19
|/
* Added caching for block chain. Currently set to 10kobscuren2015-03-201-1/+19
|
* :-)obscuren2015-03-201-1/+0
|
* mergeobscuren2015-03-191-9/+7
|\
| * re-enabled json loggingobscuren2015-03-191-2/+0
| |
| * fixed chain event. Closes #529obscuren2015-03-191-5/+5
| |
* | Merge branch 'conversion' of github.com-obscure:ethereum/go-ethereum into ↵obscuren2015-03-181-15/+12
|\ \ | | | | | | | | | conversion
| * | core: use package rlp to encode blocksFelix Lange2015-03-181-15/+12
| | | | | | | | | | | | | | | This also changes the chain export format so there is no enclosing list around the blocks, which enables streaming export.
* | | prep template for fixed size hashesobscuren2015-03-181-2/+2
|/ /
* / converted chain managerobscuren2015-03-171-21/+27
|/
* Moved ethutil => commonobscuren2015-03-161-18/+18
|
* typoobscuren2015-03-141-1/+1
|
* Improved errors. Closes #475obscuren2015-03-141-2/+2
|
* GetBlockByNumber now properly looks for a number in the databaseobscuren2015-03-141-28/+33
|
* Return proper errorobscuren2015-03-141-0/+2
|
* Implemented a manage state for keeping track of noncesobscuren2015-03-131-5/+6
|
* Increased genesis gas & gas floor limit to 3141592obscuren2015-03-131-3/+1
|
* fallbackobscuren2015-03-111-0/+2
|
* mergeobscuren2015-03-081-8/+6
|\
| * Added eth.chain.new_headTaylor Gerring2015-03-061-2/+9
| |
* | Separated block db from state db. Partial fix for #416obscuren2015-03-071-15/+16
| |
* | Queued approach to delivering chain eventsobscuren2015-03-061-34/+73
| |
* | debug comments & pow handlingobscuren2015-03-061-5/+0
| |
* | Merge pull request #426 from Gustav-Simonsson/add_blockchain_testsJeffrey Wilcke2015-03-061-0/+15
|\ \ | | | | | | Add initial implementation of block tests
| * | Add initial implementation of block testsGustav Simonsson2015-03-051-0/+15
| | | | | | | | | | | | | | | | | | | | | * 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
* | | Miner fixes and updates (including miner)obscuren2015-03-051-9/+19
|/ /
* | uncle validationobscuren2015-03-041-6/+6
| |
* | Changed nonce to a uint64obscuren2015-03-041-1/+1
| |
* | Merge branch 'jsonlogs' of https://github.com/ethersphere/go-ethereum into ↵obscuren2015-03-041-3/+12
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | ethersphere-jsonlogs Conflicts: eth/block_pool.go eth/block_pool_test.go eth/protocol_test.go miner/worker.go
| * | add eth.chain.new_head log to core/chain_managerzelig2015-03-031-3/+12
| |/
* / New gas prices modelobscuren2015-03-021-4/+6
|/
* Merge branch 'master' into developobscuren2015-02-241-4/+26
|\
| * Properly uninstall filters. Mining issue fixed #closes #365obscuren2015-02-231-4/+26
| | | | | | | | | | | | * 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
* | removed logobscuren2015-02-241-1/+0
|/
* Minor updates for releaseobscuren2015-02-211-1/+2
|
* Fixed chain event issueobscuren2015-02-201-3/+1
|
* fixed mergeobscuren2015-02-201-6/+3
|\
* | dirty tracking for state objects fixedobscuren2015-02-201-1/+1
| |
* | Optimisations and fixed a couple of DDOS issues in the minerobscuren2015-02-201-5/+20
|/
* Added GetBlock GetUncle with OOB guardobscuren2015-02-181-8/+8
|
* Changed to ChainEvent and fixed a nil pointer in transactobscuren2015-02-181-2/+0
|
* Filter and mutex locks addedobscuren2015-02-171-1/+12
|
* Removed reference to lastBlockNumber & LastBlockNumberobscuren2015-02-161-21/+5
|
* Resolved some bugs in the minerobscuren2015-02-151-1/+1
| | | | | | * TODO nonce error sometimes persists * Fixed mining on wrong blocks * Fixed state error & receipt fail
* Reference pointer to block instead of pointer to functionobscuren2015-02-151-1/+1
|
* Basic structure minerobscuren2015-02-101-1/+10
|
* Filteringobscuren2015-02-051-2/+1
|
* changed lost keyobscuren2015-01-291-1/+7
|
* Fixed difficultyobscuren2015-01-181-5/+4
| | | | Difficulty was broken when refactored.
* Moved the TD method from block processor.obscuren2015-01-101-1/+15
|
* mem fixes for vm. Changed uncle inclusion testsobscuren2015-01-101-0/+22
|
* Merge remote-tracking branch 'upstream/develop' into developzelig2015-01-091-2/+2
|\
| * Minor fixed and additions for block procobscuren2015-01-081-2/+2
| | | | | | | | | | | | * Path check length * Genesis include TD * Output TD on last block
* | GetBlockHashesFromHash(hash, max) gives back max hashes starting from PARENT ↵zelig2015-01-091-3/+1
|/ | | | of hash
* Refactored ethutil.Config.Db outobscuren2015-01-071-16/+13
|
* Adjusted difficulty and skip get tx messagesobscuren2015-01-061-1/+1
|
* Changed prev_hash to block_hash, state transition now uses vm envobscuren2015-01-041-8/+8
| | | | | | | * 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
* Closure => Contextobscuren2015-01-021-20/+0
|
* Added a query interface for world stateobscuren2015-01-021-0/+9
|
* Set TD to block once processedobscuren2015-01-021-0/+1
|
* Delete current chain for resetobscuren2014-12-231-0/+4
|
* Chain importerobscuren2014-12-231-5/+0
|
* Refactored block & Transactionobscuren2014-12-231-59/+75
| | | | * Includes new rlp decoder
* Merge fixesobscuren2014-12-181-1/+4
|
* Merged developobscuren2014-12-181-37/+83
|\
| * Updated to new methodsobscuren2014-12-181-0/+7
| |
| * Locks, refactor, testsobscuren2014-12-181-37/+76
| | | | | | | | | | | | * Added additional chain tests * Added proper mutex' on chain * Removed ethereum dependencies
* | Merge branch 'develop' into poc8obscuren2014-12-181-1/+10
|\|
| * moved err checkobscuren2014-12-171-1/+10
| |
* | resolve merge conflict hellzelig2014-12-151-4/+0
| |
* | adapt chain_manager to eth protocol interfacezelig2014-12-151-0/+4
| | | | | | | | | | - add Status() to return td, currentblock hash, genesis hash - GetChainHashesFromHash -> GetBlockHashesFromHash
* | add Status to retrieve TD, currentBlock, genesis for easy interface with ↵zelig2014-12-151-1/+5
|/ | | | eth/protocol
* moved interfacesobscuren2014-12-111-0/+2
|
* states moved to chainobscuren2014-12-111-0/+13
|
* upped proto version and modified block poolobscuren2014-12-051-9/+15
|
* Only set TD if it's actually higherobscuren2014-12-041-1/+4
|
* Renamed `chain` => `core`obscuren2014-12-041-0/+276