aboutsummaryrefslogtreecommitdiffstats
path: root/eth
Commit message (Collapse)AuthorAgeFilesLines
* cmd, eth, node, rpc, xeth: use single-instance servicesPéter Szilágyi2015-11-271-2/+2
|
* cmd, common, core, eth, node, rpc, tests, whisper, xeth: use protocol stacksPéter Szilágyi2015-11-271-299/+46
|
* eth/downloader: fetch data proportionally to peer capacityPéter Szilágyi2015-11-193-246/+258
|
* Merge pull request #1923 from karalabe/cleanup-receipt-data-accessJeffrey Wilcke2015-11-192-6/+6
|\ | | | | core, eth, miner, xeth: clean up tx/receipt db accessors
| * core, eth, miner, xeth: clean up tx/receipt db accessorsPéter Szilágyi2015-11-192-6/+6
| |
* | Merge pull request #1980 from fjl/downloader-deliver-hangJeffrey Wilcke2015-11-194-311/+336
|\ \ | |/ |/| eth/downloader: don't hang for spurious deliveries
| * eth/downloader: run tests in parallelFelix Lange2015-11-191-0/+29
| |
| * eth/downloader: also drain stateCh, receiptCh in eth/61 modeFelix Lange2015-11-191-71/+77
| | | | | | | | | | | | | | | | | | State and receipt deliveries from a previous eth/62+ sync can hang if the downloader has moved on to syncing with eth/61. Fix this by also draining the eth/63 channels while waiting for eth/61 data. A nicer solution would be to take care of the channels in a central place, but that would involve a major rewrite.
| * eth: remove workaround for asynchronous processing in the downloaderFelix Lange2015-11-191-4/+0
| |
| * eth/downloader: don't hang for spurious deliveriesFelix Lange2015-11-193-236/+230
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unexpected deliveries could block indefinitely if they arrived at the right time. The fix is to ensure that the cancellation channel is always closed when the sync ends, unblocking any deliveries. Also remove the atomic check for whether a sync is currently running because it doesn't help and can be misleading. Cancelling always seems to break the tests though. The downloader spawned d.process whenever new data arrived, making it somewhat hard to track when block processing was actually done. Fix this by running d.process in a dedicated goroutine that is tied to the lifecycle of the sync. d.process gets notified of new work by the queue instead of being invoked all the time. This removes a ton of weird workaround code, including a hairy use of atomic CAS.
* | core, eth, rpc: split out block validator and state processorJeffrey Wilcke2015-11-183-26/+19
|/ | | | | | | | | | | | This removes the burden on a single object to take care of all validation and state processing. Now instead the validation is done by the `core.BlockValidator` (`types.Validator`) that takes care of both header and uncle validation through the `ValidateBlock` method and state validation through the `ValidateState` method. The state processing is done by a new object `core.StateProcessor` (`types.Processor`) and accepts a new state as input and uses that to process the given block's transactions (and uncles for rewords) to calculate the state root for the next block (P_n + 1).
* Merge pull request #1963 from karalabe/fix-database-regressionJeffrey Wilcke2015-11-061-18/+3
|\ | | | | eth: fix error casting regression during database open
| * eth: fix error casting regression during database openPéter Szilágyi2015-11-051-18/+3
| |
* | Merge pull request #1960 from karalabe/fix-peer-ignore-listJeffrey Wilcke2015-11-042-11/+46
|\ \ | |/ |/| eth/downloader: fix dysfunctional ignore list hidden by generic set
| * eth/downloader: fix dysfunctional ignore list hidden by generic setPéter Szilágyi2015-11-042-11/+46
| |
* | Merge pull request #1934 from karalabe/polish-protocol-infosJeffrey Wilcke2015-11-046-80/+78
|\ \ | |/ |/| eth, p2p, rpc/api: polish protocol info gathering
| * eth, p2p, rpc/api: polish protocol info gatheringPéter Szilágyi2015-10-286-80/+78
| |
* | Merge pull request #1952 from obscuren/testnet-peersJeffrey Wilcke2015-10-301-1/+2
|\ \ | | | | | | eth: added new testnet peers
| * | eth: added new testnet peersJeffrey Wilcke2015-10-301-1/+2
| |/
* | Merge pull request #1949 from karalabe/update-command-usageJeffrey Wilcke2015-10-301-6/+0
|\ \ | | | | | | cmd/geth, cmd/utils, eth: group CLI flags by purpose
| * | cmd/geth, cmd/utils, eth: group CLI flags by purposePéter Szilágyi2015-10-301-6/+0
| | |
* | | Merge pull request #1946 from fjl/xeth-oomJeffrey Wilcke2015-10-301-53/+35
|\ \ \ | |/ / |/| | Fix for xeth OOM issue
| * | cmd/utils, rpc/comms: stop XEth when IPC connection endsFelix Lange2015-10-301-53/+35
| |/ | | | | | | | | | | | | | | | | | | | | There are a bunch of changes required to make this work: - in miner: allow unregistering agents, fix RemoteAgent.Stop - in eth/filters: make FilterSystem.Stop not crash - in rpc/comms: move listen loop to platform-independent code Fixes #1930. I ran the shell loop there for a few minutes and didn't see any changes in the memory profile.
* / eth: don't block sync goroutines that short circuitPéter Szilágyi2015-10-282-4/+9
|/
* Merge pull request #1919 from ethersphere/getnatspecJeffrey Wilcke2015-10-281-0/+11
|\ | | | | rpc api: eth_getNatSpec
| * rpc api: eth_getNatSpeczelig2015-10-271-0/+11
| | | | | | | | | | | | | | | | * xeth, rpc: implement eth_getNatSpec for tx confirmations * rename silly docserver -> httpclient * eth/backend: httpclient now accessible via eth.Ethereum init-d via config.DocRoot * cmd: introduce separate CLI flag for DocRoot (defaults to homedir) * common/path: delete unused assetpath func, separate HomeDir func
* | Merge pull request #1932 from fjl/gpo-defootgunizeJeffrey Wilcke2015-10-281-49/+58
|\ \ | |/ |/| eth, xeth: fix GasPriceOracle goroutine leak
| * eth, xeth: fix GasPriceOracle goroutine leakFelix Lange2015-10-281-49/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | XEth.gpo was being initialized as needed. WithState copies the XEth struct including the gpo field. If gpo was nil at the time of the copy and Call or Transact were invoked on it, an additional GPO listenLoop would be spawned. Move the lazy initialization to GasPriceOracle instead so the same GPO instance is shared among all created XEths. Fixes #1317 Might help with #1930
* | eth: time out status message exchange after 5sFelix Lange2015-10-231-9/+27
|/
* console:zelig2015-10-221-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lines with leading space are ommitted from history * exit processed even with whitespace around * all whitespace lines (not only empty ones) are ignored add 7 missing commands to admin api autocomplete registrar: methods now return proper error if reg addresses are not set. fixes #1457 rpc/console: fix personal.newAccount() regression. Now all comms accept interactive password registrar: add registrar tests for errors crypto: catch AES decryption error on presale wallet import + fix error msg format. fixes #1580 CLI: improve error message when starting a second instance of geth. fixes #1564 cli/accounts: unlock multiple accounts. fixes #1785 * make unlocking multiple accounts work with inline <() fd * passwdfile now correctly read only once * improve logs * fix CLI help text for unlocking fix regression with docRoot / admin API * docRoot/jspath passed to rpc/api ParseApis, which passes onto adminApi * docRoot field for JS console in order to pass when RPC is (re)started * improve flag desc for jspath common/docserver: catch http errors from response fix rpc/api tests common/natspec: fix end to end test (skipped because takes 8s) registrar: fix major regression: * deploy registrars on frontier * register HashsReg and UrlHint in GlobalRegistrar. * set all 3 contract addresses in code * zero out addresses first in tests
* core, eth, trie: fix data races and merge/review issuesPéter Szilágyi2015-10-2115-397/+681
|
* eth: clean out light node notions from ethPéter Szilágyi2015-10-197-68/+34
|
* core, eth: roll back uncertain headers in failed fast syncsPéter Szilágyi2015-10-194-12/+131
|
* eth/downloader: concurrent receipt and state processingPéter Szilágyi2015-10-194-72/+158
|
* core, eth, trie: direct state trie synchronizationPéter Szilágyi2015-10-198-459/+779
|
* core, eth: receipt chain reconstructionPéter Szilágyi2015-10-196-141/+205
|
* core: differentiate receipt concensus and storage decodingPéter Szilágyi2015-10-191-1/+1
|
* eth/downloader: add fast and light sync strategiesPéter Szilágyi2015-10-199-798/+1427
|
* core: support inserting pure header chainsPéter Szilágyi2015-10-193-18/+5
|
* cmd, eth: support switching client modes of operationPéter Szilágyi2015-10-196-32/+100
|
* Merge pull request #1899 from obscuren/mipmap-bloomJeffrey Wilcke2015-10-174-53/+447
|\ | | | | core, eth/filters, miner, xeth: Optimised log filtering
| * core, eth/filters, miner, xeth: Optimised log filteringJeffrey Wilcke2015-10-174-63/+368
| | | | | | | | | | | | | | Log filtering is now using a MIPmap like approach where addresses of logs are added to a mapped bloom bin. The current levels for the MIP are in ranges of 1.000.000, 500.000, 100.000, 50.000, 1.000. Logs are therefor filtered in batches of 1.000.
| * eth/filters: added benchmarkJeffrey Wilcke2015-10-162-7/+96
| |
* | Merge pull request #1869 from Gustav-Simonsson/gpu_minerJeffrey Wilcke2015-10-163-12/+157
|\ \ | | | | | | all: Add GPU mining, disabled by default
| * | all: Add GPU mining, disabled by defaultGustav Simonsson2015-10-073-12/+157
| | |
* | | core/state, core, miner: handle missing root error from state.NewGustav Simonsson2015-10-163-4/+7
| |/ |/|
* | core, eth, event, miner, xeth: fix event post / subscription racePéter Szilágyi2015-10-123-27/+36
| |
* | cmd, core, eth: added official testnetJeffrey Wilcke2015-10-091-1/+17
| |
* | Merge pull request #1756 from obscuren/core-refactorJeffrey Wilcke2015-10-059-137/+486
|\ \ | |/ |/| core, core/vm: refactor
| * cmd/geth, cmd/utils, core, rpc: renamed to blockchainJeffrey Wilcke2015-10-049-144/+149
| | | | | | | | | | | | * Renamed ChainManager to BlockChain * Checkpointing is no longer required and never really properly worked when the state was corrupted.
| * cmd/evm, core/vm, test: refactored VM and coreJeffrey Wilcke2015-10-042-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Moved `vm.Transfer` to `core` package and changed execution to call `env.Transfer` instead of `core.Transfer` directly. * core/vm: byte code VM moved to jump table instead of switch * Moved `vm.Transfer` to `core` package and changed execution to call `env.Transfer` instead of `core.Transfer` directly. * Byte code VM now shares the same code as the JITVM * Renamed Context to Contract * Changed initialiser of state transition & unexported methods * Removed the Execution object and refactor `Call`, `CallCode` & `Create` in to their own functions instead of being methods. * Removed the hard dep on the state for the VM. The VM now depends on a Database interface returned by the environment. In the process the core now depends less on the statedb by usage of the env * Moved `Log` from package `core/state` to package `core/vm`.
| * core, event/filter, xeth: refactored filter systemJeffrey Wilcke2015-10-032-0/+344
| | | | | | | | | | | | | | Moved the filtering system from `event` to `eth/filters` package and removed the `core.Filter` object. The `filters.Filter` object now requires a `common.Database` rather than a `eth.Backend` and invokes the `core.GetBlockByX` directly rather than thru a "manager".
* | eth/downloader: match capabilities when querying idle peersPéter Szilágyi2015-10-023-8/+53
|/
* eth/downloader: always send termination wakes, clean leftoverPéter Szilágyi2015-09-231-20/+36
|
* core, core/types: readd transactions after chain re-orgJeffrey Wilcke2015-09-221-1/+1
| | | | | | | | | | | | | | Added a `Difference` method to `types.Transactions` which sets the receiver to the difference of a to b (NOTE: not a **and** b). Transaction pool subscribes to RemovedTransactionEvent adding back to those potential missing from the chain. When a chain re-org occurs remove any transactions that were removed from the canonical chain during the re-org as well as the receipts that were generated in the process. Closes #1746
* Merge pull request #1810 from karalabe/pure-header-verifications-2Jeffrey Wilcke2015-09-171-1/+1
|\ | | | | core, eth, miner: use pure header validation
| * core, eth, miner: use pure header validationPéter Szilágyi2015-09-161-1/+1
| |
* | Merge pull request #1801 from fjl/ethdbJeffrey Wilcke2015-09-162-43/+13
|\ \ | | | | | | all: move common.Database to ethdb and add NewBatch
| * | ethdb: remove FlushFelix Lange2015-09-151-33/+2
| | |
| * | all: move common.Database to package ethdbFelix Lange2015-09-152-10/+11
| |/
* | eth/downloader: header-chain order and ancestry checkPéter Szilágyi2015-09-153-7/+77
| |
* | eth, rpc: standardize the chain sync progress countersPéter Szilágyi2015-09-152-51/+476
|/
* core: split out TD from database and all internalsPéter Szilágyi2015-09-116-47/+66
|
* core, eth: split the db blocks into headers and bodiesPéter Szilágyi2015-09-114-84/+89
|
* cmd/geth, cmd/utils, eth: added dev mode flagJeffrey Wilcke2015-09-091-6/+9
| | | | | | | | | | | | Dev mode enabled some debugging flags such as: * VM debugging mode * Simpler proof of work * Whisper enabled by default * Datadir to a tmp datadir * Maxpeers set to 0 * Gas price of 0 * Random listen port
* eth/downloader: fix race causing occasional test failurePéter Szilágyi2015-09-011-1/+3
|
* Merge pull request #1701 from karalabe/eth62-sync-rebaseFelix Lange2015-08-2716-1266/+3292
|\ | | | | eth: implement eth/62 synchronization logic
| * eth: update metrics collection to handle eth/62 algosPéter Szilágyi2015-08-256-35/+159
| |
| * eth: port the synchronisation algo to eth/62Péter Szilágyi2015-08-258-340/+1995
| |
| * eth: kill off protocol eth/60 in preparation for eth/62Péter Szilágyi2015-08-246-804/+28
| |
| * eth, eth/downloader: handle header requests, table driven proto testsPéter Szilágyi2015-08-2411-254/+1182
| |
| * eth, metrics, p2p: prepare metrics and net packets to eth/62Péter Szilágyi2015-08-215-41/+136
| |
* | Add tests for uncle timestamps and refactor timestamp typeGustav Simonsson2015-08-251-1/+1
|/
* eth: fix an issue with pulling and inserting blocks twicePéter Szilágyi2015-08-191-2/+4
|
* Merge pull request #1627 from zsfelfoldi/gpoJeffrey Wilcke2015-08-171-10/+13
|\ | | | | GPO update
| * GPO updatezsfelfoldi2015-08-171-10/+13
| |
* | Update CPP pubkeyTaylor Gerring2015-08-171-1/+1
| |
* | Added SG bootnodeTaylor Gerring2015-08-171-2/+3
| |
* | eth, trie: removed key prefixing from state entries & merge db fixJeffrey Wilcke2015-08-141-15/+19
| | | | | | | | | | | | | | | | | | Fixed database merge strategy to use the correct database. Due to a copy paste fail when doing type evaluation the same database was being iterated (chain), all others were ignored. Removed state prefixing because {H(code): code} is stored in the same database as the rest of the state.
* | core, eth, trie, xeth: merged state, chain, extra databases in oneJeffrey Wilcke2015-08-082-74/+120
|/
* cmd/geth, eth: added canonical extra dataJeffrey Wilcke2015-08-071-7/+2
| | | | | Implemented canonical extra data according to https://github.com/ethereum/wiki/wiki/Extra-Data
* miner: gas limit strategy, target 3141592 & def gas price 50 ShannonGustav Simonsson2015-08-041-1/+2
|
* cmd, core, eth: support for the olympic networkJeffrey Wilcke2015-08-041-0/+9
| | | | Added a --olympic flag which initialiser the olympic protocol settings
* eth, eth/downloader: don't report stall if fetcher filled the blockPéter Szilágyi2015-07-293-43/+65
|
* Merge pull request #1533 from ethersphere/frontier/etherbaseJeffrey Wilcke2015-07-281-1/+5
|\ | | | | Etherbase defaults to first account even if it is created during the session
| * etherbase defaults to first account even if created during the sessionzelig2015-07-271-1/+5
| |
* | Merge pull request #1515 from fjl/license-fixesJeffrey Wilcke2015-07-2816-16/+16
|\ \ | |/ |/| all: fix license headers one more time
| * all: fix license headers one more timeFelix Lange2015-07-2416-16/+16
| | | | | | | | I forgot to update one instance of "go-ethereum" in commit 3f047be5a.
* | params: reduce extra data to 32 bytesJeffrey Wilcke2015-07-261-2/+3
| |
* | Merge pull request #1524 from obscuren/default-extraJeffrey Wilcke2015-07-251-0/+7
|\ \ | | | | | | eth: set default miner extra to client name
| * | eth: set default miner extra to client nameJeffrey Wilcke2015-07-251-0/+7
| | |
* | | cmd/geth, core, eth: Version 1.0.0Jeffrey Wilcke2015-07-253-3/+4
|/ / | | | | | | | | | | | | Genesis release. Closes #1402 Conflicts: cmd/geth/main.go
* | Merge pull request #1510 from fjl/license-fixesJeffrey Wilcke2015-07-2316-64/+64
|\| | | | | all: license fixes
| * all: update license headers to distiguish GPL/LGPLFelix Lange2015-07-2316-64/+64
| | | | | | | | | | All code outside of cmd/ is licensed as LGPL. The headers now reflect this by calling the whole work "the go-ethereum library".
* | cmd, core, eth, ethdb: cache flag to allocate memory for db internal usePéter Szilágyi2015-07-221-1/+2
|/
* cmd, core, eth, common: genesis preparationJeffrey Wilcke2015-07-102-18/+29
| | | | | Implemented the --genesis flag thru which we can set a custom genesis block, including the official Ethereum genesis block.
* Merge pull request #1451 from karalabe/handle-potential-TD-forge-attackJeffrey Wilcke2015-07-092-99/+44
|\ | | | | eth/downloader: drop peer if advertised TD but won't delvier
| * eth/downloader: drop peer if advertised TD but won't delvierPéter Szilágyi2015-07-092-99/+44
| |
* | Merge pull request #1450 from karalabe/fix-propagation-tdJeffrey Wilcke2015-07-092-5/+17
|\ \ | | | | | | eth: calculate the correct TD, only update if better
| * | eth: calculate the correct TD, only update if betterPéter Szilágyi2015-07-092-5/+17
| |/
* / eth, ethdb: fix a data race during startup/shutdownPéter Szilágyi2015-07-091-25/+3
|/
* all: add some godoc synopsis commentsFelix Lange2015-07-071-0/+1
|
* all: update license informationFelix Lange2015-07-0716-0/+256
|
* Merge pull request #1428 from obscuren/coinbase-fixesJeffrey Wilcke2015-07-071-2/+8
|\ | | | | cmd,eth,rpc,tests: default coinbase
| * eth,miner,rpc: set coinbaseJeffrey Wilcke2015-07-071-0/+1
| |
| * cmd,eth,rpc,tests: default coinbaseJeffrey Wilcke2015-07-071-2/+7
| |
* | Registrar and contractInfo handlingzelig2015-07-071-1/+12
|/ | | | | | | | | | | | | | | | * resolver -> common/registrar * global registrar name registry interface * add Call to resolver backend interface * the hashReg and UrlHing contracts now initialised from global registry * initialization of contracts uniform * improve errors and more econsistent method names * common/registrar/ethreg: versioned registrar * integrate new naming and registrar in natspec * js console api: setGlobalRegistrar, setHashReg, setUrlHint * js test TestContract uses mining - tests fixed all pass * eth/backend: allow PoW test mode (small ethash DAG) * console jsre refers to resolver.abi/addr, * cmd/geth/contracts.go moved to common/registrar
* core, eth, rpc: proper gas used. Closes #1417Jeffrey Wilcke2015-07-071-1/+3
| | | | Added some additional backward compatibility code for old receipts
* Merge pull request #1283 from ethersphere/frontier/accountsJeffrey Wilcke2015-07-041-10/+2
|\ | | | | Account management improvements
| * require explicit etherbase address for mining. Falling back to primary is ↵zelig2015-07-031-3/+2
| | | | | | | | risky given it is inconsistent if keys are imported/merged/created or copied/transfered
| * unlock multiple passes and obsolete primaryzelig2015-07-031-9/+2
| | | | | | | | | | | | | | * multiple passwords allowed in password file * split on "\n", sideeffect: chop trailing slashes. fixes common mistake <(echo 'pass') * remove accounts.Primary method * do not fall back to primary account for mining
* | core, eth, miner, xeth: receipt storage fixJeffrey Wilcke2015-07-041-6/+3
| | | | | | | | | | * Added GetReceiptsFromBlock, GetReceipt, PutReceipts * Added ContractAddress to receipt. See #1042
* | core, miner: miner header validation, transaction & receipt writingJeffrey Wilcke2015-07-032-2/+2
| | | | | | | | | | | | | | | | * Miners do now verify their own header, not their state. * Changed old putTx and putReceipts to be exported * Moved writing of transactions and receipts out of the block processer in to the chain manager. Closes #1386 * Miner post ChainHeadEvent & ChainEvent. Closes #1388
* | eth/downloader: fix a rare test race on the OSX CIPéter Szilágyi2015-07-031-1/+7
|/
* eth, eth/downloader: fix #1231, DOS vulnerability in hash queueingPéter Szilágyi2015-07-012-5/+15
|
* eth: fix #1371, double lock during block/txn known set limitationPéter Szilágyi2015-07-011-10/+4
|
* eth/downloader: reduce hash fetches in prep for eth/61Péter Szilágyi2015-07-011-3/+3
|
* eth, eth/downloader: transition to eth 61Péter Szilágyi2015-07-018-140/+689
|
* eth, eth/downloader: pass the eth protocol version throughPéter Szilágyi2015-07-014-36/+45
|
* eth: add the blocks from numbers protocol messagePéter Szilágyi2015-07-014-26/+43
|
* eth: fix #1319, put an upper limit on the known txns and blocksPéter Szilágyi2015-07-011-0/+19
|
* eth: clean up peer struct a bit, fix double txn bcastPéter Szilágyi2015-07-014-71/+69
|
* eth: start cleaning up old protocol implementation, add metricsPéter Szilágyi2015-07-013-39/+105
|
* cmd/geth, cmd/utils, eth: advertise both eth/60 and eth/61Péter Szilágyi2015-07-013-40/+60
|
* cmd, core, eth, metrics, p2p: require enabling metricsPéter Szilágyi2015-06-303-48/+49
|
* cmd/geth, eth, ethdb: monitor database compactionsPéter Szilágyi2015-06-301-15/+24
|
* gpo non-existent block checkszsfelfoldi2015-06-301-4/+11
|
* core, eth, rpc: avoid unnecessary block header copyingFelix Lange2015-06-302-7/+7
|
* eth/downloader, eth/fetcher: use core.GenerateChain in testsFelix Lange2015-06-302-236/+140
| | | | | | TestMadeupParentBlockChainAttack has been deleted because it was too hard to port and the attack that it checks the prevention of is being averted in a different way (through a protocol change).
* core/types: make blocks immutableFelix Lange2015-06-301-1/+4
|
* core/types: make transactions immutableFelix Lange2015-06-301-2/+2
|
* eth/fetcher: don't drop on future blocks, just not propagatePéter Szilágyi2015-06-291-4/+16
|
* eth/fetcher: don't double filter/fetch the same blockPéter Szilágyi2015-06-291-1/+1
|
* eth, ethdb: measure database operation latencies tooPéter Szilágyi2015-06-241-9/+9
|
* eth: make sure dbs are lvldb before instrumentingPéter Szilágyi2015-06-241-18/+21
|
* core, eth, eth/fetcher, ethdb: polish metrics gathering a bitPéter Szilágyi2015-06-242-5/+24
|
* eth/fetcher: fix failed mergePéter Szilágyi2015-06-241-1/+1
|
* cmd/geth, eth/fetcher: polish metrics reporting, add some morePéter Szilágyi2015-06-241-10/+15
|
* cmd/geth, eth/fetcher: initial metrics supportPéter Szilágyi2015-06-241-0/+14
| | | | | Conflicts: cmd/geth/admin.go
* eth/fetcher: fix a closure data racePéter Szilágyi2015-06-231-2/+3
|
* eth/fetcher: clean up test assertionsPéter Szilágyi2015-06-221-111/+49
|
* eth/fetcher: remove test sleeps (15s -> 2.8s)Péter Szilágyi2015-06-222-59/+167
|
* eth/fetcher: handle and (crude) test block memory DOSPéter Szilágyi2015-06-222-23/+105
|
* eth/fetcher: handle and test block announce DOS attacksPéter Szilágyi2015-06-222-7/+82
|
* eth/fetcher: lower max cache size, add timeout slackPéter Szilágyi2015-06-191-4/+15
|
* eth: fix the propagation/announce order for mined blocksPéter Szilágyi2015-06-191-4/+4
|
* eth/fetcher: since uncles are allowed, drop phase testPéter Szilágyi2015-06-191-51/+0
|
* eth/fetcher: allow backward uncle imports tooPéter Szilágyi2015-06-191-2/+3
|
* eth: fix test breakage from the previous commitPéter Szilágyi2015-06-182-2/+1
|
* eth, eth/fetcher: propagate after header verify, announce only on insertPéter Szilágyi2015-06-184-43/+81
|
* eth: clean the block request packet handling a bitPéter Szilágyi2015-06-181-17/+17
|
* eth, eth/fetcher: move propagated block import into fetcherPéter Szilágyi2015-06-184-123/+106
|
* eth/fetcher: make tests thread safePéter Szilágyi2015-06-181-22/+34
|
* eth/fetcher: build longest chain until proven otherwisePéter Szilágyi2015-06-183-31/+95
|
* eth/fetcher: fix premature queue cleanup, general polishesPéter Szilágyi2015-06-181-35/+47
|
* eth, eth/fetcher: define and enforce propagation boundariesPéter Szilágyi2015-06-183-24/+60
|
* eth/fetcher: deduplicate future blocksPéter Szilágyi2015-06-182-25/+71
|
* eth, eth/fetcher: cache future propagated blocks tooPéter Szilágyi2015-06-183-0/+51
|
* eth, eth/fetcher: use an import queue to store out of order blocksPéter Szilágyi2015-06-183-33/+91
|
* eth/fetcher: add test to check for duplicate downloadsPéter Szilágyi2015-06-181-0/+38
|
* eth/fetcher: fix timer reset bug, add initial testsPéter Szilágyi2015-06-183-6/+212
|
* eth, eth/fetcher: separate notification sync mechanismPéter Szilágyi2015-06-184-182/+293
|
* eth/downloader: extend slow test to fix even slower CI server...Péter Szilágyi2015-06-181-1/+1
|
* eth/downloader: always reenter processing if not exitingPéter Szilágyi2015-06-182-39/+37
|
* eth, eth/downloader: fix processing interrupt caused by temp cancelPéter Szilágyi2015-06-183-24/+22
|
* eth/downloader: fix #1280, overlapping (good/bad) delivery hangPéter Szilágyi2015-06-172-0/+35
|
* Merge pull request #1260 from obscuren/tx-drop-low-txJeffrey Wilcke2015-06-161-0/+1
|\ | | | | core: drop low gas tx
| * core, miner: tx pool drops txs below ask priceobscuren2015-06-151-0/+1
| |
* | Merge pull request #990 from zsfelfoldi/gaspriceJeffrey Wilcke2015-06-152-16/+217
|\ \ | | | | | | eth: add GasPriceOracle
| * | fixed gas price corr. factorzsfelfoldi2015-06-151-1/+1
| | |
| * | fallback for uninitialized GPO config valueszsfelfoldi2015-06-151-0/+3
| | |
| * | fixed initial base price bugzsfelfoldi2015-06-151-0/+4
| | |
| * | added missing sourcezsfelfoldi2015-06-151-0/+174
| | |
| * | fixed saving receiptszsfelfoldi2015-06-151-16/+36
| |/
* | eth: don't refetch non fitting blocks to avoid duplicatesPéter Szilágyi2015-06-151-1/+1
| |
* | eth/downloader: detailed comment for the race corner casePéter Szilágyi2015-06-151-4/+15
| |
* | eth/downloader: fix import statistic reset, fetch hashes asyncPéter Szilágyi2015-06-151-11/+14
| |
* | eth, eth/downloader: do async block fetches, add dl testsPéter Szilágyi2015-06-153-5/+47
| |
* | eth/downloader: sanity test for multi peer syncsPéter Szilágyi2015-06-151-0/+31
| |
* | eth, eth/downloader: move block processing into the downlaoderPéter Szilágyi2015-06-154-231/+253
| |
* | eth/downloader: add valid peer during attacks (check interference)Péter Szilágyi2015-06-151-93/+140
| |
* | eth/downloader: instreument and test the sync peer dropPéter Szilágyi2015-06-152-9/+66
| |
* | eth: fix an accidental test compile errorPéter Szilágyi2015-06-151-3/+1
| |
* | eth/downloader: support individual peers in the test suitePéter Szilágyi2015-06-151-112/+113
| |
* | eth/downloader: remove uneeded testing functionsPéter Szilágyi2015-06-152-37/+2
| |
* | eth, eth/downloader: move peer removal into downloaderPéter Szilágyi2015-06-156-82/+83
|/
* eth, core: interupt the chain processing on stopobscuren2015-06-121-1/+1
| | | | | Added an additional channel which is used to interupt the chain manager when it's processing blocks.
* Merge pull request #1227 from karalabe/block-fetcher-optimisationsJeffrey Wilcke2015-06-111-18/+37
|\ | | | | eth: optimize the notification/explicit fetch mechanism
| * eth: dedup fetches to ensure no blocks are pulled twicePéter Szilágyi2015-06-111-5/+23
| |
| * eth: randomly fetch announced block (don't hammer origin)Péter Szilágyi2015-06-111-4/+5
| |
| * eth: discard fetched blocks that don't fit (no goroutine)Péter Szilágyi2015-06-111-13/+13
| |
* | Merge pull request #1224 from karalabe/report-import-progressJeffrey Wilcke2015-06-111-4/+42
|\ \ | | | | | | cmd/geth, eth/downloader: collect and report import progress too
| * | eth/downloader: fetch the block hashes on the fly, when neededPéter Szilágyi2015-06-111-9/+5
| | |
| * | cmd/geth, eth/downloader: rough guess at the import etaPéter Szilágyi2015-06-101-2/+13
| | |
| * | cmd/geth, eth/downloader: collect and report import progress tooPéter Szilágyi2015-06-101-4/+35
| |/
* / core: fixed race condition in the transaction poolobscuren2015-06-101-5/+0
|/ | | | Removed `Stop/Start` mechanism from the transaction pool.
* core, eth: document that result of GetTransactions is modifiableFelix Lange2015-06-091-2/+4
|
* eth/downloader: fix hash fetch timeout handlingFelix Lange2015-06-091-12/+18
| | | | Fixes #1206
* eth: add protocol testsFelix Lange2015-06-091-336/+190
| | | | The protocol tests were commented out when eth/downloader was introduced.
* eth: limit number of sent transactions based on message sizeFelix Lange2015-06-092-9/+109
| | | | | | | | | | | | | | Nodes that are out of sync will queue many transactions, which causes the initial transactions message to grow very large. Larger transactions messages can make communication impossible if the message is too big to send. Big transactions messages also exhaust egress bandwidth, which degrades other peer connections. The new approach to combat these issues is to send transactions in smaller batches. This commit introduces a new goroutine that handles delivery of all initial transaction transfers. Size-limited packs of transactions are sent to one peer at a time, conserving precious egress bandwidth.
* eth: limit number of sent blocks based on message sizeFelix Lange2015-06-091-2/+11
| | | | | If blocks get larger, sending 256 at once can make messages large enough to exceed the low-level write timeout.
* eth: fix a data race in the hash announcement processingPéter Szilágyi2015-06-091-10/+18
|
* eth: fix data race accessing peer.tdPéter Szilágyi2015-06-093-14/+33
|
* eth: fix data race accessing peer.recentHashPéter Szilágyi2015-06-093-12/+32
|
* Merge pull request #1188 from karalabe/newblockhashes-proposalJeffrey Wilcke2015-06-094-81/+262
|\ | | | | eth: implement the NewBlockHashes protocol proposal
| * eth: clean up pending announce download map, polish logsPéter Szilágyi2015-06-092-14/+26
| |
| * eth: split and handle explicitly vs. download requested blocksPéter Szilágyi2015-06-092-23/+81
| |
| * eth: fetch announced hashes from origin, periodicallyPéter Szilágyi2015-06-092-32/+80
| |
| * eth: mark blocks as known when broadcasting hashes tooPéter Szilágyi2015-06-081-0/+3
| |
| * eth: implement the NewBlockHashes protocol proposalPéter Szilágyi2015-06-083-63/+123
| |
* | Merge pull request #1153 from karalabe/downloader-banned-starvation-attackJeffrey Wilcke2015-06-096-177/+315
|\ \ | | | | | | eth/downloader: gather and ban hashes from invalid chains
| * | eth/downloader: test registration rejection on head banPéter Szilágyi2015-06-081-2/+10
| | |
| * | eth/downloader: reject peer registration if head is bannedPéter Szilágyi2015-06-081-4/+15
| | |
| * | eth/downloader: cap the hash ban set, add test for itPéter Szilágyi2015-06-086-12/+64
| | |
| * | eth/downloader: fix throttling test to be less timing dependentPéter Szilágyi2015-06-081-3/+7
| | |
| * | eth/downloader: fix another rebase errorPéter Szilágyi2015-06-081-2/+1
| | |
| * | eth/downloader: preallocate the block cachePéter Szilágyi2015-06-083-21/+14
| | |
| * | eth/downloader: fix merge compile errorPéter Szilágyi2015-06-081-1/+1
| | |
| * | eth/downloader: don't block hash deliveries while pulling blocksPéter Szilágyi2015-06-081-17/+14
| | |
| * | eth/downloader: update test for shitty travisPéter Szilágyi2015-06-081-1/+1
| | |
| * | eth/downloader: clean up and simplify the code a bitPéter Szilágyi2015-06-081-13/+3
| | |
| * | eth/downloader: short circuit sync if head hash is bannedPéter Szilágyi2015-06-081-0/+4
| | |
| * | eth/downloader: accumulating hash bans for reconnecting attackersPéter Szilágyi2015-06-082-5/+126
| | |
| * | eth/downloader: clean up tests and unused variablesPéter Szilágyi2015-06-082-120/+79
| |/
* | core: write accounts to statedb. Closes #1210obscuren2015-06-091-1/+1
| |
* | core: settable genesis nonceobscuren2015-06-091-1/+6
|/ | | | | | | 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.
* Merge pull request #1189 from karalabe/downloader-polishesJeffrey Wilcke2015-06-053-19/+50
|\ | | | | eth/downloader: handle timeouts more gracefully
| * eth/downloader: differentiate stale and nonexistent deliveriesPéter Szilágyi2015-06-052-19/+46
| |
| * eth/downloader: log hard timeouts and reset capacityPéter Szilágyi2015-06-052-0/+4
| |
* | eth, eth/downloader: fix #1098, elevate empty hash errors to peer dropsPéter Szilágyi2015-06-052-3/+3
|/
* Merge pull request #1181 from obscuren/txpool_fixesJeffrey Wilcke2015-06-051-30/+1
|\ | | | | cmd: transaction pool fixes and improvements
| * core, eth, miner: moved nonce management to tx pool.obscuren2015-06-041-29/+0
| | | | | | | | | | | | | | | | 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).
| * cmd/utils, eth: core.NewBlockProcessor no longer needs TxPoolFelix Lange2015-06-041-1/+1
| |
* | eth/downloader: drop log entry from peer, it's covered alreadyPéter Szilágyi2015-06-041-5/+0
| |
* | eth/downloader: log after state updates, easier to debugPéter Szilágyi2015-06-041-5/+3
| |
* | eth/downloader: fix #1178, don't request blocks beyond the cache boundsPéter Szilágyi2015-06-043-15/+35
|/
* eth/downloader: demote peers if they exceed the soft limits at 1 blocks alreadyPéter Szilágyi2015-06-031-3/+8
|
* eth/downloader: add a basic block download congestion controlPéter Szilágyi2015-06-035-55/+67
|
* Update bootnodeTaylor Gerring2015-06-011-1/+1
|
* eth: 100% block propogationobscuren2015-05-281-2/+1
|
* core, eth/downloader: expose the bad hashes, check in downloaderPéter Szilágyi2015-05-282-2/+17
|
* eth: hard disconnect if a peer is flakyPéter Szilágyi2015-05-271-4/+12
|
* Merge pull request #1108 from karalabe/fine-seedingFelix Lange2015-05-271-7/+5
|\ | | | | Fine tune seeder and p2p peer handling
| * cmd/geth, cmd/utils, eth, p2p: pass and honor a no discovery flagPéter Szilágyi2015-05-271-0/+2
| |
| * eth, p2p: start the p2p server even if maxpeers == 0Péter Szilágyi2015-05-261-7/+3
| |
* | core: check negative value transactions. Closes #1109obscuren2015-05-271-1/+0
| |
* | eth/downloader: silence "Added N blocks from..." if N == 0Péter Szilágyi2015-05-261-1/+1
|/
* Merge pull request #1014 from fjl/p2p-dialer-3000Jeffrey Wilcke2015-05-261-1/+1
|\ | | | | p2p: new dialer, peer management without locks
| * eth: stop p2p.Server on shutdownFelix Lange2015-05-251-1/+1
| |
* | eth, eth/downloader: surface downloaded block origin, drop on errorPéter Szilágyi2015-05-265-23/+39
| |