Skip to content

Commit ec73e32

Browse files
committed
fix and push
1 parent eb8b6fd commit ec73e32

File tree

11 files changed

+13
-462
lines changed

11 files changed

+13
-462
lines changed

docs/concepts/block-lifecycle.md

Lines changed: 2 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ flowchart TD
320320
E --> K[Multiply Gas Price by GasMultiplier]
321321
322322
G --> L[Double Backoff Time]
323-
G --> M[Cap at MaxBackoff - BlockTime]
323+
G --> M[Cap at MaxBackoff - DABlockTime]
324324
325325
H --> N[Split into Two Halves]
326326
N --> O[Submit First Half]
@@ -655,46 +655,7 @@ The components communicate through well-defined interfaces:
655655

656656
## Metrics
657657

658-
The block components expose comprehensive metrics for monitoring through the shared Metrics instance:
659-
660-
### Block Production Metrics (Executor Component)
661-
662-
- `last_block_produced_height`: Height of the last produced block
663-
- `last_block_produced_time`: Timestamp of the last produced block
664-
- `aggregation_type`: Current aggregation mode (normal/lazy)
665-
- `block_size_bytes`: Size distribution of produced blocks
666-
- `produced_empty_blocks_total`: Count of empty blocks produced
667-
668-
### DA Metrics (Submitter and Syncer Components)
669-
670-
- `da_submission_attempts_total`: Total DA submission attempts
671-
- `da_submission_success_total`: Successful DA submissions
672-
- `da_submission_failure_total`: Failed DA submissions
673-
- `da_retrieval_attempts_total`: Total DA retrieval attempts
674-
- `da_retrieval_success_total`: Successful DA retrievals
675-
- `da_retrieval_failure_total`: Failed DA retrievals
676-
- `da_height`: Current DA retrieval height
677-
- `pending_headers_count`: Number of headers pending DA submission
678-
- `pending_data_count`: Number of data blocks pending DA submission
679-
680-
### Sync Metrics (Syncer Component)
681-
682-
- `sync_height`: Current sync height
683-
- `da_included_height`: Height of last DA-included block
684-
- `soft_confirmed_height`: Height of last soft confirmed block
685-
- `header_store_height`: Current header store height
686-
- `data_store_height`: Current data store height
687-
688-
### Performance Metrics (All Components)
689-
690-
- `block_production_time`: Time to produce a block
691-
- `da_submission_time`: Time to submit to DA
692-
- `state_update_time`: Time to apply block and update state
693-
- `channel_buffer_usage`: Usage of internal channels
694-
695-
### Error Metrics (All Components)
696-
697-
- `errors_total`: Total errors by type and operation
658+
The block components expose Prometheus metrics for monitoring block production, DA submission/retrieval, sync progress, and errors. See the [Metrics guide](/guides/metrics) for configuration and available metric names.
698659

699660
## Implementation
700661

docs/concepts/data-availability.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ Evolve uses DA namespaces to organize data:
5757
|-----------|---------|
5858
| Header | Block headers |
5959
| Data | Transaction data |
60-
| Forced Inclusion | User-submitted transactions |
6160

6261
## Best Practices
6362

docs/getting-started/choose-your-path.md

Lines changed: 0 additions & 120 deletions
This file was deleted.

docs/getting-started/custom/implement-executor.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# Implement Executor Interface
1+
# Executor Interface
22

3-
Deep dive into each method of the Executor interface.
3+
The Executor interface is the boundary between ev-node and your execution layer. ev-node calls these methods during block production and synchronization. This page documents each method, its contract, and example implementations.
44

55
## Interface Overview
66

@@ -219,4 +219,6 @@ func TestExecuteTxs(t *testing.T) {
219219
## Next Steps
220220

221221
- [Executor Interface Reference](/reference/interfaces/executor) — Full type definitions
222-
- [Testapp Source](https://github.com/evstack/ev-node/tree/main/apps/testapp) — Working example
222+
- [Testapp Source](https://github.com/evstack/ev-node/tree/main/apps/testapp) — Reference implementation
223+
- [EVM Quickstart](/getting-started/evm/quickstart) — Using the EVM executor (ev-reth)
224+
- [Cosmos SDK Quickstart](/getting-started/cosmos/quickstart) — Using the Cosmos SDK executor (ev-abci)

docs/getting-started/custom/quickstart.md

Lines changed: 0 additions & 143 deletions
This file was deleted.

docs/guides/advanced/based-sequencing.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Based Sequencing
22

3-
Based sequencing is a decentralized sequencing model where transaction ordering is determined by the base layer (Celestia) rather than a centralized sequencer. In this model, the sequencer derives the next batch of transactions deterministically from the base layer, removing its ability to censor or reorder transactions.
3+
Based sequencing is a sequencing model where transaction ordering is determined by the base layer (Celestia). Even in based mode, the chain still uses a single sequencer node, but it deterministically derives the next batch of transactions from the base layer rather than choosing its own ordering. This removes the sequencer's ability to censor or reorder transactions.
44

55
## How Based Sequencing Works
66

docs/guides/advanced/forced-inclusion.md

Lines changed: 0 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -86,44 +86,3 @@ If a sequencer fails to include forced inclusion transactions past their epoch b
8686
2. **Reject invalid blocks** - do not build on top of censoring blocks
8787
3. **Log the violation** with transaction hashes and epoch details
8888
4. **Halt consensus** - the chain cannot progress with a malicious sequencer
89-
90-
### Recovery from Malicious Sequencer
91-
92-
When a malicious sequencer is detected (censoring forced inclusion transactions):
93-
94-
Nodes may require a coordinated restart into based sequencing mode, depending on governance and operator policy.
95-
96-
```bash
97-
# One possible coordinated recovery action
98-
./evnode start --evnode.node.aggregator --evnode.node.based_sequencer
99-
```
100-
101-
**In based sequencing mode:**
102-
103-
- No single sequencer controls transaction ordering
104-
- Every full node derives blocks independently from the DA layer
105-
- Forced inclusion becomes the primary (and only) transaction submission method
106-
- Censorship becomes impossible as ordering comes from the DA layer
107-
108-
**Important considerations:**
109-
110-
- Operators should agree on the last valid state and restart timing before the cutover.
111-
- All full nodes should coordinate the switch to based mode
112-
- The chain continues from the last valid state
113-
- Users submit transactions directly to the DA layer going forward
114-
- Returning to single sequencer mode requires explicit governance and operational coordination
115-
116-
See [Based Sequencing documentation](./based-sequencing.md) for details on operating in this mode.
117-
118-
## Advantages
119-
120-
- **Simplicity:** Easy to set up and operate, making it ideal for development, testing, and small-scale deployments compared to other more complex sequencers.
121-
- **Low Latency:** Fast block production and transaction inclusion, since there is no consensus overhead among multiple sequencers.
122-
- **Independence from DA block time:** The sequencer can produce blocks on its own schedule, without being tied to the block time of the DA layer, enabling more flexible transaction processing than DA-timed sequencers.
123-
- **Forced inclusion fallback:** Users can always submit transactions via the DA layer if the sequencer is unresponsive or censoring.
124-
125-
## Disadvantages
126-
127-
- **Single point of failure:** If the sequencer goes offline, block production stops (though the chain can transition to based mode).
128-
- **Trust requirement:** Users must trust the sequencer to include their transactions in a timely manner (mitigated by forced inclusion).
129-
- **Censorship risk:** A malicious sequencer can temporarily censor transactions until forced inclusion activates or the chain transitions to based mode.

0 commit comments

Comments
 (0)