Skip to content

Commit 7fc6335

Browse files
committed
finish refresh, update llms
1 parent 79ff59c commit 7fc6335

File tree

2 files changed

+136
-54
lines changed

2 files changed

+136
-54
lines changed

learn/infrastructure/relayer.md

+68-27
Original file line numberDiff line numberDiff line change
@@ -5,109 +5,150 @@ description: Discover the role of relayers in the Wormhole network, including cl
55

66
# Relayers
77

8-
This documentation provides a comprehensive guide to relayers within the Wormhole network, describing their role, types, and benefits in facilitating cross-chain processes.
8+
This page provides a comprehensive guide to relayers within the Wormhole network, describing their role, types, and benefits in facilitating cross-chain processes.
99

1010
Relayers in the Wormhole context are processes that deliver [Verified Action Approvals (VAAs)](/docs/learn/infrastructure/vaas/){target=\_blank} to their destination, playing a crucial role in Wormhole's security model. They can't compromise security, only availability, and act as delivery mechanisms for VAAs without the capacity to tamper with the outcome.
1111

1212
There are three primary types of relayers discussed:
1313

1414
- **Client-side relaying** - a cost-efficient, no-backend-infrastructure approach relying on user-facing front ends. It provides a simple solution, although it can complicate the user experience due to the manual steps involved
15+
1516
- **Custom relayers** - backend components that handle parts of the cross-chain process, offering a smoother user experience and allowing off-chain calculations to reduce gas costs. These relayers could operate through direct listening to the Guardian Network (Spy relaying)
17+
1618
- **Wormhole-deployed relayers** - a decentralized relayer network that can deliver arbitrary VAAs, reducing the developer's need to develop, host, or maintain relayers. However, they require all calculations to be done on-chain and might be less gas-efficient
1719

1820
## Fundamentals
1921

2022
This section highlights the crucial principles underpinning the operation and handling of relayers within the Wormhole network.
2123

22-
Relayers are fundamentally trustless entities within the network. This means that while they don't require your trust, they shouldn't be trusted implicitly. They function as delivery mechanisms, transporting VAAs from their source to their destination.
24+
Relayers are fundamentally trustless entities within the network, meaning while they don't require your trust to operate, you also shouldn't trust them implicitly. Relayers function as delivery mechanisms, transporting VAAs from their source to their destination.
2325

2426
Key characteristics of VAAs include:
2527

2628
- Public emission from the Guardian Network
29+
2730
- Authentication through signatures from the Guardian Network
31+
2832
- Verifiability by any entity or any Wormhole Core Contract
29-
- As a result of these characteristics, anyone can pick up a VAA and deliver it anywhere, but no one can alter the VAA content without invalidating the signatures
3033

31-
When designing contracts, it's crucial to only trust information contained within your contract or a VAA. Relying on information from a relayer could expose you to input attacks.
34+
These characteristics mean anyone can pick up a VAA and deliver it anywhere, but no one can alter the VAA content without invalidating the signatures.
3235

33-
Advanced strategies can involve relayers performing trustless off-chain computation passed into the destination contract. These strategies can optimize gas costs but also create attack vectors if not used correctly.
36+
Keep in mind the following security considerations around relayers:
3437

35-
In summary, the design of a relayer should ensure that there's a single, deterministic way to process messages in your protocol. In an optimally designed protocol, relayers should have a "correct" implementation, mirroring "crank turner" processes used elsewhere in blockchain.
38+
- **Trusting information** - it is crucial not to trust information outside your contract or a VAA. Relying on information from a relayer could expose you to input attacks
39+
40+
- **Gas optimization** - using relayers to perform trustless off-chain computation to pass into the destination contract can optimize gas costs but also risk creating attack vectors if not used correctly
41+
42+
- **Deterministic by design** - the design of a relayer should ensure a single, deterministic way to process messages in your protocol. Relayers should have a "correct" implementation, mirroring "crank turner" processes used elsewhere in blockchain
3643

3744
## Client-Side Relaying
3845

3946
Client-side relaying relies on user-facing front ends, such as a webpage or a wallet, to complete the cross-chain process.
4047

41-
**Key Features**
48+
### Key Features
4249

4350
- **Cost-efficiency** - users only pay the transaction fee for the second transaction, eliminating any additional costs
44-
- **No backend infrastructure** - the process is completely client-based, eliminating the need for a backend relaying infrastructure
4551

46-
**Implementation**
52+
- **No backend infrastructure** - the process is wholly client-based, eliminating the need for a backend relaying infrastructure
53+
54+
### Implementation
4755

4856
Users themselves carry out the three steps of the cross-chain process:
4957

5058
1. Perform an action on chain A
59+
5160
2. Retrieve the resulting VAA from the Guardian Network
61+
5262
3. Perform an action on chain B using the VAA
5363

54-
**Considerations**
64+
### Considerations
5565

56-
!!! note
57-
Though simple, this type of relaying is generally not recommended if your aim is a highly polished user experience. It can, however, be useful for getting a Minimum Viable Product (MVP) up and running.
66+
Though simple, this type of relaying is generally not recommended if your aim is a highly polished user experience. It can, however, be useful for getting a Minimum Viable Product (MVP) up and running.
5867

5968
- Users must sign all required transactions with their own wallet
69+
6070
- Users must have funds to pay the transaction fees on every chain involved
71+
6172
- The user experience may be cumbersome due to the manual steps involved
6273

6374
## Custom Relayers
6475

65-
Custom relayers are purpose-built components within the Wormhole protocol, designed to relay messages for specific applications. They are capable of performing off-chain computations and can be customized to suit a variety of use cases.
76+
Custom relayers are purpose-built components within the Wormhole protocol, designed to relay messages for specific applications. They can perform off-chain computations and can be customized to suit a variety of use cases.
6677

67-
The main method of setting up a custom relayer is by listening directly to the Guardian Network via a [Spy](/learn/infrastructure/spy/).
78+
The primary method of setting up a custom relayer is to listen directly to the Guardian Network via a [Spy](/learn/infrastructure/spy/).
6879

69-
**Key Features**
80+
### Key Features
7081

7182
- **Optimization** - capable of performing trustless off-chain computations which can optimize gas costs
83+
7284
- **Customizability** - allows for specific strategies like batching, conditional delivery, multi-chain deliveries, and more
85+
7386
- **Incentive structure** - developers have the freedom to design an incentive structure suitable for their application
87+
7488
- **Enhanced UX** - the ability to retrieve a VAA from the Guardian Network and perform an action on the target chain using the VAA on behalf of the user can simplify the user experience
7589

76-
**Implementation**
90+
### Implementation
7791

78-
!!! note
79-
To make the development of custom relayers easier, a plugin relayer is available in the [main Wormhole repository](https://github.com/wormhole-foundation/wormhole/tree/main/relayer){target=\_blank}. This sets up the basic infrastructure for relaying, allowing developers to focus on implementing the specific logic for their application.
92+
A plugin relayer to make the development of custom relayers easier is available in the [main Wormhole repository](https://github.com/wormhole-foundation/wormhole/tree/main/relayer){target=\_blank}. This plugin sets up the basic infrastructure for relaying, allowing developers to focus on implementing the specific logic for their application.
8093

81-
**Considerations**
94+
### Considerations
8295

8396
Remember, despite their name, custom relayers still need to be considered trustless. VAAs are public and can be submitted by anyone, so developers shouldn't rely on off-chain relayers to perform any computation considered "trusted."
8497

8598
- Development work and hosting of relayers are required
99+
86100
- The fee-modeling can become complex, as relayers are responsible for paying target chain fees
87-
- Relayers are responsible for availability, adding dependency for the cross-chain application
101+
102+
- Relayers are responsible for availability, and adding dependencies for the cross-chain application
88103

89104
## Wormhole Relayers
90105

91-
Wormhole relayers are a component of a decentralized network in the Wormhole protocol, facilitating the delivery of VAAs to recipient contracts compatible with the standard relayer API.
106+
Wormhole relayers are a component of a decentralized network in the Wormhole protocol. They facilitate the delivery of VAAs to recipient contracts compatible with the standard relayer API.
92107

93-
**Key Features**
108+
### Key Features
94109

95110
- **Lower operational costs** - no need to develop, host, or maintain individual relayers
111+
96112
- **Simplified integration** - because there is no need to run a relayer, integration is as simple as calling a function and implementing an interface
97113

98-
**Implementation**
114+
### Implementation
99115

100116
The Wormhole relayer integration involves two key steps:
101117

102118
- **Delivery request** - request delivery from the ecosystem Wormhole relayer contract
119+
103120
- **Relay reception** - implement a [`receiveWormholeMessages`](https://github.com/wormhole-foundation/wormhole-solidity-sdk/blob/bacbe82e6ae3f7f5ec7cdcd7d480f1e528471bbb/src/interfaces/IWormholeReceiver.sol#L44-L50){target=\_blank} function within their contracts. This function is invoked upon successful relay of the VAA
104121

105-
**Considerations**
122+
### Considerations
106123

107-
!!! note
108-
Developers should note that the choice of relayers depends their project's specific requirements and constraints. Wormhole relayers offer simplicity and convenience but limit customization and optimization opportunities compared to custom relayers.
124+
Developers should note that the choice of relayers depends on their project's specific requirements and constraints. Wormhole relayers offer simplicity and convenience but limit customization and optimization opportunities compared to custom relayers.
109125

110126
- All computations are performed on-chain
127+
111128
- Potentially less gas-efficient compared to custom relayers
112-
- Optimization features like conditional delivery, batching, off-chain calculations might be restricted
129+
130+
- Optimization features like conditional delivery, batching, and off-chain calculations might be restricted
131+
113132
- Support may not be available for all chains
133+
134+
## Where to Go Next
135+
136+
<div class="grid cards" markdown>
137+
138+
- :octicons-book-16:{ .lg .middle } **Spy**
139+
140+
---
141+
142+
Discover Wormhole's Spy daemon, which subscribes to gossiped messages in the Guardian Network, including VAAs and Observations, with setup instructions.
143+
144+
[:custom-arrow: Learn More About the Spy](/docs/learn/infrastructure/spy/)
145+
146+
- :octicons-book-16:{ .lg .middle } **Build with Wormhole Relayers**
147+
148+
---
149+
150+
Learn how to use Wormhole-deployed relayer configurations for seamless cross-chain messaging between contracts on different EVM blockchains without off-chain deployments.
151+
152+
[:custom-arrow: Get Started with Wormhole Relayers](/docs/build/core-messaging/wormhole-relayers/)
153+
154+
</div>

0 commit comments

Comments
 (0)