aboutsummaryrefslogtreecommitdiffstats
path: root/eth
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #2686 from obscuren/issue-2542Péter Szilágyi2016-06-141-0/+1
|\ | | | | core/state, eth: Updated suicides objects when tracing transactions
| * core/state, eth: Updated suicides objects when tracing transactionsJeffrey Wilcke2016-06-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Consensus rules dictate that objects can only be removed during the finalisation of the transaction (i.e. after all calls have finished). Thus calling a suicided contract twice from the same transaction: A->B(S)->ret(A)->B(S) results in 2 suicides. Calling the suicided object twice from two transactions: A->B(S), A->B, results in only one suicide and a call to an empty object. Our current debug tracing functionality replays all transaction that were executed prior to the targetted transaction in order to provide the user with an accurate trace. As a side effect to calling StateDB.IntermediateRoot it also deletes any suicides objects. Our tracing code never calls this function because it isn't interested in the intermediate root. Becasue of this it caused a bug in the tracing code where transactions that were send to priviously deleted objects resulted in two suicides rather than one suicide and a call to an empty object. Fixes #2542
* | Merge pull request #2455 from zsfelfoldi/chaindbJeffrey Wilcke2016-06-1311-149/+400
|\ \ | | | | | | core: improved chain db performance by using sequential keys
| * | core: improved chainDb using sequential keyszsfelfoldi2016-06-0711-149/+400
| |/
* / eth/downloader: fix occasional fast sync critical section test failsPéter Szilágyi2016-06-131-1/+3
|/
* eth: don't accept transactions until we sync up with the networkPéter Szilágyi2016-06-063-4/+13
|
* eth/downloader: adaptive quality of service tuningPéter Szilágyi2016-06-063-48/+235
|
* eth/downloader: make fast sync resilient to critical section failsPéter Szilágyi2016-06-022-26/+109
|
* Merge pull request #2637 from karalabe/downloader-always-cancelPéter Szilágyi2016-05-312-1/+13
|\ | | | | eth/downloader: ensure cancel channel is closed post sync
| * eth/downloader: ensure cancel channel is closed post syncPéter Szilágyi2016-05-302-1/+13
| |
* | eth/downloader, trie: pull head state concurrently with chainPéter Szilágyi2016-05-272-29/+35
|/
* Merge pull request #2614 from fjl/bad-block-reportJeffrey Wilcke2016-05-262-2/+93
|\ | | | | eth: enable bad block reports
| * eth: enable bad block reportsFelix Lange2016-05-252-2/+93
| | | | | | | | | | | | | | | | | | | | | | | | We used to have reporting of bad blocks, but it was disabled before the Frontier release. We need it back because users are usually unable to provide the full RLP data of a bad block when it occurs. A shortcoming of this particular implementation is that the origin peer is not tracked for blocks received during eth/63 sync. No origin peer info is still better than no report at all though.
* | eth/api: fixed GetCompilers when there is no error creating SolcRémy Roy2016-05-251-1/+1
|/
* Merge pull request #2564 from bas-vk/submit-txJeffrey Wilcke2016-05-232-68/+116
|\ | | | | eth: add new RPC method (personal.) SignAndSendTransaction
| * eth: add new RPC method (personal.) SignAndSendTransactionBas van Kervel2016-05-202-68/+116
| |
* | Merge pull request #2575 from bas-vk/filterJeffrey Wilcke2016-05-232-38/+234
|\ \ | | | | | | eth/filter: bugfix which can cause a nil pointer crash when parsing f…
| * | eth/filter: bugfix which can cause a nil pointer crash when parsing filter ↵Bas van Kervel2016-05-172-38/+234
| | | | | | | | | | | | arguments
* | | Merge pull request #2589 from karalabe/estimate-remove-codecheckJeffrey Wilcke2016-05-202-22/+11
|\ \ \ | | | | | | | | accounts/abi/bind, eth: rely on getCode for sanity checks, not estimate and call
| * | | accounts/abi/bind, eth: rely on getCode for sanity checks, not estimate and callPéter Szilágyi2016-05-202-22/+11
| | |/ | |/|
* | | Merge pull request #2315 from karalabe/concurrent-headers-2Jeffrey Wilcke2016-05-204-211/+643
|\ \ \ | |/ / |/| | eth/downloader: concurrent header downloads
| * | eth/downloader: fix reviewer commentsPéter Szilágyi2016-05-202-9/+32
| | |
| * | eth/downloader: stream partial skeleton filling to processorPéter Szilágyi2016-05-173-19/+55
| | |
| * | eth/downloader: implement concurrent header downloadsPéter Szilágyi2016-05-174-211/+584
| | |
* | | eth: fixed regression in eth_signTransaction fixes #2578Jeffrey Wilcke2016-05-181-1/+1
| |/ |/| | | | | | | Sign transaction returned the unsigned transaction rather than the signed one.
* | eth: skip transaction handling during fast syncPéter Szilágyi2016-05-173-14/+23
|/
* eth/downloader: bound fork ancestry and allow heavy short forksPéter Szilágyi2016-05-132-43/+201
|
* Merge pull request #2523 from fjl/shutdownPéter Szilágyi2016-05-095-32/+66
|\ | | | | core, eth, miner: improve shutdown synchronisation
| * core, eth, miner: improve shutdown synchronisationFelix Lange2016-05-095-32/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Shutting down geth prints hundreds of annoying error messages in some cases. The errors appear because the Stop method of eth.ProtocolManager, miner.Miner and core.TxPool is asynchronous. Left over peer sessions generate events which are processed after Stop even though the database has already been closed. The fix is to make Stop synchronous using sync.WaitGroup. For eth.ProtocolManager, in order to make use of WaitGroup safe, we need a way to stop new peer sessions from being added while waiting on the WaitGroup. The eth protocol Run function now selects on a signaling channel and adds to the WaitGroup only if ProtocolManager is not shutting down. For miner.worker and core.TxPool the number of goroutines is static, WaitGroup can be used in the usual way without additional synchronisation.
* | eth: fixed tracing functions using the current header instead of parentJeffrey Wilcke2016-05-091-2/+2
|/ | | | Fixes #2525
* release, all: integrate the release service into gethPéter Szilágyi2016-05-023-25/+137
|
* Merge pull request #2493 from almindor/developFelix Lange2016-04-301-0/+11
|\ | | | | eth: add personal_importRawKey
| * eth: add personal_importRawKey for runtime private key importAles Katona2016-04-281-0/+11
| |
* | eth/filters: ignore logs that don't match filter criteria on chain reorgBas van Kervel2016-04-281-1/+1
| |
* | accounts/abi/bind, eth: add contract non-existent errorPéter Szilágyi2016-04-271-0/+15
|/
* rpc: remove NotifierContextKeyFelix Lange2016-04-163-4/+4
| | | | | | | Context keys must have a unique type in order to prevent any unintented clashes. The code used int(1) as key. Fix it by implementing the pattern recommended by package context.
* all: fix go vet warningsFelix Lange2016-04-159-26/+24
|
* core, core/types, eth: add and use Block.BodyFelix Lange2016-04-151-2/+2
| | | | | This fixes a few uses of unkeyed Body literals which go vet was complaining about.
* all: update license informationFelix Lange2016-04-1512-25/+105
|
* eth, rpc: make trace configs optionalPéter Szilágyi2016-04-141-8/+14
|
* eth: fix single transaction tracing (run prev mutations)Péter Szilágyi2016-04-141-41/+47
|
* eth: add chaindbProperty to debug APIFelix Lange2016-04-131-0/+18
|
* Merge pull request #2284 from fjl/accounts-addr-cachePéter Szilágyi2016-04-124-84/+43
|\ | | | | accounts: cache key addresses
| * accounts: improve API and add documentationFelix Lange2016-04-121-7/+6
| | | | | | | | | | - Sign takes common.Address, not Account - Import/Export methods work with encrypted JSON keys
| * eth: report unlock errors to RPC clientsFelix Lange2016-04-121-4/+3
| |
| * accounts: streamline APIFelix Lange2016-04-122-69/+31
| | | | | | | | | | | | - Manager.Accounts no longer returns an error. - Manager methods take Account instead of common.Address. - All uses of Account with unkeyed fields are converted.
| * accounts, crypto: move keystore to package accountsFelix Lange2016-04-122-5/+4
| | | | | | | | | | | | | | | | | | | | The account management API was originally implemented as a thin layer around crypto.KeyStore, on the grounds that several kinds of key stores would be implemented later on. It turns out that this won't happen so KeyStore is a superflous abstraction. In this commit crypto.KeyStore and everything related to it moves to package accounts and is unexported.
* | eth: gracefully fail if chain config is missingPéter Szilágyi2016-04-121-0/+4
|/
* Merge pull request #2359 from bas-vk/rpc-optional-argsJeffrey Wilcke2016-04-122-28/+41
|\ | | | | rpc: several fixes and support for optional arguments
| * rpc: various fixes/enhancementsBas van Kervel2016-04-122-28/+41
| | | | | | | | | | | | | | | | rpc: be less restrictive on the request id rpc: improved documentation console: upgrade web3.js to version 0.16.0 rpc: cache http connections rpc: rename wsDomains parameter to wsOrigins
* | eth: fix GPU miner chain config regressionPéter Szilágyi2016-04-111-2/+1
|/
* Merge pull request #2407 from bas-vk/rpc-notificationsJeffrey Wilcke2016-04-054-91/+271
|\ | | | | RPC pub sub
| * rpc: add pub/sub supportBas van Kervel2016-04-024-91/+271
| |
* | cmd/geth, eth: move --genesis deprecation warning to cmd/gethFelix Lange2016-04-021-4/+0
|/ | | | This prevents display of the warning for --dev and --olympic.
* Merge pull request #2402 from obscuren/eth-sign-fixJeffrey Wilcke2016-04-011-4/+4
|\ | | | | eth: enforce signing hashes using eth_sign instead of arbitrary data
| * eth: enforce signing hashes using eth_sign instead of arbitrary dataJeffrey Wilcke2016-04-011-4/+4
| |
* | core: transition db now also returns the required gas amountJeffrey Wilcke2016-04-011-3/+3
| | | | | | | | | | | | | | | | | | Exposes some core methods to transition and compute new state information and adds an additional return value to the transition db method to fetch required gas for that particular message (excluding gas refunds from any SSTORE[X] = 0 and SUICIDE. Fixes #2395
* | accounts/a/b/backends, core: chain maker homestead block set to 0Jeffrey Wilcke2016-04-011-2/+1
| | | | | | | | | | | | | | The chain maker and the simulated backend now run with a homestead phase beginning at block 0 (i.e. there's no frontier). This commit also fixes up #2388
* | core: added basic chain configurationJeffrey Wilcke2016-04-014-25/+52
|/ | | | | | | | | Added chain configuration options and write out during genesis database insertion. If no "config" was found, nothing is written to the database. Configurations are written on a per genesis base. This means that any chain (which is identified by it's genesis hash) can have their own chain settings.
* eth: fix accidental nil panic on nil errorsPéter Szilágyi2016-03-311-4/+13
|
* eth: manually convert errors to strings on the trace API (json cannot)Péter Szilágyi2016-03-311-11/+11
|
* accounts/abi/bind, cmd/abigen: Go API generator around an EVM ABIPéter Szilágyi2016-03-241-1/+1
|
* Merge pull request #2141 from obscuren/evm-initJeffrey Wilcke2016-03-242-93/+206
|\ | | | | core, core/vm, tests: changed the initialisation behaviour of the EVM
| * core, eth, cmd: temporary work around for enabling the jitJeffrey Wilcke2016-03-241-0/+9
| | | | | | | | | | This commit serves as a temporary workaround for enabling the jit until the block customisation PR is merged in.
| * eth/api: added root to the receiptsJeffrey Wilcke2016-03-241-0/+3
| |
| * eth, rpc: implemented block debugging rpc callsJeffrey Wilcke2016-03-241-87/+193
| | | | | | | | | | | | | | | | | | Implemented the following block debugging RPC calls * Block(RLP) * BlockByFile(fileName) * BlockByNumber(number) * BlockByHash(hash)
| * core: Added EVM configuration optionsJeffrey Wilcke2016-03-241-8/+3
| | | | | | | | | | The EVM is now initialised with an additional configured object that allows you to turn on debugging options.
* | eth, miner: fetch pending block/state in on go (data race)Péter Szilágyi2016-03-161-2/+4
|/
* core, eth: replace reorganiz with reorganisLeif Jurvetson2016-03-161-2/+2
|
* eth: various typosLeif Jurvetson2016-03-1611-29/+29
|
* eth/downloader: fix a throughput estimation data racePéter Szilágyi2016-03-101-2/+2
|
* cmd, eth, ethdb, node: prioritise chaindata for resources, bump cachePéter Szilágyi2016-03-092-8/+5
|
* eth: forward empty body responses to the downlaoderPéter Szilágyi2016-03-031-1/+5
|
* Merge pull request #2215 from bas-vk/estimategasPéter Szilágyi2016-03-011-34/+31
|\ | | | | core: improved check for contract creation
| * core: improved check for contract creationBas van Kervel2016-02-161-34/+31
| |
* | eth/downloader: fix premature exit before notifying all part fetchersPéter Szilágyi2016-02-291-1/+3
| |
* | eth/downloader: fix header download limitingFelix Lange2016-02-261-1/+1
| | | | | | | | Fixes #2201
* | Merge pull request #2260 from karalabe/ethash-cache-fixesPéter Szilágyi2016-02-241-3/+8
|\ \ | | | | | | Godeps, eth, tests: update ethash, used shared for testing
| * | Godeps, eth, tests: update ethash, used shared for testingPéter Szilágyi2016-02-241-3/+8
| | |
* | | Merge pull request #2251 from karalabe/increase-downlaoder-queuePéter Szilágyi2016-02-242-1/+6
|\ \ \ | | | | | | | | eth/downloader: bump the download queue size to prevent starvation
| * | | eth/downloader: bump the download queue size to prevent starvationPéter Szilágyi2016-02-232-1/+6
| |/ /
* | | Merge pull request #2242 from jimenezrick/upstream-cryptoJeffrey Wilcke2016-02-242-2/+2
|\ \ \ | |/ / |/| | Closes #2241: Use Keccak-256 from golang.org/x/crypto/sha3 and mention explicitly
| * | all: Rename crypto.Sha3{,Hash}() to crypto.Keccak256{,Hash}()Ricardo Catalinas Jiménez2016-02-222-2/+2
| | | | | | | | | | | | As we aren't really using the standarized SHA-3
* | | Merge pull request #2234 from obscuren/tx-rpc-fixPéter Szilágyi2016-02-231-9/+9
|\ \ \ | | | | | | | | eth: fixed homestead tx check
| * | | eth: fixed homestead tx checkJeffrey Wilcke2016-02-201-9/+9
| |/ / | | | | | | | | | | | | | | | | | | When a block is queried for retrieval we should add a check whether the block falls within the frontier rules. If we'd always use `From` retrieving transaction might fail. This PR temporarily changes everything to `FromFrontier` (safe!).
* | | Merge pull request #2220 from karalabe/fix-rollback-lockPéter Szilágyi2016-02-231-2/+28
|\ \ \ | |/ / |/| | eth/downloader: fix partial rollback and ancestor lookup
| * | eth/downloader: fix partial rollback and ancestor lookupPéter Szilágyi2016-02-191-2/+28
| |/
* / parmas, crypto, core, core/vm: homestead consensus protocol changesGustav Simonsson2016-02-181-7/+8
|/ | | | | | | | * change gas cost for contract creating txs * invalidate signature with s value greater than secp256k1 N / 2 * OOG contract creation if not enough gas to store code * new difficulty adjustment algorithm * new DELEGATECALL op code
* eth/filters: ✨ pending logs ✨Jeffrey Wilcke2016-02-134-40/+119
| | | | | | Pending logs are now filterable through the Go API. Filter API changed such that each filter type has it's own bucket and adding filter explicitly requires you specify the bucket to put it in.
* Merge pull request #2195 from obscuren/gpo-rpcPéter Szilágyi2016-02-112-15/+14
|\ | | | | eth: Added GPO to suggest default gas prices
| * eth: Added GPO to suggest default gas pricesJeffrey Wilcke2016-02-102-15/+14
| | | | | | | | | | | | | | | | | | This PR fixes a regression of the RPC where the default gas price that was being used for transaction wasn't properly using the GPO. This PR adds the GPO back to suggest gas prices rather than the hardcoded default of 10000000000000. Closes #2194
* | eth, eth/downloader, jsre: surface state sync progress through the APIPéter Szilágyi2016-02-104-35/+50
| |
* | eth, miner: move the public miner api into eth to access etherbasePéter Szilágyi2016-02-092-1/+53
| |
* | eth/downloader: raise pending state limit that prevented concurrencyPéter Szilágyi2016-02-082-3/+3
|/
* eth: sendTransaction would not report the error when tx could not be added ↵Bas van Kervel2016-02-081-1/+1
| | | | to tx pool
* Merge pull request #2106 from obscuren/out-of-bound-logsJeffrey Wilcke2016-02-064-26/+132
|\ | | | | eth/filters: added notifications for out of bound log events
| * eth/filters: added notifications for out of bound log eventsJeffrey Wilcke2016-02-054-26/+132
| | | | | | | | | | | | Out of Bound log events are events that were removed due to a fork. When logs are received the filtering mechanism should check for the `removed` field on the json structure.
* | rpc: add jsonrpc version to module request, use json typesPéter Szilágyi2016-02-041-2/+1
|/
* cmd, eth, rpc: fix some RPC issues with pending blocksPéter Szilágyi2016-02-032-106/+96
|
* Merge pull request #2156 from ppratscher/add_replay_txPéter Szilágyi2016-02-031-0/+139
|\ | | | | core/vm, rpc/api: added debug_replayTransaction RPC call
| * core/vm, rpc/api: renamed to debug.replayTransaction, migrated to new RPC, ↵Peter Pratscher2016-02-021-0/+139
| | | | | | | | | | | | | | | | integrated feedback Integrated code review suggestions Integrated last review comments
* | core, eth, rpc/api: rpc method to inspect the txpool queuePéter Szilágyi2016-02-011-0/+74
|/
* rpc: migrated the RPC insterface to a new reflection based RPC layerBas van Kervel2016-01-264-38/+99
|
* eth: changed NodeInfo Genesis and Head typesBas van Kervel2016-01-181-6/+6
|
* core, eth/downloader: ensure state presence in ancestor lookupPéter Szilágyi2016-01-044-60/+72
|
* eth/downloader: throttling tests are time-sensitive, don't run parallelPéter Szilágyi2015-12-301-3/+1
|
* common: remove old RLP implementation, Value and ExtPackageFelix Lange2015-12-181-12/+2
| | | | | In order to make this happen, kill all remaining trivial uses of common/{rlp,value}.go. The non-trivial ones have been updated earlier.
* eth/downloader: fix negative balance issue in testsFelix Lange2015-12-181-2/+5
| | | | | | | | | | The test chain generated by makeChainFork included invalid uncle headers, crashing the generator during the state commit. The headers were invalid because they used the iteration counter as the block number, even though makeChainFork uses a block with number > 0 as the parent. Fix this by introducing BlockGen.Number, which allows accessing the actual number of the block being generated.
* Merge pull request #1997 from zsfelfoldi/gasprice2Jeffrey Wilcke2015-12-171-0/+2
|\ | | | | core: tx pool skip price validation for "owned" transactions
| * core: tx pool skip price validation for "owned" transactionszsfelfoldi2015-12-161-0/+2
| |
* | eth: fix #2076, where end of hash query was interpreted number queryPéter Szilágyi2015-12-162-1/+23
|/
* core, eth, node, rpc: port the admin and debug APIPéter Szilágyi2015-12-152-15/+215
|
* rpc: new RPC implementation with pub/sub supportBas van Kervel2015-12-144-0/+1915
|
* eth: use global event mux insteadBas van Kervel2015-12-011-1/+1
|
* 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
|