Commit Graph

11208 Commits

Author SHA1 Message Date
Ian Norden
65e9874da3 review fixes and fixes for issues ran into in integration 2019-09-09 19:58:38 -05:00
Ian Norden
5fa40688af cli parameter to limit statediffing to select account addresses + test 2019-09-09 19:58:38 -05:00
Ian Norden
f67a060c8c make state diff rlp serializable 2019-09-09 19:58:38 -05:00
Ian Norden
6e6b421c48 option to process intermediate nodes 2019-09-09 19:58:38 -05:00
Ian Norden
ba5057158d make proofs and paths optional + compress service loop into single for loop (may be missing something here) 2019-09-09 19:58:38 -05:00
Ian Norden
e1ed4951aa refactoring state diff service and adding api which allows for streaming state diff payloads over an rpc websocket subscription 2019-09-09 19:58:38 -05:00
Ian Norden
eca50a6078 refactoring statediff builder and types and adjusted to relay proofs and paths (still need to make this optional) 2019-09-09 19:58:38 -05:00
Ian Norden
0acab0c3dd refactoring/reorganizing packages 2019-09-09 19:58:38 -05:00
Elizabeth
efbb9042ac Statediff for full node (#6)
* Open a trie from the in-memory database

* Use a node's LeafKey as an identifier instead of the address

It was proving difficult to find look the address up from a given path
with a full node (sometimes the value wouldn't exist in the disk db).
So, instead, for now we are using the node's LeafKey with is a Keccak256
hash of the address, so if we know the address we can figure out which
LeafKey it matches up to.

* Make sure that statediff has been processed before pruning

* Use blockchain stateCache.OpenTrie for storage diffs

* Clean up log lines and remove unnecessary fields from builder

* Apply go fmt changes

* Add a sleep to the blockchain test

* Address PR comments

* Address PR comments
2019-09-09 19:58:38 -05:00
Elizabeth
47b39271d0 Gracefully exit geth command(#4) 2019-09-09 17:03:50 -05:00
Elizabeth Engelman
119e5dfebe Apply gosimple changes to statediff 2019-09-09 17:03:50 -05:00
Elizabeth Engelman
ba8abf407f Apply goimports to statediff 2019-09-09 17:03:50 -05:00
Elizabeth Engelman
f486e20e7b Apply go fmt changes to statediff 2019-09-09 17:03:50 -05:00
Elizabeth
6932b03a21 Write state diff to CSV (#2)
* port statediff from 9b7fd9af80/statediff/statediff.go; minor fixes

* integrating state diff extracting, building, and persisting into geth processes

* work towards persisting created statediffs in ipfs; based off github.com/vulcanize/eth-block-extractor

* Add a state diff service

* Remove diff extractor from blockchain

* Update imports

* Move statediff on/off check to geth cmd config

* Update starting state diff service

* Add debugging logs for creating diff

* Add statediff extractor and builder tests and small refactoring

* Start to write statediff to a CSV

* Restructure statediff directory

* Pull CSV publishing methods into their own file

* Reformatting due to go fmt

* Add gomega to vendor dir

* Remove testing focuses

* Update statediff tests to use golang test pkg

instead of ginkgo

- builder_test
- extractor_test
- publisher_test

* Use hexutil.Encode instead of deprecated common.ToHex

* Remove OldValue from DiffBigInt and DiffUint64 fields

* Update builder test

* Remove old storage value from updated accounts

* Remove old values from created/deleted accounts

* Update publisher to account for only storing current account values

* Update service loop and fetching previous block

* Update testing

- remove statediff ginkgo test suite file
- move mocks to their own dir

* Updates per go fmt

* Updates to tests

* Pass statediff mode and path in through cli

* Return filename from publisher

* Remove some duplication in builder

* Remove code field from state diff output

this is the contract byte code, and it can still be obtained by querying
the db by the codeHash

* Consolidate acct diff structs for updated & updated/deleted accts

* Include block number in csv filename

* Clean up error logging

* Cleanup formatting, spelling, etc

* Address PR comments

* Add contract address and storage value to csv

* Refactor accumulating account row in csv publisher

* Add DiffStorage struct

* Add storage key to csv

* Address PR comments

* Fix publisher to include rows for accounts that don't have store updates

* Update builder test after merging in release/1.8

* Update test contract to include storage on contract intialization

- so that we're able to test that storage diffing works for created and
deleted accounts (not just updated accounts).

* Factor out a common trie iterator method in builder
2019-09-09 17:03:50 -05:00
Péter Szilágyi
67bfc93053
Merge pull request #20033 from karalabe/docker-expose-graphql
Dockerfile: expose GraphQL ports
2019-09-04 15:13:54 +03:00
Péter Szilágyi
ce2da832ac
Dockerfile: expose GraphQL ports 2019-09-04 14:46:07 +03:00
Péter Szilágyi
b4a4a4db71
params: begin Geth v1.9.4 release cycle 2019-09-03 12:12:53 +03:00
Péter Szilágyi
cfbb969da8
params: release Geth v1.9.3 stable 2019-09-03 12:00:38 +03:00
SjonHortensius
1611815b8d cmd/utils: reduce light.maxpeers default for clients to 1/10th (#19933)
Currently light.maxpeers is 100 - after this change it's 10 for non-servers.

Fixes #19820
2019-09-03 10:43:35 +02:00
Péter Szilágyi
b8a9457139
Merge pull request #19915 from holiman/filltx
internal/ethapi: implement fillTransaction
2019-09-03 11:38:11 +03:00
Felix Lange
af16ca177f
rpc: raise limit in TestClientNotificationStorm (#19999) 2019-09-02 12:05:07 +02:00
winsvega
cedf8be435 retesteth: enable maxResults in AccountRange (#20020) 2019-09-02 11:49:49 +02:00
Péter Szilágyi
d5bd38384c
Merge pull request #20019 from holiman/minor_adminfix
eth: disallow overwrite files via admin.exportChain
2019-08-30 15:35:43 +03:00
Martin Holst Swende
292cf7c649
eth: disallow overwrite files via admin.exportChain 2019-08-30 10:39:29 +02:00
gary rong
396f1dd87b les: fix panic (#20013) 2019-08-27 15:29:00 +02:00
gary rong
68502595f6 les: wait for all task goroutines before dropping the peer (#20010)
* les: wait all task routines before drop the peer

* les: address comments

* les: fix issue
2019-08-27 14:07:25 +03:00
Flash Sheridan
a978adfd7c README: change chainID to <arbitrary positive integer> (#20002)
* Change chainId in genesis block to 8888 from 0 

Change chainId in genesis block to 8888 from 0 per Moriteru in https://ethereum.stackexchange.com/a/28082/40230.

* Replace 8888 with “<arbitrary positive integer>”

Per PR review, replace Moriteru’s arbitrary positive integer 8888 with “<arbitrary positive integer>” in chainId field.
2019-08-26 10:44:05 +03:00
Péter Szilágyi
cc9eb91d30
Merge pull request #20004 from karalabe/istanbul-override
cmd, core, eth, les: support --override.istanbul
2019-08-23 12:38:05 +03:00
Péter Szilágyi
e39b2a2bde
acmd, core, eth, les: support --override.istanbul 2019-08-23 12:09:27 +03:00
Péter Szilágyi
c8a1c0a115
Merge pull request #19993 from karalabe/istanbul-eip-integration
core/vm: enable istanbul EIPs in the jump table
2019-08-23 11:55:43 +03:00
Martin Holst Swende
4aeeddc658
tests: implement Istanbul support 2019-08-23 10:01:09 +02:00
Martin Holst Swende
e126b0836a
retesteth: implement istanbul support 2019-08-23 09:48:40 +02:00
SjonHortensius
961aa0533f rpc: enable compression on HTTP transport (#19997)
This change adds support for gzip encoding on HTTP responses.
Gzip encoding is used when the client sets the 'accept-encoding: gzip' header.
Original change by @brianosaurus, with fixes from @SjonHortensius.
2019-08-22 15:18:39 +02:00
Felix Lange
54b271a86d
crypto: add SignatureLength constant and use it everywhere (#19996)
Original change by @jpeletier
2019-08-22 15:14:06 +02:00
alexwang
b90cdbaa79 p2p/enode: allow DNS names in enode URLs (#18524) 2019-08-22 14:23:40 +02:00
SjonHortensius
4d358b9fc0 cmd/utils: customize cli.HelpPrinter to fix alignment (#19956)
This copies cli.printHelp but changes minwidth to 38. Custom flag
code is improved to print the default value using cli.FlagStringer like
all built-in flags do.
2019-08-22 13:32:26 +02:00
Péter Szilágyi
1eaf66ae60
Merge pull request #19995 from karalabe/ios-notag
build: gomobile automaticall adds the ios tag, don't duplicate
2019-08-22 14:18:51 +03:00
Péter Szilágyi
4ef5e9746b
build: gomobile automaticall adds the ios tag, don't duplicate 2019-08-22 14:16:48 +03:00
Péter Szilágyi
060e33fb4c
core/vm: enable istanbul EIPs in the jump table 2019-08-22 13:41:55 +03:00
Andrey Petrov
46ec63b849 ethdb/dbtest: addd test suite for ethdb backends (#19960)
- Move the existing tests from memorydb into a generalized testsuite
that can be run by any ethdb backend implementation.
- Add several more test cases to clarify some non-obvious nuances when
implementing a custom ethdb backend, such as the behaviour of
NewIteratorWithPrefix vs NewIteratorWithStart.
- Add leveldb to the testsuite using in-memory storage for fast
execution.
2019-08-22 11:47:24 +02:00
lmittmann
1cd5bf080e common: unify hex prefix check code (#19937) 2019-08-22 11:45:07 +02:00
HackyMiner
7c229941ac core: log chain reorg/split metrics (#18950)
* core: log chain reorg/split metrics

* core: report 1-block reorgs on the metrics too
2019-08-22 12:28:23 +03:00
Péter Szilágyi
ac23073619
Merge pull request #19992 from karalabe/fix-blake2b-386-2
crypto/blake2b: fix 386, round 2
2019-08-22 12:27:54 +03:00
Péter Szilágyi
8e391cec43
crypto/blake2b: fix 386, round 2 2019-08-22 12:24:11 +03:00
Péter Szilágyi
5b2c47a575
Merge pull request #19990 from karalabe/fix-blake2b-386
crypto/blake2b: fix non-amd64 builds
2019-08-22 11:50:40 +03:00
Péter Szilágyi
8517dd463d
crypto/blake2b: fix non-amd64 builds 2019-08-22 11:22:16 +03:00
Péter Szilágyi
22fdbee8ed
Merge pull request #19972 from keep-network/istanbul-eip-152-blake2b-f-precompile
core/vm, crypto/blake2b: add BLAKE2b compression func at 0x09
2019-08-22 11:09:31 +03:00
Péter Szilágyi
1bccafe5ef
core/vm, crypto/blake2b: add SSE, AVX and AVX2 code 2019-08-21 13:09:15 +03:00
Piotr Dyraga
2890f060b7
core/vm, crypto/blake2b: add BLAKE2b compression func at 0x09
The precompile at 0x09 wraps the BLAKE2b F compression function:
https://tools.ietf.org/html/rfc7693#section-3.2

The precompile requires 6 inputs tightly encoded, taking exactly 213
bytes, as explained below.

- `rounds` - the number of rounds - 32-bit unsigned big-endian word
- `h` - the state vector - 8 unsigned 64-bit little-endian words
- `m` - the message block vector - 16 unsigned 64-bit little-endian words
- `t_0, t_1` - offset counters - 2 unsigned 64-bit little-endian words
- `f` - the final block indicator flag - 8-bit word

[4 bytes for rounds][64 bytes for h][128 bytes for m][8 bytes for t_0]
[8 bytes for t_1][1 byte for f]

The boolean `f` parameter is considered as `true` if set to `1`.
The boolean `f` parameter is considered as `false` if set to `0`.
All other values yield an invalid encoding of `f` error.

The precompile should compute the F function as specified in the RFC
(https://tools.ietf.org/html/rfc7693#section-3.2) and return the updated
state vector `h` with unchanged encoding (little-endian).

See EIP-152 for details.
2019-08-21 13:09:15 +03:00
gary rong
2ed729d38e les: handler separation (#19639)
les: handler separation
2019-08-21 11:29:34 +02:00