p2p, p2p/discover: add signed ENR generation (#17753)
This PR adds enode.LocalNode and integrates it into the p2p subsystem. This new object is the keeper of the local node record. For now, a new version of the record is produced every time the client restarts. We'll make it smarter to avoid that in the future. There are a couple of other changes in this commit: discovery now waits for all of its goroutines at shutdown and the p2p server now closes the node database after discovery has shut down. This fixes a leveldb crash in tests. p2p server startup is faster because it doesn't need to wait for the external IP query anymore.
This commit is contained in:
@ -169,6 +169,18 @@ func TestDirty(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestSeq(t *testing.T) {
|
||||
var r Record
|
||||
|
||||
assert.Equal(t, uint64(0), r.Seq())
|
||||
r.Set(UDP(1))
|
||||
assert.Equal(t, uint64(0), r.Seq())
|
||||
signTest([]byte{5}, &r)
|
||||
assert.Equal(t, uint64(0), r.Seq())
|
||||
r.Set(UDP(2))
|
||||
assert.Equal(t, uint64(1), r.Seq())
|
||||
}
|
||||
|
||||
// TestGetSetOverwrite tests value overwrite when setting a new value with an existing key in record.
|
||||
func TestGetSetOverwrite(t *testing.T) {
|
||||
var r Record
|
||||
|
Reference in New Issue
Block a user