Overview

Ideally, a peer should be able to query store nodes to retrieve any messages. To test this behavior, we deploy a pod named get-store-messages after the publisher finishes injecting messages into the network. This pod randomly requests one relay node to fetch message hashes from a store node, which are then returned to the pod. However, we observed that fetching store messages fails in some instances. To gain a better understanding of the issue, we conducted several experiments across two different scenarios:

Scenario-1

Node Types Configuration Instances
Bootstrap nodes (bootstrap) discv5-discovery=true
discv5-enr-auto-update=True 5
Filter server (fserver) filter=true
relay=true 100
Lightpush server (lpserver) lightpush=true
relay=true 100
Store nodes (store) store=true
relay=true 10
Filter client (fclient) relay=false 500
Lightpush client (lpclient) relay=false 500

Scenario-2

Node Types Configuration Instances
Bootstrap nodes (bootstrap) discv5-discovery=true
discv5-enr-auto-update=True 2
Relay nodes (nodes) relay=true 500
Store nodes (store) store=true
relay=true 5, 2

Findings

Scenario-1 forms a comprehensive test case by deploying many node types. We randomly select a node (fserver) to request message hashes from the store.

Scenario-2 forms a simpler. We randomly select a relay node to fetch messages from the store.