Commit Graph

10079 Commits

Author SHA1 Message Date
b66f793443 rpc: increase maxRequestContentLength size to 512kB (#17595) 2018-09-25 12:27:18 +02:00
6663e5da10 all: fix various comment typos (#17748) 2018-09-25 12:26:35 +02:00
30cd5c1854 all: new p2p node representation (#17643)
Package p2p/enode provides a generalized representation of p2p nodes
which can contain arbitrary information in key/value pairs. It is also
the new home for the node database. The "v4" identity scheme is also
moved here from p2p/enr to remove the dependency on Ethereum crypto from
that package.

Record signature handling is changed significantly. The identity scheme
registry is removed and acceptable schemes must be passed to any method
that needs identity. This means records must now be validated explicitly
after decoding.

The enode API is designed to make signature handling easy and safe: most
APIs around the codebase work with enode.Node, which is a wrapper around
a valid record. Going from enr.Record to enode.Node requires a valid
signature.

* p2p/discover: port to p2p/enode

This ports the discovery code to the new node representation in
p2p/enode. The wire protocol is unchanged, this can be considered a
refactoring change. The Kademlia table can now deal with nodes using an
arbitrary identity scheme. This requires a few incompatible API changes:

  - Table.Lookup is not available anymore. It used to take a public key
    as argument because v4 protocol requires one. Its replacement is
    LookupRandom.
  - Table.Resolve takes *enode.Node instead of NodeID. This is also for
    v4 protocol compatibility because nodes cannot be looked up by ID
    alone.
  - Types Node and NodeID are gone. Further commits in the series will be
    fixes all over the the codebase to deal with those removals.

* p2p: port to p2p/enode and discovery changes

This adapts package p2p to the changes in p2p/discover. All uses of
discover.Node and discover.NodeID are replaced by their equivalents from
p2p/enode.

New API is added to retrieve the enode.Node instance of a peer. The
behavior of Server.Self with discovery disabled is improved. It now
tries much harder to report a working IP address, falling back to
127.0.0.1 if no suitable address can be determined through other means.
These changes were needed for tests of other packages later in the
series.

* p2p/simulations, p2p/testing: port to p2p/enode

No surprises here, mostly replacements of discover.Node, discover.NodeID
with their new equivalents. The 'interesting' API changes are:

 - testing.ProtocolSession tracks complete nodes, not just their IDs.
 - adapters.NodeConfig has a new method to create a complete node.

These changes were needed to make swarm tests work.

Note that the NodeID change makes the code incompatible with old
simulation snapshots.

* whisper/whisperv5, whisper/whisperv6: port to p2p/enode

This port was easy because whisper uses []byte for node IDs and
URL strings in the API.

* eth: port to p2p/enode

Again, easy to port because eth uses strings for node IDs and doesn't
care about node information in any way.

* les: port to p2p/enode

Apart from replacing discover.NodeID with enode.ID, most changes are in
the server pool code. It now deals with complete nodes instead
of (Pubkey, IP, Port) triples. The database format is unchanged for now,
but we should probably change it to use the node database later.

* node: port to p2p/enode

This change simply replaces discover.Node and discover.NodeID with their
new equivalents.

* swarm/network: port to p2p/enode

Swarm has its own node address representation, BzzAddr, containing both
an overlay address (the hash of a secp256k1 public key) and an underlay
address (enode:// URL).

There are no changes to the BzzAddr format in this commit, but certain
operations such as creating a BzzAddr from a node ID are now impossible
because node IDs aren't public keys anymore.

Most swarm-related changes in the series remove uses of
NewAddrFromNodeID, replacing it with NewAddr which takes a complete node
as argument. ToOverlayAddr is removed because we can just use the node
ID directly.
2018-09-25 00:59:00 +02:00
0ae462fb80 params, swarm: begin Geth v1.8.17, Swarm v0.3.5 cycle 2018-09-24 16:02:07 +03:00
477eb0933b params, swarm: release Geth v1.8.16, Swarm v0.3.4 v1.8.16 2018-09-24 15:59:21 +03:00
1d9d3815e5 crypto/secp256k1: remove useless code (#17728)
`(void)data;` may cause link error on Windows.
2018-09-21 21:42:02 +02:00
06d40d37b8 Merge pull request #17732 from karalabe/faucet-caching
cmd/faucet: cache internal state, avoid sync-trashing les
2018-09-21 14:20:46 +03:00
ee92bc537f Merge pull request #17383 from holiman/eip1283
Eip1283
2018-09-21 14:16:18 +03:00
81080bf8cb core: fix a typo (#17733) 2018-09-21 13:45:42 +03:00
c528e3e3cf cmd/faucet: cache internal state, avoid sync-trashing les 2018-09-21 13:31:00 +03:00
1a16cc71c6 Merge pull request #17730 from karalabe/revert-go1.10-ppa
build: revert launchpad PPAs to Go 1.10
2018-09-21 12:34:22 +03:00
b0d60721f1 build: revert launchpad PPAs to Go 1.10 2018-09-21 11:31:23 +03:00
ab13cd9924 les: fix invalid delivery handling in retriever (#17727) 2018-09-21 10:59:21 +03:00
32c05e82a3 Merge pull request #17726 from karalabe/go-1.11-ppa-fix
build/deb: upgrade launchpad PPA sources to Go 1.11 too
2018-09-21 00:33:26 +03:00
5e32152c02 build/deb: upgrade launchpad PPA sources to Go 1.11 too 2018-09-21 00:33:00 +03:00
457e930f27 eth, miner: prefer locally generated uncles vs remote ones (#17715)
* core, eth: fix dependency cycle

* eth, miner: perfer to locally generated uncle
2018-09-21 00:11:55 +03:00
ba0a8b7887 core, eth: fix dependency cycle (#17720) 2018-09-20 20:02:15 +03:00
f55c26ae6d Merge pull request #17719 from karalabe/update-chts
les, light, params: update light client CHTs
2018-09-20 15:10:04 +03:00
d6254f827b all: protect self-mined block during reorg (#17656) 2018-09-20 15:09:30 +03:00
af89093116 les, light, params: update light client CHTs 2018-09-20 14:14:48 +03:00
f89dce0126 Merge pull request #17718 from karalabe/chain-age-logs
common, core, light: add block age into info logs
2018-09-20 13:01:33 +03:00
0f2ba07c41 common, core, light: add block age into info logs 2018-09-20 12:56:35 +03:00
c37238cae9 les: fix retriever logic (#17705) 2018-09-20 10:46:39 +03:00
da29332c5f core/vm: add switches to select evm+ewasm interpreters (#17687)
Interpreter initialization is left to the PRs implementing them.
Options for external interpreters are passed after a colon in the
`--vm.ewasm` and `--vm.evm` switches.
2018-09-20 10:44:35 +03:00
3fec73500b cmd/evm: EVM prestate initialization (#17685)
* Bugfix #17216: evm loads prestate file properly now

* code gofmted
2018-09-20 08:24:53 +02:00
6975c72981 all: fix various comment typos (#17591)
* swarm: fixed comment typo
* eth: fixed comment typo
* cmd/puppeth: fixed comment typo
2018-09-19 18:10:40 +02:00
c35659c6a0 rpc: enable basic auth for websocket client (#17699) 2018-09-19 18:09:03 +02:00
6f004c46d5 accounts/keystore: double-check keystore file after creation (#17348) 2018-09-19 18:08:38 +02:00
16e95f33b7 whisper: Fix interpretation of to parameter in shh_requestMessages (#16996)
The argument is inclusive rather than exclusive, according to docs.
2018-09-19 17:44:30 +02:00
f5c7d1c8eb swarm/storage: Implement global timeout for fetcher (#17702) 2018-09-19 16:59:10 +02:00
736b45a876 Merge pull request #17701 from karalabe/go-1.11
travis, Dockerfile, appveyor, build: bump to Go 1.11
2018-09-19 15:08:42 +03:00
bd9d79adba cmd/geth: typo export -> import (#17703) 2018-09-19 13:29:40 +03:00
16bc8741bf abi, signer: fix nil dereference in #17633 (#17653)
* abi,signer: fix nil dereference in #17633

* signer/core: tiny typo fix in test error message
2018-09-19 12:07:53 +03:00
0b477712a1 consensus/clique: hide no transaction error (#17614) 2018-09-19 12:06:55 +03:00
faa69bea1c core, eth: fix goimports for Go 1.11 2018-09-19 11:47:09 +03:00
67c332e9b5 travis, Dockerfile, appveyor, build: bump to Go 1.11 2018-09-19 11:29:29 +03:00
360a72d54e tests: disable constantinople statetests 2018-09-19 10:05:44 +02:00
5d921fa3a0 core, params: polish net gas metering PR a bit 2018-09-18 16:29:51 +03:00
1f45ba9bb1 swarm/network: downgrade fetcher unable to request log message severity (#17692) 2018-09-18 14:54:52 +02:00
caa2c23a38 core,state: finish implementing Eip 1283 2018-09-18 13:08:32 +03:00
58374e28d9 core, state: initial implementation of Eip-1283 2018-09-18 13:08:28 +03:00
b8aa5980cf cmd/puppeth: fix comment typo (#17690)
* ethdb: unified code comment style.

* puppeth: it is unnecessary to alloc pre-funded to 256 addresses

* Revert "puppeth: it is unnecessary to alloc pre-funded to 256 addresses"

This reverts commit 5e04fbccf0.

* puppeth: fix comment typo

* Revert "ethdb: unified code comment style."

This reverts commit a581efb3f0.

* cmd/puppeth: fix comment typo
2018-09-18 11:30:39 +03:00
bd58098f2d swarm: Chunk refactor improvements (#17683)
* swarm/network: Protocol bump (for chunk refactor)

* swarm/network: Increase discovery and stream protocol version too

* swarm/network: Increase priority queue cap
2018-09-18 10:17:13 +02:00
5d1d1a808d consensus, ethdb, metrics: implement forced-meter (#17667) 2018-09-17 15:32:34 +03:00
41ac8dd803 Merge pull request #17675 from holiman/eip1234
Eip1234
2018-09-17 15:18:17 +03:00
c1345b0742 cmd/puppeth: fix comment typo (#17684)
* ethdb: unified code comment style.

* puppeth: it is unnecessary to alloc pre-funded to 256 addresses

* Revert "puppeth: it is unnecessary to alloc pre-funded to 256 addresses"

This reverts commit 5e04fbccf0.

* puppeth: fix comment typo

* Revert "ethdb: unified code comment style."

This reverts commit a581efb3f0.
2018-09-17 15:09:09 +03:00
7efb12d29b ethash: documentation + cleanup 2018-09-17 11:53:36 +02:00
cc21928e12 Merge pull request #17622 from karalabe/chain-maker-seal
consensus/clique, core: chain maker clique + error tests
2018-09-17 11:35:42 +03:00
3df7df0386 ethash: less copy-paste for EIP 1234 2018-09-15 23:54:16 +02:00
7c71e936a7 Merge pull request #17674 from eosclassicteam/discord
README: Change gitter badge to discord
2018-09-15 11:11:30 +03:00