aboutsummaryrefslogtreecommitdiffstats
path: root/eth/filters/filter.go
Commit message (Collapse)AuthorAgeFilesLines
* eth/filters: make filterLogs func more readable (#16920)knarfeh2018-06-141-3/+3
|
* core, eth: minor txpool event cleanupsPéter Szilágyi2018-05-181-1/+1
|
* all: collate new transaction events togetherrjl4934564422018-05-181-1/+1
|
* eth, les, light: filter on logs only, derive receipts on demandPéter Szilágyi2018-02-231-3/+16
|
* core/bloombits: handle non 8-bit boundary section matchesPéter Szilágyi2017-11-151-0/+1
|
* build: enable unconvert linter (#15456)ferhat elmas2017-11-111-1/+1
| | | | | | | | | * build: enable unconvert linter - fixes #15453 - update code base for failing cases * cmd/puppeth: replace syscall.Stdin with os.Stdin.Fd() for unconvert linter
* les, light: LES/2 protocol version (#14970)Felföldi Zsolt2017-10-241-5/+8
| | | | | | | | | | | | | | | | | | This PR implements the new LES protocol version extensions: * new and more efficient Merkle proofs reply format (when replying to a multiple Merkle proofs request, we just send a single set of trie nodes containing all necessary nodes) * BBT (BloomBitsTrie) works similarly to the existing CHT and contains the bloombits search data to speed up log searches * GetTxStatusMsg returns the inclusion position or the pending/queued/unknown state of a transaction referenced by hash * an optional signature of new block data (number/hash/td) can be included in AnnounceMsg to provide an option for "very light clients" (mobile/embedded devices) to skip expensive Ethash check and accept multiple signatures of somewhat trusted servers (still a lot better than trusting a single server completely and retrieving everything through RPC). The new client mode is not implemented in this PR, just the protocol extension.
* core/bloombits, eth/filters: handle null topics (#15195)Péter Szilágyi2017-09-271-15/+7
| | | | | | | | | | When implementing the new bloombits based filter, I've accidentally broke null topics by removing the special casing of common.Hash{} filter rules, which acted as the wildcard topic until now. This PR fixes the regression, but instead of using the magic hash common.Hash{} as the null wildcard, the PR reworks the code to handle nil topics during parsing, converting a JSON null into nil []common.Hash topic.
* core/bloombits: use general filters instead of addresses and topicsZsolt Felfoldi2017-09-061-1/+18
|
* core, eth: clean up bloom filtering, add some testsPéter Szilágyi2017-09-061-175/+95
|
* core, eth: add bloombit indexer, filter based on itZsolt Felfoldi2017-09-061-80/+152
|
* core, light: send chain events using event.Feed (#14865)Miya Chen2017-08-181-0/+4
|
* eth: fix megacheck warningsEgon Elbre2017-08-081-3/+0
|
* all: import "context" instead of "golang.org/x/net/context"Felix Lange2017-03-231-3/+2
| | | | | | | | | | There is no need to depend on the old context package now that the minimum Go version is 1.7. The move to "context" eliminates our weird vendoring setup. Some vendored code still uses golang.org/x/net/context and it is now vendored in the normal way. This change triggered new vet checks around context.WithTimeout which didn't fire with golang.org/x/net/context.
* core/vm: move Log to core/typesFelix Lange2017-01-061-9/+8
| | | | | | | | This significantly reduces the dependency closure of ethclient, which no longer depends on core/vm as of this change. All uses of vm.Logs are replaced by []*types.Log. NewLog is gone too, the constructor simply returned a literal.
* 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-051-15/+12
| | | | | | | | | | | | 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-281-4/+11
|
* cmd, eth: added light client and light server modeszsfelfoldi2016-11-091-33/+44
|
* les: light client protocol and APIZsolt Felfoldi2016-11-091-5/+9
|
* rpc: refactor subscriptions and filtersBas van Kervel2016-08-171-59/+61
|
* core: ensure the canonical block is written before the canonical hash is setBas van Kervel2016-08-161-3/+6
|
* core: improved chainDb using sequential keyszsfelfoldi2016-06-071-3/+4
|
* all: update license informationFelix Lange2016-04-151-1/+1
|
* eth/filters: ✨ pending logs ✨Jeffrey Wilcke2016-02-131-0/+3
| | | | | | 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-051-1/+1
| | | | | | 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.
* core: differentiate receipt concensus and storage decodingPéter Szilágyi2015-10-191-1/+1
|
* core, eth/filters, miner, xeth: Optimised log filteringJeffrey Wilcke2015-10-171-48/+68
| | | | | | | 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-161-7/+1
|
* cmd/geth, cmd/utils, core, rpc: renamed to blockchainJeffrey Wilcke2015-10-041-6/+11
| | | | | | * 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-041-8/+8
| | | | | | | | | | | | | | | | | * 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-031-0/+211
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".