Commit graph

857 commits

Author SHA1 Message Date
qcloud
ec5865f6e3 fix: contentLookup and traceContentLookup 2024-05-16 09:43:16 +08:00
fearlessfe
0819e81eea chore: add more info in err log 2024-05-16 09:43:16 +08:00
Chen Kai
86247e1ea8
Merge branch 'ethereum:master' into portal 2024-05-08 11:32:47 +08:00
fearlessfe
bb0714d9a5 fix: panic 2024-05-06 23:53:09 +08:00
Kiarash Hajian
905e325cd8
p2p/discover/v5wire: add tests for invalid handshake and auth data size (#29708) 2024-05-06 13:17:19 +02:00
Chen Kai
e660629a78
Merge branch 'ethereum:master' into portal 2024-05-03 11:39:35 +08:00
Aaron Chen
8c3fc56d7f
p2p/simulations/adapters: use maps.Clone (#29626) 2024-04-29 19:44:41 +02:00
Chen Kai
a2efff93b1
Merge branch 'ethereum:master' into portal 2024-04-25 17:43:53 +08:00
Undefinedor
a13b92524d
eth/protocols/eth,p2p/discover: remove unnecessary checks (#29590)
fix useless condition
2024-04-25 08:40:29 +02:00
Chen Kai
ab764c159d
Merge branch 'ethereum:master' into portal 2024-04-21 20:26:14 +08:00
bugmaker9371
98f504f69f
p2p/discover: fix test error messages (#29592) 2024-04-21 11:13:36 +02:00
Chen Kai
3014734c46 fix:fix minor warn issues
Signed-off-by: Chen Kai <281165273grape@gmail.com>
2024-04-19 20:19:53 +08:00
fearlseefe
e97bca61ec fix: gossip in hive test 2024-04-18 20:01:03 +08:00
fearlseefe
2e2f44b615 feat: remove unused file 2024-04-17 18:29:33 +08:00
fearlessfe
9c0a5ccb74 feat: beacon start up 2024-04-17 18:29:33 +08:00
Chen Kai
79c769e635
Merge branch 'ethereum:master' into portal 2024-04-16 08:15:57 +08:00
Seungbae Yu
67422e2a56
p2p/nat: fix typos in comments (#29536) 2024-04-15 14:58:17 +02:00
Chen Kai
56462f1df9
Merge branch 'ethereum:master' into portal 2024-04-15 15:20:58 +08:00
Abirdcfly
b179b7b8e7
all: remove duplicate word in comments (#29531)
This change removes some duplicate words in in comments
2024-04-15 08:34:31 +02:00
Chen Kai
eb3206b1e1 feat:beacon network test
Signed-off-by: Chen Kai <281165273grape@gmail.com>
2024-04-15 09:37:39 +08:00
Chen Kai
c203f9ac8e
Merge branch 'ethereum:master' into portal 2024-04-09 20:02:33 +08:00
Bin
0bbd88bda0
all: use timer instead of time.After in loops, to avoid memleaks (#29241)
time.After is equivalent to NewTimer(d).C, and does not call Stop if the timer is no longer needed. This can cause memory leaks. This change changes many such occations to use NewTimer instead, and calling Stop once the timer is no longer needed.
2024-04-09 08:51:54 +02:00
Chen Kai
6edb2a29b3 feat:add lc bootstrap and update range
Signed-off-by: Chen Kai <281165273grape@gmail.com>
2024-04-07 15:28:59 +08:00
Chen Kai
f82ef2e241
Merge branch 'ethereum:master' into portal 2024-04-05 19:24:51 +08:00
cui
9dfe728909
p2p/discover: using slices.Contains (#29395) 2024-04-04 12:24:49 +02:00
cui
2e0c5e05ba
p2p/dnsdisc: using clear builtin func (#29418)
Co-authored-by: Felix Lange <fjl@twurst.com>
2024-04-04 12:19:48 +02:00
Chen Kai
bc7987bd91
Merge branch 'ethereum:master' into portal 2024-04-03 10:37:51 +08:00
Ng Wei Han
dfb3d46098
p2p: add inbound and outbound peers metric (#29424) 2024-04-02 21:18:28 +02:00
Chen Kai
5122e5a826 fix:resume udp timeout
Signed-off-by: Chen Kai <281165273grape@gmail.com>
2024-03-30 10:59:31 +08:00
Chen Kai
766d2d8ece
Merge branch 'ethereum:master' into portal 2024-03-29 10:09:47 +08:00
cui
3754a6cc92
p2p/dnsdisc: using maps.Copy (#29377) 2024-03-28 12:07:38 +01:00
Chen Kai
66de3b2898
Merge branch 'ethereum:master' into portal 2024-03-27 09:46:17 +08:00
fearlessfe
923ec257b4 feat: change method params
ContentLookup and TraceContentLookup method
2024-03-27 09:46:03 +08:00
Aaron Chen
723b1e36ad
all: fix mismatched names in comments (#29348)
* all: fix mismatched names in comments

* metrics: fix mismatched name in UpdateIfGt
2024-03-26 21:01:28 +01:00
Chen Kai
021ce2ece9 Merge branch 'master' into portal1 2024-03-25 17:14:10 +08:00
fearlessfe
6e23955304 feat: refactor storage interface 2024-03-25 17:09:04 +08:00
Martin HS
14cc967d19
all: remove dependency on golang.org/exp (#29314)
This change includes a leftovers from https://github.com/ethereum/go-ethereum/pull/29307
- using the [new `slices` package](https://go.dev/doc/go1.21#slices) and
- using the [new `cmp.Ordered`](https://go.dev/doc/go1.21#cmp) instead of exp `constraints.Ordered`
2024-03-25 07:50:18 +01:00
Chen Kai
7d720104d3
Merge branch 'ethereum:master' into portal 2024-03-22 21:19:56 +08:00
Martin HS
d9bde37ac3
log: use native log/slog instead of golang/exp (#29302) 2024-03-22 13:17:59 +01:00
Chen Kai
7c6d0d318d
Merge branch 'ethereum:master' into portal 2024-03-22 10:21:00 +08:00
Chen Kai
317997f25f feat:beacon rpc
Signed-off-by: Chen Kai <281165273grape@gmail.com>
2024-03-22 10:20:49 +08:00
Martin HS
14eb8967be
all: use min/max/clear from go1.21 (#29307) 2024-03-21 13:50:13 +01:00
Martin HS
33a2d825f7 all: update to go version 1.22.1 (#28946)
Since Go 1.22 has deprecated certain elliptic curve operations, this PR removes
references to the affected functions and replaces them with a custom implementation
in package crypto. This causes backwards-incompatible changes in some places.

---------

Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
Co-authored-by: Felix Lange <fjl@twurst.com>
2024-03-20 15:37:23 +08:00
fearlessfe
2b6c5eb292 feat: add cli and fix typ error 2024-03-19 19:40:32 +08:00
Martin HS
ab49f228ad
all: update to go version 1.22.1 (#28946)
Since Go 1.22 has deprecated certain elliptic curve operations, this PR removes 
references to the affected functions and replaces them with a custom implementation
in package crypto. This causes backwards-incompatible changes in some places.

---------

Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
Co-authored-by: Felix Lange <fjl@twurst.com>
2024-03-18 17:36:50 +01:00
Chen Kai
71bc26db8c feat:update readme
Signed-off-by: Chen Kai <281165273grape@gmail.com>
2024-03-15 21:08:16 +08:00
Chen Kai
e145ffabdd
Merge branch 'ethereum:master' into portal 2024-03-13 13:07:46 +08:00
Felix Lange
758fce71fa
p2p: fix race in dialScheduler (#29235)
Co-authored-by: Stefan <stefan@starflinger.eu>
2024-03-12 19:23:24 +01:00
fearlessfe
27b5139364 feat: add test 2024-03-12 12:40:34 +08:00
fearlessfe
d44009c198 feat: finish traceContentLookup 2024-03-12 12:40:34 +08:00
fearlessfe
6ef3b11b69 feat: define traceContentLookupRes 2024-03-12 12:40:34 +08:00
Chen Kai
12cbf8de50
Merge branch 'ethereum:master' into portal 2024-03-11 21:40:26 +08:00
Kero
3dc549b3d7
p2p/simulations/adapters: fix error messages in TestTCPPipeBidirections (#29207) 2024-03-10 20:01:26 +01:00
Chen Kai
69ed1c63e2 Merge branch 'master' into portal1 2024-03-08 16:29:34 +08:00
fearlseefe
e52ff169cf fix: validate empty receipts 2024-03-08 15:42:33 +08:00
thinkAfCod
3ef0db3662 chore: log when put/get local storage 2024-03-06 21:40:27 +08:00
Chen Kai
5fa84e3566 fix:fix hive rpc bug
Signed-off-by: Chen Kai <281165273grape@gmail.com>
2024-03-06 21:34:13 +08:00
thinkAfCod
e144a53def chore: log when put/get local storage 2024-03-06 21:18:54 +08:00
Undefinedor
a6d6e8ac41
rpc: remove deprecated method "Notifier.Closed" (#29162) 2024-03-05 14:44:23 +01:00
Chen Kai
2dd60032f1
Merge branch 'ethereum:master' into portal 2024-03-05 10:44:21 +08:00
yzb
a732ad0364
p2p: remove unused argument 'flags' (#29132) 2024-03-04 10:16:05 +01:00
Chen Kai
d5ca1a8880 fix:update utpgo and change discv5 resp timeout
Signed-off-by: Chen Kai <281165273grape@gmail.com>
2024-02-29 20:16:49 +08:00
Chen Kai
1942fef8fe
Merge branch 'ethereum:master' into portal 2024-02-29 20:09:50 +08:00
yzb
db4cf69166
all: replace fmt.Errorf() with errors.New() if no param required (#29126)
replace-fmt-errorf

Co-authored-by: yzb@example.cn <yzb@example.cn>
2024-02-29 11:56:46 +02:00
cui fliter
dbc27a199f
all: fix function names in docs (#29128)
Signed-off-by: cui fliter <imcusg@gmail.com>
2024-02-29 11:29:06 +02:00
Chen Kai
2d9017e6a4 fix:fix hive
Signed-off-by: Chen Kai <281165273grape@gmail.com>
2024-02-28 20:16:45 +08:00
Chen Kai
43a1863f67
Merge branch 'ethereum:master' into portal 2024-02-26 22:01:07 +08:00
Qt
26724fc2aa
p2p, log, rpc: use errors.New to replace fmt.Errorf with no parameters (#29074) 2024-02-26 11:25:35 +02:00
Chen Kai
3c5dbf1fd8 fix:fix hive test bug
Signed-off-by: Chen Kai <281165273grape@gmail.com>
2024-02-25 17:59:39 +08:00
fearlessfe
3a5754f43a fix: Content and Enrs ssz error 2024-02-24 13:11:40 +08:00
Chen Kai
00fcda62fa feat: fix discovery test
Signed-off-by: Chen Kai <281165273grape@gmail.com>
2024-02-24 11:04:21 +08:00
Chen Kai
a8ba15d62c fix:add justseen node
Signed-off-by: Chen Kai <281165273grape@gmail.com>
2024-02-23 06:43:56 +08:00
Chen Kai
12169d3848 feat:add accept ssz test
Signed-off-by: Chen Kai <281165273grape@gmail.com>
2024-02-22 16:31:34 +08:00
fearlessfe
bcb5d28724 feat: add gossip rpc and do some refactor
1. add gossip rpc method
2. use uint256.Ummarshal method to unmarshal uint256 bytes
2024-02-18 10:24:08 +08:00
fearlessfe
5e657f8423 fix: rpc routing table info 2024-02-18 10:24:08 +08:00
Chen Kai
9461701b0e Merge branch 'master' into portal1 2024-02-12 20:00:57 +08:00
zoereco
2ab365f6d8
all: fix docstring names (#28923)
* fix wrong comment

* reviewers input

* Update log/handler_glog.go

---------

Co-authored-by: Martin HS <martin@swende.se>
2024-02-07 21:10:49 +01:00
Chen Kai
507832ca5e
Merge branch 'ethereum:master' into portal 2024-02-06 20:01:09 +08:00
fearlessfe
8651f5b4af fix: protal protocol type error 2024-02-06 16:46:36 +08:00
fearlessfe
17d1601eec fix: remove unused file 2024-02-06 16:46:36 +08:00
fearlseefe
4cc6cde8c6 feat: add test for message 2024-02-06 16:46:36 +08:00
fearlseefe
8e2253ef6d fix: add log and add static ip 2024-02-06 16:46:36 +08:00
Dimitris Apostolou
8fd43c8013
all: fix typos in comments (#28881) 2024-02-05 22:16:32 +01:00
Chris Ziogas
19af9008f1
p2p: fix accidental termination of portMappingLoop (#28911) 2024-02-05 22:00:46 +01:00
fearlessfe
35b3ac43af feat: add docker file and do some optimize 2024-02-04 14:23:22 +08:00
fearlessfe
c5bf27aaec fix: some portal-hive test err
1. add history prifix for json rpc method
2. fix deleteEnr and recursiveFindContent in rpc-compact test
2024-01-29 18:46:51 +08:00
fearlessfe
3936f0bbee feat: add rpc methods 2024-01-28 15:29:42 +08:00
fearlessfe
c3b1fe2382 feat: add history prefix in portal api 2024-01-28 15:29:42 +08:00
Chen Kai
624e45dfb6 feat:add gossip content
Signed-off-by: Chen Kai <281165273grape@gmail.com>
2024-01-22 22:35:34 +08:00
fearlessfe
577a61c863 feat: get body and receipts 2024-01-21 18:14:20 +08:00
fearlessfe
baf8e8aac7 feat: get header by block hash 2024-01-20 18:05:58 +08:00
Chen Kai
507576e905
Merge branch 'ethereum:master' into portal 2024-01-13 23:11:05 +08:00
ddl
1335ba5f28
p2p/dnsdisc: use strings.Cut over strings.IndexByte (#28787) 2024-01-12 19:57:47 +01:00
fearlseefe
30b71fd14b refactor: use lookupworker 2024-01-09 17:09:38 +08:00
fearlseefe
c972aeda11 feat: use Lookup method 2024-01-09 17:09:38 +08:00
fearlseefe
6fbbe06767 fix: port conflict in test 2024-01-09 17:09:38 +08:00
fearlessfe
800ecad368 feat: finish contentLookup 2024-01-09 17:09:38 +08:00
fearlessfe
c0ac288ee7 faet: add content lookup test 2024-01-09 17:09:38 +08:00
fearlseefe
7fb680502e refactor: content storage
move ContentStorage interface to storage
2024-01-02 21:40:09 +08:00
thinkAfCod
c0ca1e4829 fix: lint checks 2023-12-26 10:54:22 +08:00
thinkAfCod
b14abef0cb fix: update utp-go version and modify test case 2023-12-25 18:02:35 +08:00
Chen Kai
cd5a92e383 fix:fix portal test
Signed-off-by: Chen Kai <281165273grape@gmail.com>
2023-12-25 12:46:16 +08:00
Chen Kai
d04b685d31 Merge branch 'master' into portal1 2023-12-20 20:48:32 +08:00
Felix Lange
5b22a472d6
p2p/discover: add liveness check in collectTableNodes (#28686)
* p2p/discover: add liveness check in collectTableNodes

* p2p/discover: fix test

* p2p/discover: rename to appendLiveNodes

* p2p/discover: add dedup logic back

* p2p/discover: simplify

* p2p/discover: fix issue found by test
2023-12-18 10:47:21 +01:00
alex
edc864f9ba
all: fix typos in comments (#28682)
chore(core,eth):fix a couple of typos
2023-12-18 09:35:12 +01:00
fearlseefe
6e2481873b faat: change the content_storage package 2023-12-13 19:26:41 +08:00
fearlessfe
4fc88f8dbe feat: content storage
impl #5
2023-12-13 19:26:41 +08:00
Chen Kai
2b0315e3ab feat:add more disc/portal api
Signed-off-by: Chen Kai <281165273grape@gmail.com>
2023-12-12 09:42:49 +08:00
Chen Kai
555b58c26c feat:rpc part2
Signed-off-by: Chen Kai <281165273grape@gmail.com>
2023-12-11 12:44:25 +08:00
Chen Kai
088af7da90 Merge branch 'master' into portal1 2023-12-10 17:27:12 +08:00
Martin Holst Swende
5416e3ac25 log: remove lazy, remove unused interfaces, unexport methods (#28622)
This change

- Removes interface `log.Format`,
- Removes method `log.FormatFunc`,
- unexports `TerminalHandler.TerminalFormat` formatting methods (renamed to `TerminalHandler.format`)
- removes the notion of `log.Lazy` values

The lazy handler was useful in the old log package, since it
could defer the evaluation of costly attributes until later in the
log pipeline: thus, if the logging was done at 'Trace', we could
skip evaluation if logging only was set to 'Info'.

With the move to slog, this way of deferring evaluation is no longer
needed, since slog introduced 'Enabled': the caller can thus do
the evaluate-or-not decision at the callsite, which is much more
straight-forward than dealing with lazy reflect-based evaluation.

Also, lazy evaluation would not work with 'native' slog, as in, these
two statements would be evaluated differently:

```golang
  log.Info("foo", "my lazy", lazyObj)
  slog.Info("foo", "my lazy", lazyObj)
```
2023-12-10 17:21:06 +08:00
Martin Holst Swende
b8d44ed98b
log: remove lazy, remove unused interfaces, unexport methods (#28622)
This change 

- Removes interface `log.Format`, 
- Removes method `log.FormatFunc`, 
- unexports `TerminalHandler.TerminalFormat` formatting methods (renamed to `TerminalHandler.format`)
- removes the notion of `log.Lazy` values


The lazy handler was useful in the old log package, since it
could defer the evaluation of costly attributes until later in the
log pipeline: thus, if the logging was done at 'Trace', we could
skip evaluation if logging only was set to 'Info'.

With the move to slog, this way of deferring evaluation is no longer
needed, since slog introduced 'Enabled': the caller can thus do
the evaluate-or-not decision at the callsite, which is much more
straight-forward than dealing with lazy reflect-based evaluation.

Also, lazy evaluation would not work with 'native' slog, as in, these
two statements would be evaluated differently:

```golang
  log.Info("foo", "my lazy", lazyObj)
  slog.Info("foo", "my lazy", lazyObj)
```
2023-12-05 11:54:44 +01:00
Chen Kai
a9643f4ba7 feat:rpc disc/history part1
Signed-off-by: Chen Kai <281165273grape@gmail.com>
2023-12-05 10:08:40 +08:00
thinkAfCod
da7196970f fix: update utp-go version and modify test case 2023-12-03 11:39:28 +08:00
Chen Kai
b724ba2b79 Merge branch 'opmaster' into portal1
Signed-off-by: Chen Kai <281165273grape@gmail.com>
2023-12-01 15:55:50 +08:00
jwasinger
28e7371701
all: replace log15 with slog (#28187)
This PR replaces Geth's logger package (a fork of [log15](https://github.com/inconshreveable/log15)) with an implementation using slog, a logging library included as part of the Go standard library as of Go1.21.

Main changes are as follows:
* removes any log handlers that were unused in the Geth codebase.
* Json, logfmt, and terminal formatters are now slog handlers.
* Verbosity level constants are changed to match slog constant values.  Internal translation is done to make this opaque to the user and backwards compatible with existing `--verbosity` and `--vmodule` options.
* `--log.backtraceat` and `--log.debug` are removed.

The external-facing API is largely the same as the existing Geth logger.  Logger method signatures remain unchanged.

A small semantic difference is that a `Handler` can only be set once per `Logger` and not changed dynamically.  This just means that a new logger must be instantiated every time the handler of the root logger is changed.

----
For users of the `go-ethereum/log` module. If you were using this module for your own project, you will need to change the initialization. If you previously did 
```golang
log.Root().SetHandler(log.LvlFilterHandler(log.LvlInfo, log.StreamHandler(os.Stderr, log.TerminalFormat(true))))
```
You now instead need to do 
```golang
log.SetDefault(log.NewLogger(log.NewTerminalHandlerWithLevel(os.Stderr, log.LevelInfo, true)))
```
See more about reasoning here: https://github.com/ethereum/go-ethereum/issues/28558#issuecomment-1820606613
2023-11-29 08:33:50 +01:00
Chen Kai
aeae3676c6 fix:fix pong nil bug
Signed-off-by: Chen Kai <281165273grape@gmail.com>
2023-11-27 22:06:05 +08:00
Chen Kai
b28975bd17 feat:add offer/accept protocol
Signed-off-by: Chen Kai <281165273grape@gmail.com>
2023-11-26 20:16:06 +08:00
Chen Kai
0e9882efc3 Merge branch 'opmaster' into portal 2023-11-16 18:02:16 +08:00
Chen Kai
8430b0114c feat:handle offer extension
Signed-off-by: Chen Kai <281165273grape@gmail.com>
2023-11-16 17:47:22 +08:00
Håvard Anda Estensen
a75a2d6db6
all: replace some cases of strings.SplitN with strings.Cut (#28446) 2023-11-15 14:42:33 +01:00
Chen Kai
92a254f34f fix:fix lint
Signed-off-by: Chen Kai <281165273grape@gmail.com>
2023-11-15 13:51:07 +08:00
Chen Kai
29083a9cb3 feat:add offer handle method
Signed-off-by: Chen Kai <281165273grape@gmail.com>
2023-11-15 13:45:09 +08:00
thinkAfCod
29c9241a77 fix: modify max packet size 2023-11-14 19:51:50 +08:00
thinkAfCod
dc349d90b5 fix: update lib of utp 2023-11-11 23:35:27 +08:00
Chen Kai
2024d388ad
Merge branch 'ethereum:master' into portal 2023-11-10 13:27:22 +08:00
grapebaba
5944d6589c feat:add find content
Signed-off-by: grapebaba <281165273@qq.com>
2023-11-03 21:56:14 +08:00
thinkAfCod
adfd669e40 fix: update lib of utp 2023-10-30 12:19:31 +08:00
Martin Holst Swende
233db64cc1
all: make vendored copy of reexec (#28382)
a little copying is better than a little dependency

-- go proverb

We have this dependency on docker, a.k.a moby: a gigantic library, and we only need ~70 LOC,
so here I tried moving it inline instead.

Co-authored-by: Felix Lange <fjl@twurst.com>
2023-10-28 00:14:43 +02:00
grapebaba
bf12305507 feat:handle find content message
Signed-off-by: grapebaba <281165273@qq.com>
2023-10-26 13:26:02 +08:00
grapebaba
499017009a feat:make portal wire ping/pong findnodes/nodes works
Signed-off-by: grapebaba <281165273@qq.com>
2023-10-26 13:26:02 +08:00
Felix Lange
9b46986edc
all: use rlp.DecodeBytes instead of rlp.Decode where possible (#27994) 2023-08-24 11:47:42 +03:00
Péter Szilágyi
be65b47645
all: update golang/x/ext and fix slice sorting fallout (#27909)
The Go authors updated golang/x/ext to change the function signature of the slices sort method. 
It's an entire shitshow now because x/ext is not tagged, so everyone's codebase just 
picked a new version that some other dep depends on, causing our code to fail building.

This PR updates the dep on our code too and does all the refactorings to follow upstream...
2023-08-12 00:04:12 +02:00
Felix Lange
7ec60d5f0c
p2p: move ping handling into pingLoop goroutine (#27887)
Moving the response sending there allows tracking all peer goroutines
in the peer WaitGroup.
2023-08-09 16:00:31 +02:00
ucwong
6d2bcb911a
p2p/simulations/examples: use atomic.Int64 (#27861) 2023-08-07 18:30:05 +02:00
ucwong
d04bde0a20
p2p: use atomic types (#27764)
Co-authored-by: Felix Lange <fjl@twurst.com>
2023-08-01 23:20:52 +02:00
Seungbae Yu
60ecf48dd4
cmd/bootnode, p2p: support for alternate mapped ports (#26359)
This changes the port mapping procedure such that, when the requested port is unavailable
an alternative port suggested by the router is used instead.

We now also repeatedly request the external IP from the router in order to catch any IP changes.

Co-authored-by: Felix Lange <fjl@twurst.com>
2023-07-14 14:58:27 +02:00
Felix Lange
a426999fc9
p2p/discover: filter bootnodes by netrestrict (#27701)
This prevents an issue where the node would attempt to contact the bootstrap
nodes even if they weren't contained in the netrestrict list.
2023-07-12 12:01:38 +02:00
lightclient
645b0db98e
cmd/utils, p2p: clean up discovery setup (#27518)
This simplifies the code that initializes the discovery a bit, and
adds new flags for enabling/disabling discv4 and discv5 separately.

---------

Co-authored-by: Felix Lange <fjl@twurst.com>
2023-07-11 21:21:32 +02:00
lightclient
cbf2579691
p2p, p2p/discover: add dial metrics (#27621)
This PR adds metrics for p2p dialing, which gives us visibility into the quality of the dial 
candidates  returned by our discovery methods.
2023-07-06 16:20:31 +02:00
Exca-DK
5520cd97a1
p2p/discover: swap verification order in discv4 ping handler (#27532)
In all other UDPv4 methods, the deadline is checked first. It seems weird to me that ping is an exception. Deadline comparison is also less resource intensive.

Co-authored-by: Exca-DK <Exca-DK@users.noreply.github.com>
2023-06-22 10:06:14 +02:00
Dan Laine
289c6c3b15
p2p: use slices package for sorting (#27494)
Co-authored-by: Felix Lange <fjl@twurst.com>
2023-06-19 07:48:12 +02:00
Sanghee Choi
acc2a2ac61
node: remove unused error return from Attach (#27450)
node: Delete the unused error from return parameters of Node.Attach() func
2023-06-14 08:24:47 -04:00
Felix Lange
ac86547b01
p2p/discover: add Table configuration and Nodes method (#27387)
* p2p/discover: remove ReadRandomNodes

Even though it's public, this method is not callable by code outside of
package p2p/discover because one can't get a valid instance of Table.

* p2p/discover: add Table.Nodes

* p2p/discover: make Table settings configurable

In unit tests and externally developed cmd/devp2p test runs, it can be
useful to tune the timer intervals used by Table.
2023-05-31 13:37:10 +02:00
ucwong
ae7db289b8
p2p: initialize maps with known size (#27229) 2023-05-10 10:52:26 +02:00
Martin Holst Swende
7d1ebe51b7
p2p/discover: fix lint nit (#27206) 2023-05-02 04:36:11 -04:00
ucwong
a865e28f28
p2p/discover : typo (#27193) 2023-04-28 21:34:08 +03:00
Felix Lange
47cdea5ac5
p2p/discover: concurrent TALKREQ handling (#27112)
This changes TALKREQ message processing to run the handler on separate goroutine,
instead of running on the main discv5 dispatcher goroutine. It's better this way because
it allows the handler to perform blocking actions.

I'm also adding a new method TalkRequestToID here. The method allows implementing
a request flow where one node A sends TALKREQ to another node B, and node B later
sends a TALKREQ back. With TalkRequestToID, node B does not need the ENR of A to
send its request.
2023-04-28 11:03:43 +02:00
Exca-DK
f8f95346f9
p2p/discover: add traffic metrics (#27008)
Co-authored-by: Exca-DK <dev@DESKTOP-RI45P4J.localdomain>
Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
2023-04-25 12:12:34 +02:00
joohhnnn
b1972627d9
p2p: access embedded fields of Server directly (#27078) 2023-04-18 11:57:08 +02:00