cmd/devp2p: skip ENR field tails properly in nodeset filter (#22565)
In Geth v1.10, we changed the structure of the "les" ENR entry. As a result, the DHT crawler that creates the DNS lists no longer recognizes the les nodes, which is fixed in this commit. * cmd/devp2p: skip ENR field tails properly in nodeset filter * cmd/devp2p: fix tail decoder for snap as well * les: fix tail decoding in "eth" ENR entry
This commit is contained in:
parent
e862cbff95
commit
5129cdc4f0
@ -173,7 +173,7 @@ func ethFilter(args []string) (nodeFilter, error) {
|
|||||||
f := func(n nodeJSON) bool {
|
f := func(n nodeJSON) bool {
|
||||||
var eth struct {
|
var eth struct {
|
||||||
ForkID forkid.ID
|
ForkID forkid.ID
|
||||||
_ []rlp.RawValue `rlp:"tail"`
|
Tail []rlp.RawValue `rlp:"tail"`
|
||||||
}
|
}
|
||||||
if n.N.Load(enr.WithEntry("eth", ð)) != nil {
|
if n.N.Load(enr.WithEntry("eth", ð)) != nil {
|
||||||
return false
|
return false
|
||||||
@ -186,7 +186,7 @@ func ethFilter(args []string) (nodeFilter, error) {
|
|||||||
func lesFilter(args []string) (nodeFilter, error) {
|
func lesFilter(args []string) (nodeFilter, error) {
|
||||||
f := func(n nodeJSON) bool {
|
f := func(n nodeJSON) bool {
|
||||||
var les struct {
|
var les struct {
|
||||||
_ []rlp.RawValue `rlp:"tail"`
|
Tail []rlp.RawValue `rlp:"tail"`
|
||||||
}
|
}
|
||||||
return n.N.Load(enr.WithEntry("les", &les)) == nil
|
return n.N.Load(enr.WithEntry("les", &les)) == nil
|
||||||
}
|
}
|
||||||
@ -196,7 +196,7 @@ func lesFilter(args []string) (nodeFilter, error) {
|
|||||||
func snapFilter(args []string) (nodeFilter, error) {
|
func snapFilter(args []string) (nodeFilter, error) {
|
||||||
f := func(n nodeJSON) bool {
|
f := func(n nodeJSON) bool {
|
||||||
var snap struct {
|
var snap struct {
|
||||||
_ []rlp.RawValue `rlp:"tail"`
|
Tail []rlp.RawValue `rlp:"tail"`
|
||||||
}
|
}
|
||||||
return n.N.Load(enr.WithEntry("snap", &snap)) == nil
|
return n.N.Load(enr.WithEntry("snap", &snap)) == nil
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,7 @@ func (lesEntry) ENRKey() string { return "les" }
|
|||||||
// ethEntry is the "eth" ENR entry. This is redeclared here to avoid depending on package eth.
|
// ethEntry is the "eth" ENR entry. This is redeclared here to avoid depending on package eth.
|
||||||
type ethEntry struct {
|
type ethEntry struct {
|
||||||
ForkID forkid.ID
|
ForkID forkid.ID
|
||||||
_ []rlp.RawValue `rlp:"tail"`
|
Tail []rlp.RawValue `rlp:"tail"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ethEntry) ENRKey() string { return "eth" }
|
func (ethEntry) ENRKey() string { return "eth" }
|
||||||
|
Loading…
Reference in New Issue
Block a user