-
Notifications
You must be signed in to change notification settings - Fork 295
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat!: Fernet #3826
Comments
At the moment, I do not think there are any acceptable sequencer slashing conditions. This is more for registration sybil resistance, and future proofing to more easily enable any future slashing conditions, than anything. According to some ethereum documentation, staking is the "act of depositing tokens to activate validator software" (ref) which (as far as I know) should be aligned with the definitions being used in the yellowpaper.
There should be (up to) 3 reward_recipients, correct? Maybe I'm out of context. But the current sequencer, the prover address committed to, and the address that submits the rollup to L1. For the initial instance it may be ok to assume that these are vertically integrated and therefore a single entity. Just wanna clarify what this intention is
Pardon my ignorance but why does the sandbox itself need to implement Fernet? Running a local developer environment should probably not incur the overhead of it.. right? Is this just a semantic difference, or am i misunderstanding/silly? 🤔
This is a nice to have in my opinion. For the initial task / MVP I'd also consider just "everyone tries to propose always" and then we can iterate on strategies in subsequent releases? In the initial sandbox &/or small test environment I imagine there won't be a prohibitive number of participants. |
But with a validator, your funds are at stake. Image related.
The
Sandbox is essentially a local node. It might be how people are testing contracts etc, but it is also how we test the node atm 🤷. For a pure sandbox mode, it would likely just be running with shorter timeframes such that it can always run in backup -> the backup strategy might be better for that then 🤷 |
Actually, we would likely have 4 here. 1 for fees paid within the rollup, 1 for block rewards, 1 for prover and then 1 for the publisher. |
To be discussed:
sequencer
andreward_recipient
such that they can be specified separately 🤔.To implement Fernet as outlined from the yellow paper, a lot of tasks spanning the code-base is to be completed.
Preparation
Ethereum Contract Tasks
RANDAO
values.mapping(block_number => randao) randaos
RANDAO
value. How exactly this value is filled is still do be figured out.keccak256(randaos[l2_block_number], l2_block_number, proposer_address)
l2_block_number
might be redundant as it is influencing the randao value used.proposer_address = msg.sender
.sequencer == msg.sender
signature
whereaddress_recovered == sequencer
. Over the inputs for the function call.phase
in the sequencer selection contract, and then it can be queried for a specific block.phase
and no bond was put up, it should bebackup
phase
AND if waiting for proof submission it should return the tuple(phase, sequencer)
.backup
continueproof_submission
thesequencer
value fetched must match thesequencer
of the block AND the block must match what was committed to in the commitment phase, i.e., can be checked by hashing the header and then comparing it to the value stored insequencer_selection
.sequencer
andreward_recipient
such that they can be specified separately 🤔.reward_recipient
.governance
but for now, we can just have aclaim_rewards(to, amount)
function whereamount
will be the amount instance is trying to pay out, ifamount > claimable
by the instance, it should revert, if passingtype(uint256).max
asamount
simply spend the remainingclaimable
.governance
registry, but we can mock it with just a wrapper around a mint function initially.Ethereum Contracts
Circuit tasks
reward_recipient
should be added.reward_recipient
? It becomes much simpler to collect rewards in cold storage than if it is the same entity that needs to participate in some of the phases or create signatures. Also for operators that operate multiple sequencers it is much simple for them to aggregate their rewards.Tasks
Node (sandbox)
Node Tasks
The text was updated successfully, but these errors were encountered: