Skip to content

Commit 723bd8c

Browse files
authored
p2p/discover: move discv4 encoding to new 'v4wire' package (#21147)
This moves all v4 protocol definitions to a new package, p2p/discover/v4wire. The new package will be used for low-level protocol tests.
1 parent cd57d5c commit 723bd8c

File tree

6 files changed

+655
-516
lines changed

6 files changed

+655
-516
lines changed

p2p/discover/node.go

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -61,17 +61,6 @@ func (e encPubkey) id() enode.ID {
6161
return enode.ID(crypto.Keccak256Hash(e[:]))
6262
}
6363

64-
// recoverNodeKey computes the public key used to sign the
65-
// given hash from the signature.
66-
func recoverNodeKey(hash, sig []byte) (key encPubkey, err error) {
67-
pubkey, err := crypto.Ecrecover(hash, sig)
68-
if err != nil {
69-
return key, err
70-
}
71-
copy(key[:], pubkey[1:])
72-
return key, nil
73-
}
74-
7564
func wrapNode(n *enode.Node) *node {
7665
return &node{Node: *n}
7766
}

p2p/discover/v4_lookup_test.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"testing"
2525

2626
"github.com/ethereum/go-ethereum/crypto"
27+
"github.com/ethereum/go-ethereum/p2p/discover/v4wire"
2728
"github.com/ethereum/go-ethereum/p2p/enode"
2829
"github.com/ethereum/go-ethereum/p2p/enr"
2930
)
@@ -135,15 +136,15 @@ func TestUDPv4_LookupIteratorClose(t *testing.T) {
135136

136137
func serveTestnet(test *udpTest, testnet *preminedTestnet) {
137138
for done := false; !done; {
138-
done = test.waitPacketOut(func(p packetV4, to *net.UDPAddr, hash []byte) {
139+
done = test.waitPacketOut(func(p v4wire.Packet, to *net.UDPAddr, hash []byte) {
139140
n, key := testnet.nodeByAddr(to)
140141
switch p.(type) {
141-
case *pingV4:
142-
test.packetInFrom(nil, key, to, &pongV4{Expiration: futureExp, ReplyTok: hash})
143-
case *findnodeV4:
142+
case *v4wire.Ping:
143+
test.packetInFrom(nil, key, to, &v4wire.Pong{Expiration: futureExp, ReplyTok: hash})
144+
case *v4wire.Findnode:
144145
dist := enode.LogDist(n.ID(), testnet.target.id())
145146
nodes := testnet.nodesAtDistance(dist - 1)
146-
test.packetInFrom(nil, key, to, &neighborsV4{Expiration: futureExp, Nodes: nodes})
147+
test.packetInFrom(nil, key, to, &v4wire.Neighbors{Expiration: futureExp, Nodes: nodes})
147148
}
148149
})
149150
}
@@ -270,8 +271,8 @@ func (tn *preminedTestnet) nodeByAddr(addr *net.UDPAddr) (*enode.Node, *ecdsa.Pr
270271
return tn.node(dist, index), key
271272
}
272273

273-
func (tn *preminedTestnet) nodesAtDistance(dist int) []rpcNode {
274-
result := make([]rpcNode, len(tn.dists[dist]))
274+
func (tn *preminedTestnet) nodesAtDistance(dist int) []v4wire.Node {
275+
result := make([]v4wire.Node, len(tn.dists[dist]))
275276
for i := range result {
276277
result[i] = nodeToRPC(wrapNode(tn.node(dist, i)))
277278
}

0 commit comments

Comments
 (0)