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
Extend the sequencer plugin to send an L2 tx if the last block produced is older than X seconds.
Motivation
This should allow Aave and other protocols to have a smoother approach to liquidations if the sequencer hasn't been producing any block recently and prices haven't been able to be updated.
Architecture
No impact on the architecture. This should sit in the existing sequencer plugin.
Implementation guidelines
When building a block, if the last block produced is more than X seconds old, add a first transaction to the block that calls the SequencerUptimeFeed contract
The added transaction should not be subject to standard gas price checks
It must be signed using Web3Signer to ensure security and consistency
3. Feature Toggle
This mechanism should be optional, controlled by a configuration flag
Default state should be disabled, requiring explicit activation
Implementation Plan
Develop the transaction insertion logic
Modify the sequencer plugin to check block timestamps
Ensure transactions are added only when the required conditions are met
Integrate Web3Signer for signing transactions
Ensure compatibility with existing sequencer infrastructure
Verify proper account management and permissions
Implement e2e tests
Validate the feature with simulated downtime scenarios
Ensure the inserted transaction behaves as expected
Monitoring & Observability
Define necessary metrics for tracking sequencer inactivity
Implement alerts for when the L2 pausing transaction is triggered
Deployment & Rollout
Create a Web3Signer account and configure it for transaction signing
Deploy and verify the LineaSequencerUptimeFeed contract
Update the sequencer configuration to enable the feature
Infrastructure & Node Operators
No expected impact on existing infrastructure
Node operators will not need to perform additional setup beyond configuration changes
Communication Plan
Notify Aave and Chainlink about the availability of this feature
Provide documentation outlining the integration process and expected behaviour
Open Questions
What monitoring framework should be used to track this feature in production?
Should there be a manual override mechanism to force the transaction in case of emergency?
Should this be a dedicated plugin or directly at the sequencer level?
Conclusion
This enhancement ensures better protocol resilience during sequencer downtime while integrating seamlessly into the existing architecture. It provides optional, configurable behaviour to allow fine-tuning based on network needs
The text was updated successfully, but these errors were encountered:
julien-marchand
changed the title
Sequencer plugin to send L2 tx when sequencer has been paused
Sequencer plugin to send a L2 pausing tx when sequencer hasn't produced block recently
Nov 22, 2024
I read the contracts and cannot figure out exactly how this "protocol" is supposed to work. (we shall improve some poor names e.g bool initialStatus makes it hard to understand. Is this supposed to mean sequencerIsUp?)
Additionally, I want to raise awareness of some concerns for some edge cases:
dependency on Web3Signer can be problematic if there are network issues, it can cause a sequencer outage.
What shall sequencer do if:
2.1 the account runs out of funds or
2.2 cannot reach Web3J, halt? Very unlikely i hope we shall define what to do and test it
Description
Extend the sequencer plugin to send an L2 tx if the last block produced is older than X seconds.
Motivation
This should allow Aave and other protocols to have a smoother approach to liquidations if the sequencer hasn't been producing any block recently and prices haven't been able to be updated.
Architecture
Implementation guidelines
Metrics/monitoring
Rollout
Infrastructure & Node operators
Documentation & communication
Technical specification
Objectives
LineaSequencerUptimeFeed
contract when the sequencer is inactiveFunctional Requirements
X
seconds, prepend a transaction in the next block that updates theLineaSequencerUptimeFeed
contractWeb3Signer
for signing the transactionTechnical Design
1. Triggering the L2 Transaction
X
seconds, a transaction is added at the beginning of the new blockLineaSequencerUptimeFeed
contract:2. Transaction Handling
Web3Signer
to ensure security and consistency3. Feature Toggle
Implementation Plan
Web3Signer
account and configure it for transaction signingLineaSequencerUptimeFeed
contractInfrastructure & Node Operators
Communication Plan
Open Questions
Conclusion
This enhancement ensures better protocol resilience during sequencer downtime while integrating seamlessly into the existing architecture. It provides optional, configurable behaviour to allow fine-tuning based on network needs
The text was updated successfully, but these errors were encountered: