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.