aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* gdex: monkey: Add a gamble monkey (#12)Jimmy Hu2019-06-122-2/+379
|
* cmd: gdex: Revert #6 (#11)Jimmy Hu2019-06-122-44/+1
| | | | | | | | * Revert "cmd: gdex: SIGUSR1 to dump stack (#6)" This reverts commit 86c985c76272667ad68c604ad09e229453d17859. * Add pprof to test
* params: fix genesis block config and use testnet for test (#10)Wei-Ning Huang2019-06-124-17/+22
|
* core: fix staked calculation in genesis (#8)Jimmy Hu2019-06-121-4/+0
|
* dex: porting test to enode (#9)Sonic2019-06-125-112/+141
|
* app: bug fix (#7)bojie2019-06-121-0/+7
| | | | Add notify mutex to prevent missing chain issue while concurrent appending with same slice.
* cmd: gdex: SIGUSR1 to dump stack (#6)Jimmy Hu2019-06-121-0/+44
|
* core: vm: expose governance contract ABI (#5)Wei-Ning Huang2019-06-121-2/+2
|
* core: blockchain: fix NewBlockChainWithDexonValidator (#4)Wei-Ning Huang2019-06-121-1/+1
|
* core: genesis: make ToBlock() compatible with legacy ethereum code (#3)Wei-Ning Huang2019-06-121-28/+36
| | | | Make ToBlock() compatible with legacy ethereum code so we can run tests normally.
* app: fix core testBJ42019-06-129-42/+151
|
* dex: remove useless codeSonic2019-06-121-115/+0
|
* vendor: sync to latest coreJimmy Hu2019-06-126-114/+124
|
* vendor: sync to latest coreJimmy Hu2019-06-126-107/+134
|
* dex: peer: more fix on ID conversionWei-Ning Huang2019-06-121-53/+53
|
* vendor: sync to latest coreWei-Ning Huang2019-06-127-222/+259
|
* core: vm: governance: add node infoWei-Ning Huang2019-06-127-14/+177
|
* dex: fix conflict caused by rebaseWei-Ning Huang2019-06-124-59/+79
|
* vendor: sync to latest coreJimmy Hu2019-06-122-17/+26
|
* dex: increase governance tx gas priceWei-Ning Huang2019-06-121-0/+4
|
* core: validate roundHeight mapping in governance contractWei-Ning Huang2019-06-127-4/+56
|
* vendor: sync to latest coreJimmy Hu2019-06-1212-62/+164
|
* core: GenerateChainWithRoundChange for testingSonic2019-06-123-0/+598
|
* dex: proofread and fix bugsWei-Ning Huang2019-06-121-161/+145
|
* test: disable standalone RPC server as BroadcastBlock currently cause forkingWei-Ning Huang2019-06-122-11/+9
|
* test: start a separate RPC node for testing block syncWei-Ning Huang2019-06-126-19/+39
|
* vendor: sync to latest consensus coreWei-Ning Huang2019-06-123-314/+262
|
* app: add back mutex to prevent concurrent map read writeBJ42019-06-121-1/+9
|
* dex: remove finalization information in block cacheJimmy Hu2019-06-121-0/+2
|
* test: save log to unique dir to preserve logs accross testsWei-Ning Huang2019-06-121-2/+5
|
* app: lock by chain correctly and remove old core in vendorBJ42019-06-1251-9898/+109
|
* test: add faucet address into genesisWei-Ning Huang2019-06-121-0/+4
|
* core: vm: governance: remove maxIntervalWei-Ning Huang2019-06-128-83/+29
|
* core: vm: add nodesLengh method for reading nodeSet sizeWei-Ning Huang2019-06-121-0/+20
|
* Rename import due to dexon-consensus renameWei-Ning Huang2019-06-12101-423/+10200
|
* vendor: sync to latest coreJimmy Hu2019-06-126-59/+251
|
* dex: implement PullBlocks/PullVotes (#1)Jimmy Hu2019-06-126-2/+415
|
* dex: minor refactorWei-Ning Huang2019-06-123-19/+24
|
* app: add lock to prevent concurrent map read writeBojie Wu2019-06-121-0/+3
|
* dex: set blocktime to millisecond timestampWei-Ning Huang2019-06-121-1/+1
|
* dex: increase TX queue sizeWei-Ning Huang2019-06-121-1/+1
|
* core: tx_pool: remove transactions on BlockConfirmed eventWei-Ning Huang2019-06-125-42/+55
|
* vendor: sync consensus core and fix conflicJimmy Hu2019-06-126-44/+69
|
* vendor: sync consensus core and fix conflictWei-Ning Huang2019-06-1212-52/+177
|
* dex: add block gas limit into governanceWei-Ning Huang2019-06-126-13/+52
|
* test: add testkeyWei-Ning Huang2019-06-121-0/+1
|
* app: refactor prepare logicBojie Wu2019-06-121-11/+17
|
* misc: ignore files in testJimmy Hu2019-06-121-0/+4
|
* app: using lock correctly to use map safelyBojie Wu2019-06-122-119/+163
|
* cmd: monkey: create random accounts to simulate network trafficWei-Ning Huang2019-06-121-34/+96
|
* app: fix concurrent map read write issue and accept fail transaction when ↵Bojie Wu2019-06-121-1/+7
| | | | round change
* core: fix blockReward serializationWei-Ning Huang2019-06-124-39/+30
|
* app: fix nil pointer issueBojie Wu2019-06-121-4/+6
|
* vendor: sync consensus core and fix conflictWei-Ning Huang2019-06-1213-151/+463
|
* app: add cache mechanism to increase performanceBojie Wu2019-06-126-256/+203
|
* app: add mutex to prevent concurrent read write mapBojie Wu2019-06-121-0/+3
|
* core: set correct balance for governance contractWei-Ning Huang2019-06-123-6/+7
|
* test: add genesis balanceWei-Ning Huang2019-06-121-1/+5
|
* dex: update default network IDWei-Ning Huang2019-06-121-1/+1
|
* dex: fix types changes in consensus coreSonic2019-06-121-10/+9
|
* dex: return round in get block rpc outputWei-Ning Huang2019-06-123-4/+6
|
* app: fix concurrent read write issue with mapBojie Wu2019-06-121-0/+6
|
* dex: remove uneeded info from block headerWei-Ning Huang2019-06-125-106/+93
|
* core: types: fix header marshal jsonSonic2019-06-122-34/+72
|
* vendor: sync consensus core and fix conflictWei-Ning Huang2019-06-1217-214/+200
|
* app: fix bug when prepare transactionBojie Wu2019-06-121-2/+7
|
* dex: fix testSonic2019-06-121-1/+1
|
* Rename geth -> gdex and fix DockerfileWei-Ning Huang2019-06-1231-273/+273
|
* cmd: add a simple monkey tool for stress testWei-Ning Huang2019-06-122-1/+94
|
* vendor: sync consensus coreWei-Ning Huang2019-06-124-47/+43
|
* app: correct process pending block logicBojie Wu2019-06-127-174/+183
|
* dex: fix missing randomness assignmentWei-Ning Huang2019-06-122-2/+3
|
* test: add script for syncing consensus coreWei-Ning Huang2019-06-121-0/+3
|
* vendor: use govendor to import dexon-consensus-coreWei-Ning Huang2019-06-12167-3/+349011
|
* dex: fix DKG round switchingWei-Ning Huang2019-06-123-10/+22
|
* dex: prevent broadcasting agreement and randomness indefinitelyWei-Ning Huang2019-06-121-2/+6
|
* dex: fix round switching and initialize dMoment correctlyWei-Ning Huang2019-06-123-4/+12
|
* dex: misc fixesWei-Ning Huang2019-06-123-11/+20
|
* app: check nonce and balance in prepare payloadBojie Wu2019-06-123-25/+114
|
* geth: add propose flag to enable/disable proposingSonic2019-06-124-0/+33
|
* core: included Dexcon metadata in blockWei-Ning Huang2019-06-123-7/+16
|
* Remove reference of Rinkeby and Goerli network.Wei-Ning Huang2019-06-1211-166/+5
| | | | We do not need ethereum Rinkeby and Goerli network in our system, remove it.
* core: populate genesisAlloc in source code with DEXON genesis dataWei-Ning Huang2019-06-126-32/+87
|
* dex: no need to rlp encode/decode now, consensus supports itSonic2019-06-124-41/+31
|
* dex: use RLP to encode contract payload dataWei-Ning Huang2019-06-122-12/+12
|
* dex: fix public key conversionWei-Ning Huang2019-06-121-6/+2
|
* dex: fix DKGMasterPublicKey and DKGComplaints unmarshalWei-Ning Huang2019-06-121-3/+2
|
* dex: pass logger object to consensus coreWei-Ning Huang2019-06-121-1/+1
|
* test: update run_test.shWei-Ning Huang2019-06-122-2/+8
|
* app: implement verify block logicBojie Wu2019-06-123-23/+246
|
* test: update test configurationWei-Ning Huang2019-06-121-2/+2
|
* consensus: dexcon: fetch config from stateWei-Ning Huang2019-06-127-41/+51
|
* core: vm: add blockReward to governanceWei-Ning Huang2019-06-125-23/+58
|
* dex: fix public key parsing due to changes in consensus coreWei-Ning Huang2019-06-128-26/+29
|
* core: set governance owner in genesisWei-Ning Huang2019-06-124-15/+27
|
* params: load blockReward from genesis JSON fileWei-Ning Huang2019-06-125-3/+114
|
* app: fixup message formatWei-Ning Huang2019-06-122-11/+11
|
* app: implement new insert blocks logicBojie Wu2019-06-125-166/+314
|
* test: create account storage for governance contractWei-Ning Huang2019-06-122-1/+6
|
* core/dex: fix governance contract implementationWei-Ning Huang2019-06-122-27/+21
|
* core: vm: implement RAND opcode supportWei-Ning Huang2019-06-1210-0/+46
| | | | | | DEXON has a built-in on chain random oracle that allow one to retrieve a random variable. Add a new opcode `RAND` to load the random variable onto the stack.
* dex: add initial block to RunJimmy Hu2019-06-121-1/+3
|
* dex: polish network related functionSonic2019-06-124-103/+211
|
* dex: let notary nodes connect to some dkg nodesSonic2019-06-124-185/+204
| | | | BuildConnection builds notary and dkg connections together
* params: update seed node ipWei-Ning Huang2019-06-121-2/+2
|
* dex/core: misc bug fixesWei-Ning Huang2019-06-129-10/+27
|
* dex: register ethereum APIsWei-Ning Huang2019-06-123-1/+1036
|
* dex: implement peerSetLoopSonic2019-06-126-11/+74
|
* app: fix log messageBojie Wu2019-06-121-8/+8
|
* hack: temp fix for running testsWei-Ning Huang2019-06-122-8/+5
|
* test: update genesis and keypairsWei-Ning Huang2019-06-1211-33/+43
|
* app: correct dexon application logicBojie Wu2019-06-123-129/+88
|
* core: fix nil map initializationWei-Ning Huang2019-06-122-1/+9
|
* dex: gov: using dex-consensus-core NodeSetCacheSonic2019-06-125-64/+71
|
* app: init mapBojie Wu2019-06-121-15/+17
|
* core: setup stake in order so genesis block is deterministicWei-Ning Huang2019-06-122-2/+27
|
* dex: add subprotocolsSonic2019-06-121-1/+1
|
* test: add a simple test script to launch 7 local nodesWei-Ning Huang2019-06-121-0/+17
|
* test: fix genesis.jsonWei-Ning Huang2019-06-121-1/+1
|
* dex: run consensus core on StartWei-Ning Huang2019-06-122-2/+3
|
* core: vm: modify dkg thresholdJimmy Hu2019-06-121-1/+1
|
* test: remove uneeded nodekyWei-Ning Huang2019-06-121-1/+0
|
* app: add default block rewardBojie Wu2019-06-123-5/+6
|
* dex: set tmp dMoment for testingWei-Ning Huang2019-06-121-1/+2
|
* test: add 3 more test node dataWei-Ning Huang2019-06-125-2/+21
|
* params: update bootnode infoWei-Ning Huang2019-06-122-10/+3
|
* dex: fix flaky testSonic2019-06-121-0/+12
|
* dex: add self node meta after StartSonic2019-06-125-6/+51
|
* dex: add method to get NumChains, NotarySet, DKGSet easilySonic2019-06-126-43/+80
|
* dex: move dexcon blockdb into datadirWei-Ning Huang2019-06-123-6/+8
|
* core: vm: add GovernanceStateHelper testWei-Ning Huang2019-06-122-0/+98
|
* vendor: add github.com/stretchr/testify/suiteWei-Ning Huang2019-06-124-1/+254
|
* test: update geneiss configWei-Ning Huang2019-06-121-4/+4
|
* dex: interface updateWei-Ning Huang2019-06-121-1/+3
|
* test: add test genesis and node keysWei-Ning Huang2019-06-125-8/+11
|
* app: calculate block reward according to chain numBojie Wu2019-06-122-14/+14
|
* app: pass chain config instead of nilBojie Wu2019-06-121-3/+6
|
* dex: network: implement the network interfaceSonic2019-06-1210-59/+1025
|
* core: populate genesis CRS in genesis stateWei-Ning Huang2019-06-123-1/+9
|
* misc: add testing nodeKey and genesis.jsonWei-Ning Huang2019-06-123-1/+52
|
* dex: bug fix to allow running geth without crashingWei-Ning Huang2019-06-125-54/+51
|
* dex: implement sendTx related governance methodsWei-Ning Huang2019-06-123-6/+133
|
* node: change default datadir folder name to dexonWei-Ning Huang2019-06-121-3/+3
|
* dex: pass p2p nodeKey to Dexon instanceWei-Ning Huang2019-06-126-15/+25
|
* app: modify for new interface methodBojie Wu2019-06-121-19/+33
|
* core: vm: validate if mpk, complaint, finalize is in DKG setWei-Ning Huang2019-06-121-36/+62
|
* core: vm: allow other people to stake for a nodeWei-Ning Huang2019-06-121-6/+0
|
* dex: implement some governance interface functionsWei-Ning Huang2019-06-126-236/+441
|
* dex: governance: implement governance interfaceWei-Ning Huang2019-06-125-27/+61
|
* app: implement new interface methodBojie Wu2019-06-122-27/+160
|
* dex: add api_backend.go and it's dependenciesWei-Ning Huang2019-06-126-2/+566
|
* dex: update application interfaceWei-Ning Huang2019-06-121-20/+27
|
* app: correct validation logicBojie Wu2019-06-121-4/+10
|
* core: populate dexon configuration in SetupGenesisBlockWei-Ning Huang2019-06-123-35/+52
|
* dex: implement dexon application interfaceBojie Wu2019-06-125-18/+295
|
* core: add stake and public key to genesis account infoWei-Ning Huang2019-06-124-46/+95
|
* core: vm: check pk ownership in stake()Wei-Ning Huang2019-06-121-1/+12
|
* core: vm: expose nodes as publicWei-Ning Huang2019-06-121-14/+52
|
* core: vm: add eventlog for governance contractWei-Ning Huang2019-06-121-41/+98
|
* dex: remove DAO related codeSonic2019-06-122-62/+2
|
* core: vm: refactor and add DKGFinalizeds related implementationsWei-Ning Huang2019-06-123-98/+313
|
* dex: redesign p2p network topologySonic2019-06-1221-656/+2423
| | | | | | | | | | - Let p2p server support direct connection and group connection. - Introduce node meta table to maintain IP of all nodes in node set, in memory and let nodes in the network can sync this table. - Let peerSet able to manage direct connections to notary set and dkg set. The mechanism to refresh the network topology when configuration round change is not done yet.
* core: vm: implement the rest of governance contract methodsWei-Ning Huang2019-06-124-136/+291
|
* core: vm: check if caller already staked when adding dkg mpkJimmy Hu2019-06-121-0/+7
|
* core: vm: fix bug and add gas usageWei-Ning Huang2019-06-122-22/+55
|
* core: vm: finish implementing state helperWei-Ning Huang2019-06-121-23/+206
|
* core: vm: update governance contract ABIWei-Ning Huang2019-06-121-9/+75
|
* core: vm: implement governance contract methodsWei-Ning Huang2019-06-121-51/+218
|
* core: vm: add governance contract skeletonWei-Ning Huang2019-06-123-7/+502
|
* dex: update consensus core interfaceWei-Ning Huang2019-06-124-36/+38
|
* Change import go github.com/dexon-foundation/dexonWei-Ning Huang2019-06-12779-3145/+3145
|
* Use dex.Config instead of eth.ConfigWei-Ning Huang2019-06-127-126/+37
|
* dex: implement notary node info propagation and management mechanismSonic2019-06-123-16/+183
|
* dex: implement notarySet for keeping notary set infoSonic2019-06-121-0/+203
|
* dex: introduce dex64 and remove eth62, eth63Sonic2019-06-123-18/+37
|
* dex: let peer able to send notary node infoSonic2019-06-121-3/+41
|
* dex: let peerSet able to manage notary peersSonic2019-06-121-1/+64
|
* p2p: implement AddNotaryPeer and RemoveNotaryPeerSonic2019-06-123-5/+184
| | | | | | | | | | AddNotaryPeer adds node to static node set so that server will maintain the connection with the notary node. AddNotaryPeer also sets the notaryConn flag to allow the node to always connect, even if the slot are full. RemoveNotaryPeer removes node from static, then disconnect and unsets the notaryConn flag.
* dex: fix use of internal package not allowedSonic2019-06-121-1/+1
|
* Change package name from eth to dexSonic2019-06-128-8/+8
|
* Copy codebase from ethSonic2019-06-128-0/+2407
|
* dex: update interface and use static bls libWei-Ning Huang2019-06-1214-385/+99
|
* dex: make geth buildable and update interface skeletonWei-Ning Huang2019-06-1219-10/+1496
|
* Add udpated governance interface and app interfaceWei-Ning Huang2019-06-122-2/+34
|
* Add dex packageWei-Ning Huang2019-06-122-0/+80
|
* Update testchain config and add test bootnode keyWei-Ning Huang2019-06-123-10/+8
|
* Add initial DEXON consensus engine implementation skeletonWei-Ning Huang2019-06-125-3/+178
|
* Merge pull request #19473 from karalabe/geth-1.8.27v1.8.27Péter Szilágyi2019-04-1713-117/+214
|\ | | | | [1.8.27 backport] eth, les, light: enforce CHT checkpoints on fast-sync too
| * params, swarm: release Geth v1.8.27 (noop Swarm v0.3.15)Péter Szilágyi2019-04-172-2/+2
| |
| * eth, les, light: enforce CHT checkpoints on fast-sync tooPéter Szilágyi2019-04-1711-115/+212
|/
* Merge pull request #19437 from zsfelfoldi/fix-sendtxv1.8.26Péter Szilágyi2019-04-106-12/+72
|\ | | | | les: fix SendTx cost calculation and verify cost table
| * params, swarm: release Geth v1.8.26 (+noop Swarm v0.3.14)Péter Szilágyi2019-04-102-2/+2
| |
| * les: check required message types in cost tableZsolt Felfoldi2019-04-102-4/+30
| |
| * les: backported new SendTx cost calculationZsolt Felfoldi2019-04-103-8/+42
|/
* Merge pull request #19416 from jmcnevin/cli-fixv1.8.25Péter Szilágyi2019-04-093-2/+4
|\ | | | | Revert flag removal
| * params, swarm: hotfix Geth v1.8.25 release to restore rpc flagsPéter Szilágyi2019-04-092-2/+2
| |
| * cmd/geth: fix accidental --rpccorsdomain and --rpcvhosts removalJeremy McNevin2019-04-091-0/+2
|/
* Merge pull request #19370 from karalabe/geth-1.8.24v1.8.24Péter Szilágyi2019-04-0843-172/+536
|\ | | | | Backport PR for the v1.8.24 maintenance release
| * params, swarm: release Geth v1.8.24 (noop Swarm 0.3.12)Péter Szilágyi2019-04-082-2/+2
| |
| * eth, les, geth: implement cli-configurable global gas cap for RPC calls (#19401)Martin Holst Swende2019-04-088-8/+36
| | | | | | | | | | | | | | | | * eth, les, geth: implement cli-configurable global gas cap for RPC calls * graphql, ethapi: place gas cap in DoCall * ethapi: reformat log message
| * p2p/discover: bump failure counter only if no nodes were provided (#19362)Felix Lange2019-04-081-1/+1
| | | | | | | | | | | | | | | | 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.
| * params: set Rinkeby Petersburg fork block (4th May, 2019)Péter Szilágyi2019-04-081-1/+1
| |
| * core: minor code polishes + rebase fixesPéter Szilágyi2019-04-082-41/+54
| |
| * core: re-omit new log event when logs rebirthrjl4934564422019-04-082-9/+224
| |
| * travis: update builders to xenial to shadow Go releasesPéter Szilágyi2019-04-081-8/+8
| |
| * all: simplify timestamps to uint64 (#19372)Martin Holst Swende2019-04-0824-93/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
| * trie: there's no point in retrieving the metarootPéter Szilágyi2019-04-082-0/+38
| |
| * common/fdlimit: fix macos file descriptors for Go 1.12Péter Szilágyi2019-04-023-1/+73
| |
| * light, params: update CHTs, integrate CHT for Goerli tooPéter Szilágyi2019-04-022-16/+18
|/
* Merge pull request #19029 from holiman/update1.8v1.8.23Péter Szilágyi2019-02-20394-16930/+92421
|\ | | | | Update1.8
| * params, swarm: release Geth v1.8.23, Swarm v0.3.11Péter Szilágyi2019-02-202-2/+2
| |
| * cmd/utils: allow for multiple influxdb tags (#18520)Anton Evangelatov2019-02-206-42/+121
| | | | | | | | | | | | | | | | 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)
| * swarm/metrics: Send the accounting registry to InfluxDB (#18470)Jerzy Lasyk2019-02-204-43/+50
| | | | | | | | (cherry picked from commit f28da4f602fcd17624cf6d40d070253dd6663121)
| * swarm: Reinstate Pss Protocol add call through swarm service (#19117)lash2019-02-191-51/+56
| | | | | | | | | | | | | | | | * swarm: Reinstate Pss Protocol add call through swarm service * swarm: Even less self (cherry picked from commit d88c6ce6b058ccd04b03d079d486b1d55fe5ef61)
| * contracts/*: golint updates for this or self warningKiel barry2019-02-196-209/+194
| | | | | | | | (cherry picked from commit 53b823afc8c24337290ba2e7889c2dde496e9272)
| * cmd/swarm/swarm-smoke: Trigger chunk debug on timeout (#19101)holisticode2019-02-192-10/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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)
| * p2p, swarm: fix node up races by granular locking (#18976)Ferenc Szabo2019-02-1912-123/+323
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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)
| * swarm/pss: refactoring (#19110)gluk2562019-02-193-256/+293
| | | | | | | | | | | | | | | | | | | | * swarm/pss: split pss and keystore * swarm/pss: moved whisper to keystore * swarm/pss: goimports fixed (cherry picked from commit 12ca3b172a7e1b2b63ef2369e8dc37c75144c81f)
| * swarm/storage/netstore: add fetcher cancellation on shutdown (#19049)Elad2019-02-193-120/+144
| | | | | | | | | | | | | | swarm/network/stream: remove netstore internal wg swarm/network/stream: run individual tests with t.Run (cherry picked from commit 3ee09ba03511ad9a49e37c58f0c35b9c9771dd6f)
| * swarm/network: Saturation check for healthy networks (#19071)holisticode2019-02-194-29/+179
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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)
| * swarm/storage: fix influxdb gc metrics report (#19102)Elad2019-02-191-5/+3
| | | | | | | | (cherry picked from commit 5b8ae7885eaa033aaf1fb1d5959b7f1c86761d6d)
| * swarm: fix network/stream data races (#19051)Janoš Guljaš2019-02-1914-197/+274
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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)
| * swarm: fix uptime gauge update goroutine leak by introducing cleanup ↵Elad2019-02-191-21/+32
| | | | | | | | | | | | functions (#19040) (cherry picked from commit d596bea2d501d20b92e0fd4baa8bba682157dfa7)
| * swarm/storage: fix HashExplore concurrency bug ethersphere#1211 (#19028)holisticode2019-02-191-9/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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)
| * swarm/pss: mutex lifecycle fixed (#19045)gluk2562019-02-191-4/+7
| | | | | | | | (cherry picked from commit b30109df3c7c56cb0d1752fc03f478474c3c190a)
| * swarm/docker: add global-store and split docker images (#19038)Rafael Matias2019-02-191-6/+15
| | | | | | | | (cherry picked from commit 6cb7d52a29c68cdc4eafabb6dfe7594c288d151e)
| * cmd/swarm/global-store: global store cmd (#19014)Janoš Guljaš2019-02-198-3/+476
| | | | | | | | (cherry picked from commit 33d0a0efa61fed2b16797fd12161519943943282)
| * swarm: CI race detector test adjustments (#19017)Ferenc Szabo2019-02-196-84/+60
| | | | | | | | (cherry picked from commit 27e3f968194e2723279b60f71c79d4da9fc7577f)
| * swarm/network: refactor simulation tests bootstrap (#18975)Anton Evangelatov2019-02-199-247/+156
| | | | | | | | (cherry picked from commit 597597e8b27ee60a25b4533771702892e72898a5)
| * swarm: GetPeerSubscriptions RPC (#18972)holisticode2019-02-193-1/+257
| | | | | | | | (cherry picked from commit 43e1b7b124d2bcfba98fbe54972a35c022d85bf2)
| * swarm/pss: transition to whisper v6 (#19023)gluk2562019-02-196-8/+8
| | | | | | | | (cherry picked from commit cde02e017ef2fb254f9b91888f4a14645c24890a)
| * swarm/network, swarm/storage: Preserve opentracing contexts (#19022)lash2019-02-1910-107/+122
| | | | | | | | (cherry picked from commit 0c10d376066cb7e57d3bfc03f950c7750cd90640)
| * swarm/network: fix data race in fetcher_test.go (#18469)Ferenc Szabo2019-02-192-25/+25
| | | | | | | | (cherry picked from commit 19bfcbf9117f39f54f698a0953534d90c08e9930)
| * swarm/pss: Remove pss service leak in test (#18992)lash2019-02-192-0/+11
| | | | | | | | (cherry picked from commit 7c60d0a6a2d3925c2862cbbb188988475619fd0d)
| * swarm/storage: fix test timeout with -race by increasing mget timeoutFerenc Szabo2019-02-192-5/+3
| | | | | | | | (cherry picked from commit 1c3aa8d9b12d6104ccddecc1711bc6be2f5b269d)
| * swarm/storage/localstore: new localstore package (#19015)Janoš Guljaš2019-02-1917-0/+4244
| | | | | | | | (cherry picked from commit 4f3d22f06c546f36487b33dfb6b5cb4df3ecf073)
| * swarm: Debug API and HasChunks() API endpoint (#18980)holisticode2019-02-1912-37/+145
| | | | | | | | (cherry picked from commit 41597c2856d6ac7328baca1340c3e36ab0edd382)
| * cmd/swarm/swarm-smoke: refactor generateEndpoints (#19006)Anton Evangelatov2019-02-196-191/+214
| | | | | | | | (cherry picked from commit d212535ddd5bf63a0c0b194525246480ae46c537)
| * cmd/swarm/swarm-smoke: remove wrong metrics (#18970)Anton Evangelatov2019-02-194-24/+4
| | | | | | | | (cherry picked from commit c5c9cef5c0baf1652b6642858ad2426794823699)
| * cmd/swarm/swarm-smoke: sliding window test (#18967)Elad2019-02-196-298/+416
| | | | | | | | (cherry picked from commit b91bf08876ca4da0c2a843a9ed3e88d64427cfb8)
| * cmd/swarm: hashes command (#19008)holisticode2019-02-194-14/+71
| | | | | | | | (cherry picked from commit 7f55b0cbd8618a1b0de8d7e37d2b0143ebae4abf)
| * swarm/storage: Get all chunk references for a given file (#19002)holisticode2019-02-192-0/+76
| | | | | | | | (cherry picked from commit 3eff652a7b606f25d43bef6ccb998b8e306f8a75)
| * swarm/network: Remove extra random peer, connect test sanity, comments (#18964)lash2019-02-191-11/+49
| | | | | | | | (cherry picked from commit f9401ae011ddf7f8d2d95020b7446c17f8d98dc1)
| * swarm: fix flaky delivery tests (#18971)Janoš Guljaš2019-02-192-8/+1
| | | | | | | | (cherry picked from commit 592bf6a59cac9697f0491b24e5093cb759d7e44c)
| * p2p/testing, swarm: remove unused testing.T in protocol tester (#18500)Elad2019-02-197-39/+38
| | | | | | | | (cherry picked from commit 2abeb35d5425d72c2f7fdfe4209f7a94fac52a8e)
| * swarm/version: commit version added (#18510)gluk2562019-02-193-3/+12
| | | | | | | | (cherry picked from commit ad13d2d407d2f614c39af92430fda0a926da2a8a)
| * swarm: fix a data race on startTime (#18511)Janoš Guljaš2019-02-191-3/+3
| | | | | | | | (cherry picked from commit fa34429a2695f57bc0a96cd78f25e86700d8ee44)
| * swarm: bootnode-mode, new bootnodes and no p2p package discovery (#18498)Anton Evangelatov2019-02-1916-90/+107
| | | | | | | | (cherry picked from commit bbd120354a8d226b446591eeda9f9462cb9b690a)
| * cmd/swarm: use resetting timer to measure fetch time (#18474)Anton Evangelatov2019-02-191-5/+3
| | | | | | | | (cherry picked from commit a0b0db63055e1dd350215f9fe04b0abf19f3488a)
| * p2p/simulations: fix data race on swarm/network/simulations (#18464)Elad2019-02-191-4/+15
| | | | | | | | (cherry picked from commit 85a79b3ad3c5863f8612d25c246bcfad339f36b7)