mirror of
https://github.com/logos-messaging/logos-messaging-go-bindings.git
synced 2026-01-02 14:03:10 +00:00
Merge remote-tracking branch 'origin/master' into stress_test
This commit is contained in:
commit
d9835f1382
18
README.md
18
README.md
@ -31,3 +31,21 @@ Follow these steps to install and set up the module:
|
||||
```
|
||||
|
||||
Now the module is ready for use in your project.
|
||||
|
||||
### Note
|
||||
|
||||
In order to easily build the libwaku library on demand, it is recommended to add the following target in your project's Makefile:
|
||||
|
||||
```
|
||||
LIBWAKU_DEP_PATH=$(shell go list -m -f '{{.Dir}}' github.com/waku-org/waku-go-bindings)
|
||||
|
||||
buildlib:
|
||||
cd $(LIBWAKU_DEP_PATH) &&\
|
||||
sudo mkdir -p third_party &&\
|
||||
sudo chown $(USER) third_party &&\
|
||||
make -C waku
|
||||
```
|
||||
|
||||
## Example Usage
|
||||
|
||||
For an example on how to use this package, please take a look at our [example-go-bindings](https://github.com/gabrielmer/example-waku-go-bindings) repo
|
||||
|
||||
@ -90,6 +90,60 @@ func TestConnectMultipleNodesToSingleNode(t *testing.T) {
|
||||
Debug("Test completed successfully: multiple nodes connected to a single node and verified peers")
|
||||
}
|
||||
|
||||
func TestConnectUsingMultipleStaticPeers(t *testing.T) {
|
||||
Debug("Starting TestConnectUsingMultipleStaticPeers")
|
||||
|
||||
node1, err := StartWakuNode("node1", nil)
|
||||
require.NoError(t, err, "Failed to start Node 1")
|
||||
|
||||
node2, err := StartWakuNode("node2", nil)
|
||||
require.NoError(t, err, "Failed to start Node 2")
|
||||
|
||||
node3, err := StartWakuNode("node3", nil)
|
||||
require.NoError(t, err, "Failed to start Node 3")
|
||||
|
||||
addr1, err := node1.ListenAddresses()
|
||||
require.NoError(t, err, "Failed to get listen addresses for Node 1")
|
||||
|
||||
addr2, err := node2.ListenAddresses()
|
||||
require.NoError(t, err, "Failed to get listen addresses for Node 2")
|
||||
|
||||
addr3, err := node3.ListenAddresses()
|
||||
require.NoError(t, err, "Failed to get listen addresses for Node 3")
|
||||
|
||||
node4Config := DefaultWakuConfig
|
||||
node4Config.Discv5Discovery = false
|
||||
node4Config.Staticnodes = []string{addr1[0].String(), addr2[0].String(), addr3[0].String()}
|
||||
|
||||
node4, err := StartWakuNode("node4", &node4Config)
|
||||
require.NoError(t, err, "Failed to start Node 4")
|
||||
|
||||
defer func() {
|
||||
Debug("Stopping and destroying all Waku nodes")
|
||||
node1.StopAndDestroy()
|
||||
node2.StopAndDestroy()
|
||||
node3.StopAndDestroy()
|
||||
node4.StopAndDestroy()
|
||||
}()
|
||||
|
||||
Debug("Verifying connected peers for Node 4")
|
||||
connectedPeers, err := node4.GetConnectedPeers()
|
||||
require.NoError(t, err, "Failed to get connected peers for Node 4")
|
||||
|
||||
node1PeerID, err := node1.PeerID()
|
||||
require.NoError(t, err, "Failed to get PeerID for Node 1")
|
||||
node2PeerID, err := node2.PeerID()
|
||||
require.NoError(t, err, "Failed to get PeerID for Node 2")
|
||||
node3PeerID, err := node3.PeerID()
|
||||
require.NoError(t, err, "Failed to get PeerID for Node 3")
|
||||
|
||||
require.True(t, slices.Contains(connectedPeers, node1PeerID), "Node 1 should be a peer of Node 4")
|
||||
require.True(t, slices.Contains(connectedPeers, node2PeerID), "Node 2 should be a peer of Node 4")
|
||||
require.True(t, slices.Contains(connectedPeers, node3PeerID), "Node 3 should be a peer of Node 4")
|
||||
|
||||
Debug("Test passed: multiple nodes connected to a single node using Static Peers")
|
||||
}
|
||||
|
||||
func TestDiscv5PeerMeshCount(t *testing.T) {
|
||||
Debug("Starting test to verify peer count in mesh using Discv5 after topic subscription")
|
||||
|
||||
@ -159,6 +213,48 @@ func TestDiscv5PeerMeshCount(t *testing.T) {
|
||||
Debug("Test successfully verified peer count change after stopping Node3")
|
||||
}
|
||||
|
||||
func TestDiscv5DisabledNoPeersConnected(t *testing.T) {
|
||||
Debug("Starting TestDiscv5DisabledNoPeersConnected")
|
||||
|
||||
nodeConfig := DefaultWakuConfig
|
||||
nodeConfig.Discv5Discovery = false
|
||||
nodeConfig.Relay = true
|
||||
|
||||
Debug("Creating Node1")
|
||||
node1, err := StartWakuNode("Node1", &nodeConfig)
|
||||
require.NoError(t, err, "Failed to start Node1")
|
||||
|
||||
enrNode1, err := node1.ENR()
|
||||
require.NoError(t, err, "Failed to get ENR for Node1")
|
||||
nodeConfig.Discv5BootstrapNodes = []string{enrNode1.String()}
|
||||
|
||||
Debug("Creating Node2 with Node1 as Discv5 bootstrap")
|
||||
node2, err := StartWakuNode("Node2", &nodeConfig)
|
||||
require.NoError(t, err, "Failed to start Node2")
|
||||
|
||||
defer func() {
|
||||
Debug("Stopping and destroying all Waku nodes")
|
||||
node1.StopAndDestroy()
|
||||
node2.StopAndDestroy()
|
||||
}()
|
||||
|
||||
Debug("Waiting to ensure no auto-connection")
|
||||
time.Sleep(15 * time.Second)
|
||||
|
||||
Debug("Verifying number of peers connected to Nodes")
|
||||
peerCount, err := node1.GetNumConnectedPeers()
|
||||
require.NoError(t, err, "Failed to get number of peers in mesh for Node1")
|
||||
Debug("Total number of connected peers for Node1: %d", peerCount)
|
||||
require.Equal(t, 0, peerCount, "Expected Node1 to have exactly 0 peers in the mesh")
|
||||
|
||||
peerCount, err = node2.GetNumConnectedPeers()
|
||||
require.NoError(t, err, "Failed to get number of peers in mesh for Node2")
|
||||
Debug("Total number of connected peers for Node2: %d", peerCount)
|
||||
require.Equal(t, 0, peerCount, "Expected Node2 to have exactly 0 peers in the mesh")
|
||||
|
||||
Debug("Test passed: all the nodes have 0 peers")
|
||||
}
|
||||
|
||||
// this test commented as it will fail will be changed to have external ip in future task
|
||||
/*
|
||||
func TestDiscv5GetPeersConnected(t *testing.T) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user