3.4 KiB
title |
---|
Protocols |
Waku takes a modular approach, providing a range of protocols that enable applications to control the trade-offs involved in the Anonymity Trilemma. This flexibility empowers applications to make informed choices regarding the desired balance between anonymity, scalability, and latency. Here are the main protocols provided by Waku:
Relay
Relay
protocol employs a Pub/Sub architecture to facilitate message routing among peers. It extends the libp2p GossipSub protocol to create a privacy-focused peer-to-peer messaging protocol that enables secure communication channels, encryption, and protection against censorship.
RLN Relay
RLN Relay
protocol extends the Relay
protocol by using Rate Limit Nullifiers (RLN) to provide efficient and economic spam prevention. It caps the bandwidth usage for all peers on the network, effectively preventing spam, and imposes financial penalties and network removal for spammers. You can find more details in this blog post.
Filter
Filter
protocol allows light nodes to selectively subscribe to specific messages transmitted by other peers. It is designed to be a lightweight alternative to the Relay
protocol, particularly tailored for devices with limited bandwidth.
Store
Store
protocol is responsible for storing messages relayed on the network, making it possible to query and retrieve them later. This functionality benefits offline peers by enabling them to retrieve missed messages upon reconnection.
:::info
Using Relay
and Filter
protocols is recommended when a node is online, as Store
does not guarantee data availability. The Store
protocol is suitable for retrieving messages when connecting to the network, like when a dApp starts.
:::
Light Push
Light Push
is a Request/Reply protocol for nodes with limited bandwidth and short connection windows. It allows a client to receive an acknowledgment when sending messages, indicating that at least one peer has received them.
:::info
While the Light Push
protocol acknowledges the receipt by the remote peer, it does not guarantee network-wide propagation.
:::
Waku Message
Waku Message
specifies the message structure used in the Waku network. It defines the attributes and metadata fields that accompany a message, including the following:
content_topic
attribute for content-based filtering.payload
attribute containing the message data payload to be sent.meta
attribute for conveying additional details to various protocols for application-specific processing.timestamp
attribute signifying the time at which the message was generated by its sender.ephemeral
attribute specifying whether the network should not persist the message.
Payload
Payload
provides guidelines for implementing secure and private communication in the network. It covers encryption, decryption, and signing methods for message payloads, focusing on confidentiality, authenticity, integrity, and unlinkability.