relay method
Relays an existing event to K random peers in a Gossip-style fanout. Returns whether the event was able to be relayed to a peer.
Implementation
Future<void> relay(EventModel event, [int k = 4]) async {
if (!client.isRunning) {
return;
}
final nodes = await client.getNodes();
if (nodes.isEmpty) {
_logger.log('No online devices for relay');
return;
}
await nodes.takeRandom(k).asyncMap((node) async {
if (node.ipv4 case String ip) {
await relayIP(ip, event);
}
});
}