Commit Graph

10537 Commits

Author SHA1 Message Date
Péter Szilágyi 4bcc0a37ab
Merge pull request #19473 from karalabe/geth-1.8.27
[1.8.27 backport] eth, les, light: enforce CHT checkpoints on fast-sync too
2019-04-17 15:47:54 +03:00
Péter Szilágyi b5f92e66c6
params, swarm: release Geth v1.8.27 (noop Swarm v0.3.15) 2019-04-17 14:57:38 +03:00
Péter Szilágyi d8787230fa
eth, les, light: enforce CHT checkpoints on fast-sync too 2019-04-17 14:56:58 +03:00
Péter Szilágyi cdae1c59ab
Merge pull request #19437 from zsfelfoldi/fix-sendtx
les: fix SendTx cost calculation and verify cost table
2019-04-10 15:45:13 +03:00
Péter Szilágyi 0b00e19ed9
params, swarm: release Geth v1.8.26 (+noop Swarm v0.3.14) 2019-04-10 15:38:01 +03:00
Zsolt Felfoldi c8d8126bd0 les: check required message types in cost table 2019-04-10 13:12:46 +02:00
Zsolt Felfoldi 0de9f32ae8 les: backported new SendTx cost calculation 2019-04-10 13:12:42 +02:00
Péter Szilágyi 14ae1246b7
Merge pull request #19416 from jmcnevin/cli-fix
Revert flag removal
2019-04-09 11:47:09 +03:00
Péter Szilágyi dc59af8622
params, swarm: hotfix Geth v1.8.25 release to restore rpc flags 2019-04-09 10:58:00 +03:00
Jeremy McNevin 45730cfab3
cmd/geth: fix accidental --rpccorsdomain and --rpcvhosts removal 2019-04-09 10:56:50 +03:00
Péter Szilágyi 4e13a09c50
Merge pull request #19370 from karalabe/geth-1.8.24
Backport PR for the v1.8.24 maintenance release
2019-04-08 16:16:05 +03:00
Péter Szilágyi 009d2fe2d6
params, swarm: release Geth v1.8.24 (noop Swarm 0.3.12) 2019-04-08 16:06:59 +03:00
Martin Holst Swende e872ba7a9e
eth, les, geth: implement cli-configurable global gas cap for RPC calls (#19401)
* eth, les, geth: implement cli-configurable global gas cap for RPC calls

* graphql, ethapi: place gas cap in DoCall

* ethapi: reformat log message
2019-04-08 15:15:13 +03:00
Felix Lange 9d9c6b5847
p2p/discover: bump failure counter only if no nodes were provided (#19362)
This resolves a minor issue where neighbors responses containing less
than 16 nodes would bump the failure counter, removing the node. One
situation where this can happen is a private deployment where the total
number of extant nodes is less than 16.

Issue found by @jsying.
2019-04-08 14:35:50 +03:00
Péter Szilágyi 8ca6454807
params: set Rinkeby Petersburg fork block (4th May, 2019) 2019-04-08 12:14:05 +03:00
Péter Szilágyi 0e63a70505
core: minor code polishes + rebase fixes 2019-04-08 12:04:31 +03:00
rjl493456442 f1b00cffc8
core: re-omit new log event when logs rebirth 2019-04-08 12:02:15 +03:00
Péter Szilágyi 442320a8ae
travis: update builders to xenial to shadow Go releases 2019-04-08 12:00:42 +03:00
Martin Holst Swende af401d03a3
all: simplify timestamps to uint64 (#19372)
* all: simplify timestamps to uint64

* tests: update definitions

* clef, faucet, mobile: leftover uint64 fixups

* ethash: fix tests

* graphql: update schema for timestamp

* ethash: remove unused variable
2019-04-08 12:00:42 +03:00
Péter Szilágyi 80a2a35bc3
trie: there's no point in retrieving the metaroot 2019-04-08 12:00:42 +03:00
Péter Szilágyi fca5f9fd6f
common/fdlimit: fix macos file descriptors for Go 1.12 2019-04-02 13:14:21 +03:00
Péter Szilágyi 38c30f8dd8
light, params: update CHTs, integrate CHT for Goerli too 2019-04-02 12:10:06 +03:00
Péter Szilágyi c942700427
Merge pull request #19029 from holiman/update1.8
Update1.8
2019-02-20 10:48:12 +02:00
Péter Szilágyi cde35439e0
params, swarm: release Geth v1.8.23, Swarm v0.3.11 2019-02-20 10:42:02 +02:00
Anton Evangelatov 4f908db69e
cmd/utils: allow for multiple influxdb tags (#18520)
This PR is replacing the metrics.influxdb.host.tag cmd-line flag with metrics.influxdb.tags - a comma-separated key/value tags, that are passed to the InfluxDB reporter, so that we can index measurements with multiple tags, and not just one host tag.

This will be useful for Swarm, where we want to index measurements not just with the host tag, but also with bzzkey and git commit version (for long-running deployments).

(cherry picked from commit 21acf0bc8d)
2019-02-19 17:34:48 +01:00
Jerzy Lasyk 320d132925
swarm/metrics: Send the accounting registry to InfluxDB (#18470)
(cherry picked from commit f28da4f602)
2019-02-19 17:34:42 +01:00
lash 7ae2a7bd84
swarm: Reinstate Pss Protocol add call through swarm service (#19117)
* swarm: Reinstate Pss Protocol add call through swarm service

* swarm: Even less self

(cherry picked from commit d88c6ce6b0)
2019-02-19 13:18:10 +01:00
Kiel barry fd34bf594c
contracts/*: golint updates for this or self warning
(cherry picked from commit 53b823afc8)
2019-02-19 13:18:02 +01:00
holisticode 996230174c
cmd/swarm/swarm-smoke: Trigger chunk debug on timeout (#19101)
* cmd/swarm/swarm-smoke: first version trigger has-chunks on timeout

* cmd/swarm/swarm-smoke: finalize trigger to chunk debug

* cmd/swarm/swarm-smoke: fixed httpEndpoint for trigger

* cmd/swarm/swarm-smoke: port

* cmd/swarm/swarm-smoke: ws not rpc

* cmd/swarm/swarm-smoke: added debug output

* cmd/swarm/swarm-smoke: addressed PR comments

* cmd/swarm/swarm-smoke: renamed track-timeout and track-chunks

(cherry picked from commit 62d7688d0a)
2019-02-19 13:11:53 +01:00
Ferenc Szabo 8857707606
p2p, swarm: fix node up races by granular locking (#18976)
* swarm/network: DRY out repeated giga comment

I not necessarily agree with the way we wait for event propagation.
But I truly disagree with having duplicated giga comments.

* p2p/simulations: encapsulate Node.Up field so we avoid data races

The Node.Up field was accessed concurrently without "proper" locking.
There was a lock on Network and that was used sometimes to access
the  field. Other times the locking was missed and we had
a data race.

For example: https://github.com/ethereum/go-ethereum/pull/18464
The case above was solved, but there were still intermittent/hard to
reproduce races. So let's solve the issue permanently.

resolves: ethersphere/go-ethereum#1146

* p2p/simulations: fix unmarshal of simulations.Node

Making Node.Up field private in 13292ee897
broke TestHTTPNetwork and TestHTTPSnapshot. Because the default
UnmarshalJSON does not handle unexported fields.

Important: The fix is partial and not proper to my taste. But I cut
scope as I think the fix may require a change to the current
serialization format. New ticket:
https://github.com/ethersphere/go-ethereum/issues/1177

* p2p/simulations: Add a sanity test case for Node.Config UnmarshalJSON

* p2p/simulations: revert back to defer Unlock() pattern for Network

It's a good patten to call `defer Unlock()` right after `Lock()` so
(new) error cases won't miss to unlock. Let's get back to that pattern.

The patten was abandoned in 85a79b3ad3,
while fixing a data race. That data race does not exist anymore,
since the Node.Up field got hidden behind its own lock.

* p2p/simulations: consistent naming for test providers Node.UnmarshalJSON

* p2p/simulations: remove JSON annotation from private fields of Node

As unexported fields are not serialized.

* p2p/simulations: fix deadlock in Network.GetRandomDownNode()

Problem: GetRandomDownNode() locks -> getDownNodeIDs() ->
GetNodes() tries to lock -> deadlock

On Network type, unexported functions must assume that `net.lock`
is already acquired and should not call exported functions which
might try to lock again.

* p2p/simulations: ensure method conformity for Network

Connect* methods were moved to p2p/simulations.Network from
swarm/network/simulation. However these new methods did not follow
the pattern of Network methods, i.e., all exported method locks
the whole Network either for read or write.

* p2p/simulations: fix deadlock during network shutdown

`TestDiscoveryPersistenceSimulationSimAdapter` often got into deadlock.
The execution was stuck on two locks, i.e, `Kademlia.lock` and
`p2p/simulations.Network.lock`. Usually the test got stuck once in each
20 executions with high confidence.

`Kademlia` was stuck in `Kademlia.EachAddr()` and `Network` in
`Network.Stop()`.

Solution: in `Network.Stop()` `net.lock` must be released before
calling `node.Stop()` as stopping a node (somehow - I did not find
the exact code path) causes `Network.InitConn()` to be called from
`Kademlia.SuggestPeer()` and that blocks on `net.lock`.

Related ticket: https://github.com/ethersphere/go-ethereum/issues/1223

* swarm/state: simplify if statement in DBStore.Put()

* p2p/simulations: remove faulty godoc from private function

The comment started with the wrong method name.

The method is simple and self explanatory. Also, it's private.
=> Let's just remove the comment.

(cherry picked from commit 50b872bf05)
2019-02-19 13:11:52 +01:00
gluk256 d6c1fcbe04
swarm/pss: refactoring (#19110)
* swarm/pss: split pss and keystore

* swarm/pss: moved whisper to keystore

* swarm/pss: goimports fixed

(cherry picked from commit 12ca3b172a)
2019-02-19 13:11:52 +01:00
Elad 79cac793c0
swarm/storage/netstore: add fetcher cancellation on shutdown (#19049)
swarm/network/stream: remove netstore internal wg
swarm/network/stream: run individual tests with t.Run

(cherry picked from commit 3ee09ba035)
2019-02-19 13:11:52 +01:00
holisticode 5de6b6b529
swarm/network: Saturation check for healthy networks (#19071)
* swarm/network: new saturation for  implementation

* swarm/network: re-added saturation func in Kademlia as it is used elsewhere

* swarm/network: saturation with higher MinBinSize

* swarm/network: PeersPerBin with depth check

* swarm/network: edited tests to pass new saturated check

* swarm/network: minor fix saturated check

* swarm/network/simulations/discovery: fixed renamed RPC call

* swarm/network: renamed to isSaturated and returns bool

* swarm/network: early depth check

(cherry picked from commit 2af24724dd)
2019-02-19 13:11:52 +01:00
Elad 3d2bedf8d0
swarm/storage: fix influxdb gc metrics report (#19102)
(cherry picked from commit 5b8ae7885e)
2019-02-19 13:11:52 +01:00
Janoš Guljaš 8ea3d8ad90
swarm: fix network/stream data races (#19051)
* swarm/network/stream: newStreamerTester cleanup only if err is nil

* swarm/network/stream: raise newStreamerTester waitForPeers timeout

* swarm/network/stream: fix data races in GetPeerSubscriptions

* swarm/storage: prevent data race on LDBStore.batchesC

https://github.com/ethersphere/go-ethereum/issues/1198#issuecomment-461775049

* swarm/network/stream: fix TestGetSubscriptionsRPC data race

https://github.com/ethersphere/go-ethereum/issues/1198#issuecomment-461768477

* swarm/network/stream: correctly use Simulation.Run callback

https://github.com/ethersphere/go-ethereum/issues/1198#issuecomment-461783804

* swarm/network: protect addrCountC in Kademlia.AddrCountC function

https://github.com/ethersphere/go-ethereum/issues/1198#issuecomment-462273444

* p2p/simulations: fix a deadlock calling getRandomNode with lock

https://github.com/ethersphere/go-ethereum/issues/1198#issuecomment-462317407

* swarm/network/stream: terminate disconnect goruotines in tests

* swarm/network/stream: reduce memory consumption when testing data races

* swarm/network/stream: add watchDisconnections helper function

* swarm/network/stream: add concurrent counter for tests

* swarm/network/stream: rename race/norace test files and use const

* swarm/network/stream: remove watchSim and its panic

* swarm/network/stream: pass context in watchDisconnections

* swarm/network/stream: add concurrent safe bool for watchDisconnections

* swarm/storage: fix LDBStore.batchesC data race by not closing it

(cherry picked from commit 3fd6db2bf6)
2019-02-19 13:11:52 +01:00
Elad a0127019c3
swarm: fix uptime gauge update goroutine leak by introducing cleanup functions (#19040)
(cherry picked from commit d596bea2d5)
2019-02-19 13:11:51 +01:00
holisticode 7a333e4104
swarm/storage: fix HashExplore concurrency bug ethersphere#1211 (#19028)
* swarm/storage: fix HashExplore concurrency bug ethersphere#1211

*  swarm/storage: lock as value not pointer

* swarm/storage: wait for  to complete

* swarm/storage: fix linter problems

* swarm/storage: append to nil slice

(cherry picked from commit 3d22a46c94)
2019-02-19 13:11:51 +01:00
gluk256 799fe99537
swarm/pss: mutex lifecycle fixed (#19045)
(cherry picked from commit b30109df3c)
2019-02-19 13:11:51 +01:00
Rafael Matias 3b02b0ba4b
swarm/docker: add global-store and split docker images (#19038)
(cherry picked from commit 6cb7d52a29)
2019-02-19 13:11:51 +01:00
Janoš Guljaš 85217b08bd
cmd/swarm/global-store: global store cmd (#19014)
(cherry picked from commit 33d0a0efa6)
2019-02-19 13:11:51 +01:00
Ferenc Szabo dcff622d43
swarm: CI race detector test adjustments (#19017)
(cherry picked from commit 27e3f96819)
2019-02-19 13:11:51 +01:00
Anton Evangelatov a3db00f270
swarm/network: refactor simulation tests bootstrap (#18975)
(cherry picked from commit 597597e8b2)
2019-02-19 13:11:50 +01:00
holisticode 769e43e334
swarm: GetPeerSubscriptions RPC (#18972)
(cherry picked from commit 43e1b7b124)
2019-02-19 13:11:50 +01:00
gluk256 8d8ddea1a3
swarm/pss: transition to whisper v6 (#19023)
(cherry picked from commit cde02e017e)
2019-02-19 13:09:10 +01:00
lash 068725c5b0
swarm/network, swarm/storage: Preserve opentracing contexts (#19022)
(cherry picked from commit 0c10d37606)
2019-02-19 13:09:09 +01:00
Ferenc Szabo 710775f435
swarm/network: fix data race in fetcher_test.go (#18469)
(cherry picked from commit 19bfcbf911)
2019-02-19 13:09:09 +01:00
lash 0fd0108507
swarm/pss: Remove pss service leak in test (#18992)
(cherry picked from commit 7c60d0a6a2)
2019-02-19 13:06:14 +01:00
Ferenc Szabo 3c62cc6bba
swarm/storage: fix test timeout with -race by increasing mget timeout
(cherry picked from commit 1c3aa8d9b1)
2019-02-19 13:06:14 +01:00
Janoš Guljaš 333b1bfb6c
swarm/storage/localstore: new localstore package (#19015)
(cherry picked from commit 4f3d22f06c)
2019-02-19 13:06:14 +01:00
holisticode d1ace4f344
swarm: Debug API and HasChunks() API endpoint (#18980)
(cherry picked from commit 41597c2856)
2019-02-19 13:06:13 +01:00