[NOD-1012] Fix erroneous partial node check (#739)

* [NOD-1012] Fix bad partial node check.

* [NOD-1012] Fix unit tests.
This commit is contained in:
stasatdaglabs 2020-05-31 14:13:30 +03:00 committed by GitHub
parent a4c1898624
commit 3a22249be9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 16 deletions

View File

@ -6,7 +6,6 @@ package peer_test
import ( import (
"fmt" "fmt"
"github.com/kaspanet/kaspad/util/subnetworkid"
"net" "net"
"time" "time"
@ -32,7 +31,7 @@ func mockRemotePeer() error {
UserAgentVersion: "1.0.0", // User agent version to advertise. UserAgentVersion: "1.0.0", // User agent version to advertise.
DAGParams: &dagconfig.SimnetParams, DAGParams: &dagconfig.SimnetParams,
SelectedTipHash: fakeSelectedTipFn, SelectedTipHash: fakeSelectedTipFn,
SubnetworkID: subnetworkid.SubnetworkIDNative, SubnetworkID: nil,
} }
// Accept connections on the simnet port. // Accept connections on the simnet port.
@ -92,7 +91,7 @@ func Example_newOutboundPeer() {
}, },
}, },
SelectedTipHash: fakeSelectedTipFn, SelectedTipHash: fakeSelectedTipFn,
SubnetworkID: subnetworkid.SubnetworkIDNative, SubnetworkID: nil,
} }
p, err := peer.NewOutboundPeer(peerCfg, "127.0.0.1:18555") p, err := peer.NewOutboundPeer(peerCfg, "127.0.0.1:18555")
if err != nil { if err != nil {

View File

@ -897,10 +897,9 @@ func (p *Peer) handleRemoteVersionMsg(msg *wire.MsgVersion) error {
return errors.New(reason) return errors.New(reason)
} }
// Disconnect from non-native/coinbase subnetworks in networks that don't allow them // Disconnect from partial nodes in networks that don't allow them
if !p.cfg.DAGParams.EnableNonNativeSubnetworks && if !p.cfg.DAGParams.EnableNonNativeSubnetworks && msg.SubnetworkID != nil {
!msg.SubnetworkID.IsEqual(subnetworkid.SubnetworkIDNative) { return errors.New("partial nodes are not allowed")
return errors.New("non-native subnetworks are not allowed")
} }
// Disconnect if: // Disconnect if:

View File

@ -5,7 +5,6 @@
package peer package peer
import ( import (
"github.com/kaspanet/kaspad/util/subnetworkid"
"io" "io"
"net" "net"
"strconv" "strconv"
@ -224,7 +223,7 @@ func TestPeerConnection(t *testing.T) {
ProtocolVersion: wire.ProtocolVersion, // Configure with older version ProtocolVersion: wire.ProtocolVersion, // Configure with older version
Services: 0, Services: 0,
SelectedTipHash: fakeSelectedTipFn, SelectedTipHash: fakeSelectedTipFn,
SubnetworkID: subnetworkid.SubnetworkIDNative, SubnetworkID: nil,
} }
outPeerCfg := &Config{ outPeerCfg := &Config{
Listeners: MessageListeners{ Listeners: MessageListeners{
@ -245,7 +244,7 @@ func TestPeerConnection(t *testing.T) {
ProtocolVersion: wire.ProtocolVersion + 1, ProtocolVersion: wire.ProtocolVersion + 1,
Services: wire.SFNodeNetwork, Services: wire.SFNodeNetwork,
SelectedTipHash: fakeSelectedTipFn, SelectedTipHash: fakeSelectedTipFn,
SubnetworkID: subnetworkid.SubnetworkIDNative, SubnetworkID: nil,
} }
wantStats1 := peerStats{ wantStats1 := peerStats{
@ -259,8 +258,8 @@ func TestPeerConnection(t *testing.T) {
wantLastPingNonce: uint64(0), wantLastPingNonce: uint64(0),
wantLastPingMicros: int64(0), wantLastPingMicros: int64(0),
wantTimeOffset: int64(0), wantTimeOffset: int64(0),
wantBytesSent: 215, // 191 version + 24 verack wantBytesSent: 195, // 171 version + 24 verack
wantBytesReceived: 215, wantBytesReceived: 195,
} }
wantStats2 := peerStats{ wantStats2 := peerStats{
wantUserAgent: wire.DefaultUserAgent + "peer:1.0(comment)/", wantUserAgent: wire.DefaultUserAgent + "peer:1.0(comment)/",
@ -273,8 +272,8 @@ func TestPeerConnection(t *testing.T) {
wantLastPingNonce: uint64(0), wantLastPingNonce: uint64(0),
wantLastPingMicros: int64(0), wantLastPingMicros: int64(0),
wantTimeOffset: int64(0), wantTimeOffset: int64(0),
wantBytesSent: 215, // 191 version + 24 verack wantBytesSent: 195, // 171 version + 24 verack
wantBytesReceived: 215, wantBytesReceived: 195,
} }
tests := []struct { tests := []struct {
@ -404,7 +403,7 @@ func TestPeerListeners(t *testing.T) {
DAGParams: &dagconfig.MainnetParams, DAGParams: &dagconfig.MainnetParams,
Services: wire.SFNodeBloom, Services: wire.SFNodeBloom,
SelectedTipHash: fakeSelectedTipFn, SelectedTipHash: fakeSelectedTipFn,
SubnetworkID: subnetworkid.SubnetworkIDNative, SubnetworkID: nil,
} }
outPeerCfg := &Config{} outPeerCfg := &Config{}
@ -521,7 +520,7 @@ func TestOutboundPeer(t *testing.T) {
UserAgentComments: []string{"comment"}, UserAgentComments: []string{"comment"},
DAGParams: &dagconfig.MainnetParams, DAGParams: &dagconfig.MainnetParams,
Services: 0, Services: 0,
SubnetworkID: subnetworkid.SubnetworkIDNative, SubnetworkID: nil,
} }
_, p, err := setupPeers(peerCfg, peerCfg) _, p, err := setupPeers(peerCfg, peerCfg)