aboutsummaryrefslogtreecommitdiffstats
path: root/eth/filters
Commit message (Collapse)AuthorAgeFilesLines
* eth/filters: add FindOnce for iterator-like operation (#3435)Nick Johnson2016-12-201-20/+50
| | | | | | | | | | | This commit introduces a FindOnce method for filters. FindOnce finds the next block that matches the filter and returns all matching logs from that block. If there are no further matching logs, it returns a nil slice. This method allows callers to iterate over large sets of logs progressively. The changes introduce a small inefficiency relating to mipmaps: the first time a filter is called, it acts as if all mipmaps are matched, and thus iterates several blocks near the requested start point. This is in the interest of simplicity and avoiding duplicate mipmap lookups each time FindOnce is called.
* core, core/vm, eth/filters: move Removed field into vm.LogFelix Lange2016-12-054-109/+63
| | | | | | | | | | | | This field used to be assigned by the filter system and returned through the RPC API. Now that we have a Go client that uses the underlying type, the field needs to move. It is now assigned to true when the RemovedLogs event is generated so the filter system doesn't need to care about the field at all. While here, remove the log list from ChainSideEvent. There are no users of this field right now and any potential users could subscribe to RemovedLogsEvent instead.
* eth/filter: add support for pending logs (#3219)bas-vk2016-11-286-90/+302
|
* eth/filters: simplify query object decodingFelix Lange2016-11-281-47/+44
|
* core, core/state, trie: EIP158, reprice & skip empty account writeJeffrey Wilcke2016-11-132-3/+5
| | | | | | | | | | | | | | | This commit implements EIP158 part 1, 2, 3 & 4 1. If an account is empty it's no longer written to the trie. An empty account is defined as (balance=0, nonce=0, storage=0, code=0). 2. Delete an empty account if it's touched 3. An empty account is redefined as either non-existent or empty. 4. Zero value calls and zero value suicides no longer consume the 25k reation costs. params: moved core/config to params Signed-off-by: Jeffrey Wilcke <jeffrey@ethereum.org>
* core/types: remove header accessorsFelix Lange2016-11-091-2/+2
| | | | | | These accessors were introduced by light client changes, but the only method that is actually used is GetNumberU64. This commit replaces all uses of .GetNumberU64 with .Number.Uint64.
* cmd, eth: added light client and light server modeszsfelfoldi2016-11-094-56/+108
|
* les: light client protocol and APIZsolt Felfoldi2016-11-094-16/+99
|
* rpc: refactor subscriptions and filtersBas van Kervel2016-08-175-722/+928
|
* core: ensure the canonical block is written before the canonical hash is setBas van Kervel2016-08-161-3/+6
|
* Merge pull request #2711 from hdiedrich/1.4.7-filter-races-cleanupFelix Lange2016-07-202-28/+54
|\ | | | | Fix #2710 Filter race: concurrent map read and map write
| * eth: fix #2710 filter racesHenning Diedrich2016-07-042-28/+54
| | | | | | | | and locking bugs found in its wake.
* | accounts, core, eth: pass chain config for chain maker to test DAOPéter Szilágyi2016-07-151-2/+2
|/
* core: improved chainDb using sequential keyszsfelfoldi2016-06-073-6/+7
|
* eth/filter: bugfix which can cause a nil pointer crash when parsing filter ↵Bas van Kervel2016-05-172-38/+234
| | | | arguments
* eth/filters: ignore logs that don't match filter criteria on chain reorgBas van Kervel2016-04-281-1/+1
|
* rpc: remove NotifierContextKeyFelix Lange2016-04-161-1/+1
| | | | | | | 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-153-8/+8
|
* all: update license informationFelix Lange2016-04-155-9/+41
|
* rpc: add pub/sub supportBas van Kervel2016-04-021-13/+66
|
* eth: various typosLeif Jurvetson2016-03-162-2/+2
|
* cmd, eth, ethdb, node: prioritise chaindata for resources, bump cachePéter Szilágyi2016-03-091-2/+2
|
* 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.
* 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.
* cmd, eth, rpc: fix some RPC issues with pending blocksPéter Szilágyi2016-02-031-2/+2
|
* rpc: migrated the RPC insterface to a new reflection based RPC layerBas van Kervel2016-01-261-1/+1
|
* rpc: new RPC implementation with pub/sub supportBas van Kervel2015-12-141-0/+575
|
* core, eth, miner, xeth: clean up tx/receipt db accessorsPéter Szilágyi2015-11-191-4/+4
|
* 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.
* core, eth, trie: fix data races and merge/review issuesPéter Szilágyi2015-10-211-17/+16
|
* core: differentiate receipt concensus and storage decodingPéter Szilágyi2015-10-191-1/+1
|
* core, eth/filters, miner, xeth: Optimised log filteringJeffrey Wilcke2015-10-172-63/+255
| | | | | | | 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
|
* core, eth, event, miner, xeth: fix event post / subscription racePéter Szilágyi2015-10-121-16/+28
|
* cmd/geth, cmd/utils, core, rpc: renamed to blockchainJeffrey Wilcke2015-10-042-7/+12
| | | | | | * 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".