mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-03-30 15:08:33 +00:00

* Implement upgrade mechanism for p2p * Remove dependencies from flowcontext to v3 * Add p2p v4 * Add Ready flow * Remove copy paste code of v3 * Register SendAddresses flow at the top level * Add option to set protocol version from CLI and add TestAddressExchangeV3V4 * Send ready message on minimal net adapter * Rename defaultMaxProtocolVersion->maxAcceptableProtocolVersion
82 lines
2.2 KiB
Go
82 lines
2.2 KiB
Go
package integration
|
|
|
|
import (
|
|
"github.com/kaspanet/kaspad/infrastructure/network/addressmanager"
|
|
"testing"
|
|
)
|
|
|
|
func TestAddressExchange(t *testing.T) {
|
|
appHarness1, appHarness2, appHarness3, teardown := standardSetup(t)
|
|
defer teardown()
|
|
|
|
testAddress := "1.2.3.4:6789"
|
|
err := addressmanager.AddAddressByIP(appHarness1.app.AddressManager(), testAddress, nil)
|
|
if err != nil {
|
|
t.Fatalf("Error adding address to addressManager: %+v", err)
|
|
}
|
|
|
|
connect(t, appHarness1, appHarness2)
|
|
connect(t, appHarness2, appHarness3)
|
|
|
|
peerAddresses, err := appHarness3.rpcClient.GetPeerAddresses()
|
|
if err != nil {
|
|
t.Fatalf("Error getting peer addresses: %+v", err)
|
|
}
|
|
|
|
for _, peerAddress := range peerAddresses.Addresses {
|
|
if peerAddress.Addr == testAddress {
|
|
return
|
|
}
|
|
}
|
|
|
|
t.Errorf("Didn't find testAddress in list of addresses of appHarness3")
|
|
}
|
|
|
|
func TestAddressExchangeV3V4(t *testing.T) {
|
|
harnesses, teardown := setupHarnesses(t, []*harnessParams{
|
|
{
|
|
p2pAddress: p2pAddress1,
|
|
rpcAddress: rpcAddress1,
|
|
miningAddress: miningAddress1,
|
|
miningAddressPrivateKey: miningAddress1PrivateKey,
|
|
},
|
|
{
|
|
p2pAddress: p2pAddress2,
|
|
rpcAddress: rpcAddress2,
|
|
miningAddress: miningAddress2,
|
|
miningAddressPrivateKey: miningAddress2PrivateKey,
|
|
}, {
|
|
p2pAddress: p2pAddress3,
|
|
rpcAddress: rpcAddress3,
|
|
miningAddress: miningAddress3,
|
|
miningAddressPrivateKey: miningAddress3PrivateKey,
|
|
protocolVersion: 3,
|
|
},
|
|
})
|
|
defer teardown()
|
|
|
|
appHarness1, appHarness2, appHarness3 := harnesses[0], harnesses[1], harnesses[2]
|
|
|
|
testAddress := "1.2.3.4:6789"
|
|
err := addressmanager.AddAddressByIP(appHarness1.app.AddressManager(), testAddress, nil)
|
|
if err != nil {
|
|
t.Fatalf("Error adding address to addressManager: %+v", err)
|
|
}
|
|
|
|
connect(t, appHarness1, appHarness2)
|
|
connect(t, appHarness2, appHarness3)
|
|
|
|
peerAddresses, err := appHarness3.rpcClient.GetPeerAddresses()
|
|
if err != nil {
|
|
t.Fatalf("Error getting peer addresses: %+v", err)
|
|
}
|
|
|
|
for _, peerAddress := range peerAddresses.Addresses {
|
|
if peerAddress.Addr == testAddress {
|
|
return
|
|
}
|
|
}
|
|
|
|
t.Errorf("Didn't find testAddress in list of addresses of appHarness3")
|
|
}
|