Connect external store node

One or more external store nodes can be connected to the waku-simulator network by using configuration similar to that shown below. The store node(s) can use the DB as backend from an existing staging or production system DB or a custom one. When connecting to any DB ensure that the store-message-retention-policy matches that of the system. The staticnode that the store node connects to can be any existing node in the waku-simulator network, alternatively use the discv5 configuration.

 --discv5-discovery=true \
 --discv5-enr-auto-update=True \
 --discv5-bootstrap-node=BOOTSTRAP_ENR\

The store node can be queried via the waku rest API. An easy way to find a message hash to query is by checking the store node logs for the message archived message:

docker logs nwaku_storenode_1 | grep -i "message archived"

The store node will need to have log-level set to DEBUG for this logging to be available.

The message-finder tool could also be useful for store node testing.

docker run -it --network waku-simulator_simulation --name nwaku_storenode_1 -d harbor.status.im/wakuorg/nwaku:latest \
    --relay=true\
    --rest=true\
    --rest-address=0.0.0.0\
    --rest-port=8645\
    --log-level=DEBUG\
    --pubsub-topic=/waku/2/rs/66/0\
    --cluster-id=66\
    --metrics-server=true\
    --discv5-discovery=true\
    --discv5-enr-auto-update=true\
    --store=true\
    --store-message-db-url=<e.g. postgres://pguser:pgpasswrd@127.0.0.1:5432/postgres>\
    --store-message-retention-policy=size:120GB\
    --staticnode=/ip4/0.0.0.0/tcp/60000/p2p/16Uiu2HAmC8Fe4Egsq6AKubmBPr52TQmwc26yoCkszwo6dfQncZ4m\
    --nodekey=5978783f8b1a16795032371fff7a526af352d9dca38179af7d71c0122942fa20

🎯Goals:

  • Connect a store node(s) to the network for ad hoc store protocol testing.
  • Verify that store queries get the expected results.

👀Observability:

  • Check the logs of the newly connected store node, ensuring the behaviour matches the expected.