From 767d424bb272cbc770785076c8d4fb7e6457e9c7 Mon Sep 17 00:00:00 2001 From: Stephen Buttolph Date: Thu, 7 Mar 2024 15:13:35 -0500 Subject: [PATCH] Remove pre-Durango checks in BLS key verification --- network/peer/peer.go | 10 +---- network/peer/peer_test.go | 91 ++------------------------------------- 2 files changed, 4 insertions(+), 97 deletions(-) diff --git a/network/peer/peer.go b/network/peer/peer.go index c747c1d816b7..a78aae2996a8 100644 --- a/network/peer/peer.go +++ b/network/peer/peer.go @@ -716,8 +716,7 @@ func (p *peer) shouldDisconnect() bool { return false } - postDurango := p.Clock.Time().After(version.GetDurangoTime(constants.MainnetID)) - if postDurango && p.ip.BLSSignature == nil { + if p.ip.BLSSignature == nil { p.Log.Debug("disconnecting from peer", zap.String("reason", "missing BLS signature"), zap.Stringer("nodeID", p.id), @@ -725,13 +724,6 @@ func (p *peer) shouldDisconnect() bool { return true } - // If Durango hasn't activated on mainnet yet, we don't require BLS - // signatures to be provided. However, if they are provided, verify that - // they are correct. - if p.ip.BLSSignature == nil { - return false - } - validSignature := bls.VerifyProofOfPossession( vdr.PublicKey, p.ip.BLSSignature, diff --git a/network/peer/peer_test.go b/network/peer/peer_test.go index e52273fc6fbe..45d2fc60a234 100644 --- a/network/peer/peer_test.go +++ b/network/peer/peer_test.go @@ -29,7 +29,6 @@ import ( "github.com/ava-labs/avalanchego/utils/math/meter" "github.com/ava-labs/avalanchego/utils/resource" "github.com/ava-labs/avalanchego/utils/set" - "github.com/ava-labs/avalanchego/utils/timer/mockable" "github.com/ava-labs/avalanchego/version" ) @@ -591,14 +590,9 @@ func TestShouldDisconnect(t *testing.T) { expectedShouldDisconnect: false, }, { - name: "past durango without a signature", + name: "peer without signature", initialPeer: &peer{ Config: &Config{ - Clock: func() mockable.Clock { - clk := mockable.Clock{} - clk.Set(mockable.MaxTime) - return clk - }(), Log: logging.NoLog{}, VersionCompatibility: version.GetCompatibility(constants.UnitTestID), Validators: func() validators.Manager { @@ -619,11 +613,6 @@ func TestShouldDisconnect(t *testing.T) { }, expectedPeer: &peer{ Config: &Config{ - Clock: func() mockable.Clock { - clk := mockable.Clock{} - clk.Set(mockable.MaxTime) - return clk - }(), Log: logging.NoLog{}, VersionCompatibility: version.GetCompatibility(constants.UnitTestID), Validators: func() validators.Manager { @@ -645,68 +634,9 @@ func TestShouldDisconnect(t *testing.T) { expectedShouldDisconnect: true, }, { - name: "pre durango without a signature", + name: "peer with invalid signature", initialPeer: &peer{ Config: &Config{ - Clock: func() mockable.Clock { - clk := mockable.Clock{} - clk.Set(time.Time{}) - return clk - }(), - Log: logging.NoLog{}, - VersionCompatibility: version.GetCompatibility(constants.UnitTestID), - Validators: func() validators.Manager { - vdrs := validators.NewManager() - require.NoError(t, vdrs.AddStaker( - constants.PrimaryNetworkID, - peerID, - bls.PublicFromSecretKey(blsKey), - txID, - 1, - )) - return vdrs - }(), - }, - id: peerID, - version: version.CurrentApp, - ip: &SignedIP{}, - }, - expectedPeer: &peer{ - Config: &Config{ - Clock: func() mockable.Clock { - clk := mockable.Clock{} - clk.Set(time.Time{}) - return clk - }(), - Log: logging.NoLog{}, - VersionCompatibility: version.GetCompatibility(constants.UnitTestID), - Validators: func() validators.Manager { - vdrs := validators.NewManager() - require.NoError(t, vdrs.AddStaker( - constants.PrimaryNetworkID, - peerID, - bls.PublicFromSecretKey(blsKey), - txID, - 1, - )) - return vdrs - }(), - }, - id: peerID, - version: version.CurrentApp, - ip: &SignedIP{}, - }, - expectedShouldDisconnect: false, - }, - { - name: "pre durango with an invalid signature", - initialPeer: &peer{ - Config: &Config{ - Clock: func() mockable.Clock { - clk := mockable.Clock{} - clk.Set(time.Time{}) - return clk - }(), Log: logging.NoLog{}, VersionCompatibility: version.GetCompatibility(constants.UnitTestID), Validators: func() validators.Manager { @@ -729,11 +659,6 @@ func TestShouldDisconnect(t *testing.T) { }, expectedPeer: &peer{ Config: &Config{ - Clock: func() mockable.Clock { - clk := mockable.Clock{} - clk.Set(time.Time{}) - return clk - }(), Log: logging.NoLog{}, VersionCompatibility: version.GetCompatibility(constants.UnitTestID), Validators: func() validators.Manager { @@ -757,14 +682,9 @@ func TestShouldDisconnect(t *testing.T) { expectedShouldDisconnect: true, }, { - name: "pre durango with a valid signature", + name: "peer with valid signature", initialPeer: &peer{ Config: &Config{ - Clock: func() mockable.Clock { - clk := mockable.Clock{} - clk.Set(time.Time{}) - return clk - }(), Log: logging.NoLog{}, VersionCompatibility: version.GetCompatibility(constants.UnitTestID), Validators: func() validators.Manager { @@ -787,11 +707,6 @@ func TestShouldDisconnect(t *testing.T) { }, expectedPeer: &peer{ Config: &Config{ - Clock: func() mockable.Clock { - clk := mockable.Clock{} - clk.Set(time.Time{}) - return clk - }(), Log: logging.NoLog{}, VersionCompatibility: version.GetCompatibility(constants.UnitTestID), Validators: func() validators.Manager {