You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/docs/the_aztec_network/setup/sequencer_management.md
+22-35Lines changed: 22 additions & 35 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,9 @@ Sequencer nodes are critical infrastructure responsible for ordering transaction
15
15
2. Attest to correct execution of transactions in proposed blocks (when part of the sequencer committee)
16
16
3. Submit successfully attested blocks to L1
17
17
18
-
Before publication, blocks must be validated by a committee of sequencer nodes who re-execute public transactions and verify private function proofs. Committee members attest to validity by signing the block header. Once sufficient attestations are collected (two-thirds of the committee plus one), the block can be submitted to L1.
18
+
Before publication, blocks must be validated by a committee of sequencer nodes who re-execute public transactions and verify private function proofs. Committee members attest to validity by signing the block header.
19
+
20
+
Once sufficient attestations are collected (two-thirds of the committee plus one), the block can be submitted to L1.
19
21
20
22
### Minimum Hardware Requirements
21
23
@@ -43,8 +45,7 @@ The keystore file (`keystore.json`) uses the following structure:
43
45
{
44
46
"attester": ["ETH_PRIVATE_KEY_0"],
45
47
"publisher": ["ETH_PRIVATE_KEY_1"],
46
-
"coinbase": "ETH_ADDRESS_2",
47
-
"feeRecipient": "AZTEC_ADDRESS_0"
48
+
"coinbase": "ETH_ADDRESS_2"
48
49
}
49
50
]
50
51
}
@@ -66,26 +67,19 @@ Private key for sending block proposals to L1. This account needs ETH funding to
66
67
67
68
-**Format**: Array of Ethereum private keys
68
69
-**Default**: Uses attester key if not specified
69
-
-**Requirement**: Must be funded with at least 0.1 ETH to avoid slashing
70
+
**Rule of thumb**: Ensure every publisher account maintains at least 0.1 ETH per attester account it serves. This balance allows the selected publisher to successfully post transactions when chosen.
70
71
71
72
:::tip
72
73
If you're using the same key for both attester and publisher, you can omit the `publisher` field entirely from your keystore.
73
74
:::
74
75
75
76
#### coinbase (optional)
76
77
77
-
Ethereum address receiving L1 rewards and fees.
78
+
Ethereum address that receives all L1 block rewards and tx fees.
78
79
79
80
-**Format**: Ethereum address
80
81
-**Default**: Uses attester address if not specified
81
82
82
-
#### feeRecipient (required)
83
-
84
-
Aztec address receiving unburnt transaction fees from blocks you produce.
85
-
86
-
-**Format**: Aztec address
87
-
-**Requirement**: Must be a deployed Aztec account
88
-
89
83
### Generating Keys
90
84
91
85
Before creating your keystore file, you'll need to generate the required keys.
# Save these securely - you'll need the private key for the keystore
103
97
```
104
98
105
-
At minimum, you need one Ethereum private key for the `attester` field. Optionally, you can generate a separate key for the `publisher` field.
106
-
107
-
#### Aztec Fee Recipient Address
108
-
109
-
Follow the [Getting Started on Testnet](../../developers/getting_started_on_testnet.md#getting-started-on-testnet) guide to create and deploy an Aztec account, then use that account's address as your `feeRecipient`.
110
-
111
-
:::warning Save Account Recovery Information
112
-
When you create your Aztec account for the `feeRecipient`, make sure to save:
113
-
- The contract artifact version you used for deployment
114
-
- The deployment information (address, secret key, etc.)
115
-
116
-
This information is required to recover your account in the future and access your sequencer fees.
117
-
:::
99
+
At a minimum, you need one Ethereum private key for the `attester` field. Optionally, you can generate a separate key for the `publisher` field and a separate address for the `coinbase` field.
118
100
119
101
## Setup with Docker Compose
120
102
@@ -139,8 +121,7 @@ Create a `keystore.json` file in your `aztec-sequencer/keys` folder with your ge
139
121
{
140
122
"attester": ["ETH_PRIVATE_KEY_0"],
141
123
"publisher": ["ETH_PRIVATE_KEY_1"],
142
-
"coinbase": "ETH_ADDRESS_2",
143
-
"feeRecipient": "AZTEC_ADDRESS_0"
124
+
"coinbase": "ETH_ADDRESS_2"
144
125
}
145
126
]
146
127
}
@@ -149,7 +130,13 @@ Create a `keystore.json` file in your `aztec-sequencer/keys` folder with your ge
149
130
Replace the placeholder values with your actual keys and addresses generated in the previous section.
150
131
151
132
:::warning
152
-
Because the publisher posts block proposals to L1, the account needs to be funded with ETH. Ensure the account holds at least 0.1 ETH during operation of the sequencer to avoid being slashed.
133
+
Publisher accounts submit block proposals to L1. Each publisher operates independently, and the system does not retry with another publisher if a transaction fails due to insufficient funds.
134
+
135
+
**Examples**:
136
+
- 3 attesters with 1 publisher → Maintain ≥ 0.3 ETH in that publisher account
137
+
- 3 attesters with 2 publishers → Maintain ≥ 0.15 ETH in each publisher account (0.3 ETH total)
138
+
139
+
Maintaining these minimum balances prevents failed block publications caused by low gas funds.
153
140
:::
154
141
155
142
### Step 3: Configure Environment Variables
@@ -322,12 +309,12 @@ This returns an `AttesterView` struct containing:
322
309
323
310
### Performance Monitoring
324
311
325
-
Monitor your sequencer's performance by tracking:
326
-
- Effective balance (should remain above the ejection threshold)
327
-
- Status (should be VALIDATING for active participation)
328
-
- Attestation rate (how many attestations you've successfully submitted)
329
-
- Proposal success rate (how many of your proposed blocks were accepted)
330
-
- Network participation metrics
312
+
Track your sequencer's performance by monitoring:
313
+
- **Effective balance** - Should remain above the ejection threshold
314
+
- **Status** - Should be VALIDATING for active participation
315
+
- **Attestation rate** - How many attestations you've successfully submitted
316
+
- **Proposal success rate** - How many of your proposed blocks were accepted
317
+
- **Network participation metrics** - Overall participation in network consensus
331
318
332
319
## Exiting a Sequencer
333
320
@@ -361,7 +348,7 @@ Information about the exit process will be added when the mechanism is finalized
361
348
**Issue**: Keystore not loading or errors about invalid keys.
362
349
363
350
**Solutions**:
364
-
- Ensure keystore.json is properly formatted
351
+
- Ensure `keystore.json` is properly formatted
365
352
- Verify private keys are valid Ethereum private keys
Copy file name to clipboardExpand all lines: docs/versioned_docs/version-v2.0.2/the_aztec_network/setup/sequencer_management.md
+22-35Lines changed: 22 additions & 35 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,9 @@ Sequencer nodes are critical infrastructure responsible for ordering transaction
15
15
2. Attest to correct execution of transactions in proposed blocks (when part of the sequencer committee)
16
16
3. Submit successfully attested blocks to L1
17
17
18
-
Before publication, blocks must be validated by a committee of sequencer nodes who re-execute public transactions and verify private function proofs. Committee members attest to validity by signing the block header. Once sufficient attestations are collected (two-thirds of the committee plus one), the block can be submitted to L1.
18
+
Before publication, blocks must be validated by a committee of sequencer nodes who re-execute public transactions and verify private function proofs. Committee members attest to validity by signing the block header.
19
+
20
+
Once sufficient attestations are collected (two-thirds of the committee plus one), the block can be submitted to L1.
19
21
20
22
### Minimum Hardware Requirements
21
23
@@ -43,8 +45,7 @@ The keystore file (`keystore.json`) uses the following structure:
43
45
{
44
46
"attester": ["ETH_PRIVATE_KEY_0"],
45
47
"publisher": ["ETH_PRIVATE_KEY_1"],
46
-
"coinbase": "ETH_ADDRESS_2",
47
-
"feeRecipient": "AZTEC_ADDRESS_0"
48
+
"coinbase": "ETH_ADDRESS_2"
48
49
}
49
50
]
50
51
}
@@ -66,26 +67,19 @@ Private key for sending block proposals to L1. This account needs ETH funding to
66
67
67
68
-**Format**: Array of Ethereum private keys
68
69
-**Default**: Uses attester key if not specified
69
-
-**Requirement**: Must be funded with at least 0.1 ETH to avoid slashing
70
+
**Rule of thumb**: Ensure every publisher account maintains at least 0.1 ETH per attester account it serves. This balance allows the selected publisher to successfully post transactions when chosen.
70
71
71
72
:::tip
72
73
If you're using the same key for both attester and publisher, you can omit the `publisher` field entirely from your keystore.
73
74
:::
74
75
75
76
#### coinbase (optional)
76
77
77
-
Ethereum address receiving L1 rewards and fees.
78
+
Ethereum address that receives all L1 block rewards and tx fees.
78
79
79
80
-**Format**: Ethereum address
80
81
-**Default**: Uses attester address if not specified
81
82
82
-
#### feeRecipient (required)
83
-
84
-
Aztec address receiving unburnt transaction fees from blocks you produce.
85
-
86
-
-**Format**: Aztec address
87
-
-**Requirement**: Must be a deployed Aztec account
88
-
89
83
### Generating Keys
90
84
91
85
Before creating your keystore file, you'll need to generate the required keys.
# Save these securely - you'll need the private key for the keystore
103
97
```
104
98
105
-
At minimum, you need one Ethereum private key for the `attester` field. Optionally, you can generate a separate key for the `publisher` field.
106
-
107
-
#### Aztec Fee Recipient Address
108
-
109
-
Follow the [Getting Started on Testnet](../../developers/getting_started_on_testnet.md#getting-started-on-testnet) guide to create and deploy an Aztec account, then use that account's address as your `feeRecipient`.
110
-
111
-
:::warning Save Account Recovery Information
112
-
When you create your Aztec account for the `feeRecipient`, make sure to save:
113
-
- The contract artifact version you used for deployment
114
-
- The deployment information (address, secret key, etc.)
115
-
116
-
This information is required to recover your account in the future and access your sequencer fees.
117
-
:::
99
+
At a minimum, you need one Ethereum private key for the `attester` field. Optionally, you can generate a separate key for the `publisher` field and a separate address for the `coinbase` field.
118
100
119
101
## Setup with Docker Compose
120
102
@@ -139,8 +121,7 @@ Create a `keystore.json` file in your `aztec-sequencer/keys` folder with your ge
139
121
{
140
122
"attester": ["ETH_PRIVATE_KEY_0"],
141
123
"publisher": ["ETH_PRIVATE_KEY_1"],
142
-
"coinbase": "ETH_ADDRESS_2",
143
-
"feeRecipient": "AZTEC_ADDRESS_0"
124
+
"coinbase": "ETH_ADDRESS_2"
144
125
}
145
126
]
146
127
}
@@ -149,7 +130,13 @@ Create a `keystore.json` file in your `aztec-sequencer/keys` folder with your ge
149
130
Replace the placeholder values with your actual keys and addresses generated in the previous section.
150
131
151
132
:::warning
152
-
Because the publisher posts block proposals to L1, the account needs to be funded with ETH. Ensure the account holds at least 0.1 ETH during operation of the sequencer to avoid being slashed.
133
+
Publisher accounts submit block proposals to L1. Each publisher operates independently, and the system does not retry with another publisher if a transaction fails due to insufficient funds.
134
+
135
+
**Examples**:
136
+
- 3 attesters with 1 publisher → Maintain ≥ 0.3 ETH in that publisher account
137
+
- 3 attesters with 2 publishers → Maintain ≥ 0.15 ETH in each publisher account (0.3 ETH total)
138
+
139
+
Maintaining these minimum balances prevents failed block publications caused by low gas funds.
153
140
:::
154
141
155
142
### Step 3: Configure Environment Variables
@@ -322,12 +309,12 @@ This returns an `AttesterView` struct containing:
322
309
323
310
### Performance Monitoring
324
311
325
-
Monitor your sequencer's performance by tracking:
326
-
- Effective balance (should remain above the ejection threshold)
327
-
- Status (should be VALIDATING for active participation)
328
-
- Attestation rate (how many attestations you've successfully submitted)
329
-
- Proposal success rate (how many of your proposed blocks were accepted)
330
-
- Network participation metrics
312
+
Track your sequencer's performance by monitoring:
313
+
- **Effective balance** - Should remain above the ejection threshold
314
+
- **Status** - Should be VALIDATING for active participation
315
+
- **Attestation rate** - How many attestations you've successfully submitted
316
+
- **Proposal success rate** - How many of your proposed blocks were accepted
317
+
- **Network participation metrics** - Overall participation in network consensus
331
318
332
319
## Exiting a Sequencer
333
320
@@ -361,7 +348,7 @@ Information about the exit process will be added when the mechanism is finalized
361
348
**Issue**: Keystore not loading or errors about invalid keys.
362
349
363
350
**Solutions**:
364
-
- Ensure keystore.json is properly formatted
351
+
- Ensure `keystore.json` is properly formatted
365
352
- Verify private keys are valid Ethereum private keys
0 commit comments