10522 Commits

Author SHA1 Message Date
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
v1.8.23
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 21acf0bc8d4f179397bb7d06d6f36df3cbee4a8e)
2019-02-19 17:34:48 +01:00
Jerzy Lasyk
320d132925
swarm/metrics: Send the accounting registry to InfluxDB (#18470)
(cherry picked from commit f28da4f602fcd17624cf6d40d070253dd6663121)
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 d88c6ce6b058ccd04b03d079d486b1d55fe5ef61)
2019-02-19 13:18:10 +01:00
Kiel barry
fd34bf594c
contracts/*: golint updates for this or self warning
(cherry picked from commit 53b823afc8c24337290ba2e7889c2dde496e9272)
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 62d7688d0a7ddbdb5d7167b264e0ea617578b60d)
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 13292ee897e345045fbfab3bda23a77589a271c1
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 85a79b3ad3c5863f8612d25c246bcfad339f36b7,
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 50b872bf05b8644f14b9bea340092ced6968dd59)
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 12ca3b172a7e1b2b63ef2369e8dc37c75144c81f)
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 3ee09ba03511ad9a49e37c58f0c35b9c9771dd6f)
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 2af24724dd5f3ab1994001854eb32c6a19f9f64a)
2019-02-19 13:11:52 +01:00
Elad
3d2bedf8d0
swarm/storage: fix influxdb gc metrics report (#19102)
(cherry picked from commit 5b8ae7885eaa033aaf1fb1d5959b7f1c86761d6d)
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 3fd6db2bf63ce90232de445c7f33943406a5e634)
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 d596bea2d501d20b92e0fd4baa8bba682157dfa7)
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 3d22a46c94f1d842dbada665b36a453362adda74)
2019-02-19 13:11:51 +01:00
gluk256
799fe99537
swarm/pss: mutex lifecycle fixed (#19045)
(cherry picked from commit b30109df3c7c56cb0d1752fc03f478474c3c190a)
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 6cb7d52a29c68cdc4eafabb6dfe7594c288d151e)
2019-02-19 13:11:51 +01:00
Janoš Guljaš
85217b08bd
cmd/swarm/global-store: global store cmd (#19014)
(cherry picked from commit 33d0a0efa61fed2b16797fd12161519943943282)
2019-02-19 13:11:51 +01:00
Ferenc Szabo
dcff622d43
swarm: CI race detector test adjustments (#19017)
(cherry picked from commit 27e3f968194e2723279b60f71c79d4da9fc7577f)
2019-02-19 13:11:51 +01:00
Anton Evangelatov
a3db00f270
swarm/network: refactor simulation tests bootstrap (#18975)
(cherry picked from commit 597597e8b27ee60a25b4533771702892e72898a5)
2019-02-19 13:11:50 +01:00
holisticode
769e43e334
swarm: GetPeerSubscriptions RPC (#18972)
(cherry picked from commit 43e1b7b124d2bcfba98fbe54972a35c022d85bf2)
2019-02-19 13:11:50 +01:00
gluk256
8d8ddea1a3
swarm/pss: transition to whisper v6 (#19023)
(cherry picked from commit cde02e017ef2fb254f9b91888f4a14645c24890a)
2019-02-19 13:09:10 +01:00
lash
068725c5b0
swarm/network, swarm/storage: Preserve opentracing contexts (#19022)
(cherry picked from commit 0c10d376066cb7e57d3bfc03f950c7750cd90640)
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 19bfcbf9117f39f54f698a0953534d90c08e9930)
2019-02-19 13:09:09 +01:00
lash
0fd0108507
swarm/pss: Remove pss service leak in test (#18992)
(cherry picked from commit 7c60d0a6a2d3925c2862cbbb188988475619fd0d)
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 1c3aa8d9b12d6104ccddecc1711bc6be2f5b269d)
2019-02-19 13:06:14 +01:00
Janoš Guljaš
333b1bfb6c
swarm/storage/localstore: new localstore package (#19015)
(cherry picked from commit 4f3d22f06c546f36487b33dfb6b5cb4df3ecf073)
2019-02-19 13:06:14 +01:00
holisticode
d1ace4f344
swarm: Debug API and HasChunks() API endpoint (#18980)
(cherry picked from commit 41597c2856d6ac7328baca1340c3e36ab0edd382)
2019-02-19 13:06:13 +01:00
Anton Evangelatov
637a75d61a
cmd/swarm/swarm-smoke: refactor generateEndpoints (#19006)
(cherry picked from commit d212535ddd5bf63a0c0b194525246480ae46c537)
2019-02-19 13:05:55 +01:00
Anton Evangelatov
355d55bd34
cmd/swarm/swarm-smoke: remove wrong metrics (#18970)
(cherry picked from commit c5c9cef5c0baf1652b6642858ad2426794823699)
2019-02-19 13:05:37 +01:00
Elad
7038b5734c
cmd/swarm/swarm-smoke: sliding window test (#18967)
(cherry picked from commit b91bf08876ca4da0c2a843a9ed3e88d64427cfb8)
2019-02-19 13:05:26 +01:00
holisticode
1ecf2860cf
cmd/swarm: hashes command (#19008)
(cherry picked from commit 7f55b0cbd8618a1b0de8d7e37d2b0143ebae4abf)
2019-02-19 12:57:53 +01:00
holisticode
034f65e9e8
swarm/storage: Get all chunk references for a given file (#19002)
(cherry picked from commit 3eff652a7b606f25d43bef6ccb998b8e306f8a75)
2019-02-19 12:57:53 +01:00
lash
607a1968e6
swarm/network: Remove extra random peer, connect test sanity, comments (#18964)
(cherry picked from commit f9401ae011ddf7f8d2d95020b7446c17f8d98dc1)
2019-02-19 12:57:53 +01:00
Janoš Guljaš
3f54994db0
swarm: fix flaky delivery tests (#18971)
(cherry picked from commit 592bf6a59cac9697f0491b24e5093cb759d7e44c)
2019-02-19 12:57:53 +01:00
Elad
2695aa9e0d
p2p/testing, swarm: remove unused testing.T in protocol tester (#18500)
(cherry picked from commit 2abeb35d5425d72c2f7fdfe4209f7a94fac52a8e)
2019-02-19 12:56:31 +01:00
gluk256
e247dcc141
swarm/version: commit version added (#18510)
(cherry picked from commit ad13d2d407d2f614c39af92430fda0a926da2a8a)
2019-02-19 12:56:31 +01:00
Janoš Guljaš
b774d0a507
swarm: fix a data race on startTime (#18511)
(cherry picked from commit fa34429a2695f57bc0a96cd78f25e86700d8ee44)
2019-02-19 12:56:30 +01:00
Anton Evangelatov
4976fcc91a
swarm: bootnode-mode, new bootnodes and no p2p package discovery (#18498)
(cherry picked from commit bbd120354a8d226b446591eeda9f9462cb9b690a)
2019-02-19 12:56:30 +01:00
Anton Evangelatov
878aa58ec6
cmd/swarm: use resetting timer to measure fetch time (#18474)
(cherry picked from commit a0b0db63055e1dd350215f9fe04b0abf19f3488a)
2019-02-19 12:56:30 +01:00
Elad
475a0664c5
p2p/simulations: fix data race on swarm/network/simulations (#18464)
(cherry picked from commit 85a79b3ad3c5863f8612d25c246bcfad339f36b7)
2019-02-19 12:56:30 +01:00
holisticode
4625b1257f
cmd/swarm/swarm-smoke: use ResettingTimer instead of Counters for times (#18479)
(cherry picked from commit 560957799a089042e471320d179ef2e96caf4f8d)
2019-02-19 12:56:30 +01:00
Elad
21d54bcaac
cmd/swarm/swarm-snapshot: disable tests on windows (#18478)
(cherry picked from commit 632135ce4c1d8d3d9a36771aab4137260018e84b)
2019-02-19 12:56:30 +01:00