-
Notifications
You must be signed in to change notification settings - Fork 57
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
Add --l2-anytrust option to run in AnyTrust mode #79
Conversation
test-node.bash can now be run with --l2-anytrust which runs the l2 nodes in AnyTrust mode. It creates a committee of 2 daserver with assumed-honest set to 1, requiring successful stores of the batch data to both of them. Nitro nodes sync from a mirror daserver. All dasevers use local file storage for the batch data on their own volumes. BLS keys for the committee are automatically generated and the keyset is activated automatically on the SequencerInbox contract.
Fixes NIT-2637 |
Adjacent line changes on arbitrum DataAvailabilityCommittee and InitialArbOSVersion, no actual conflict.
test-node.bash
Outdated
echo == Starting AnyTrust committee and mirror | ||
docker compose up --wait das-committee-a das-committee-b das-mirror | ||
# TODO how to make these containers go down since they are now | ||
# run in the background |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why do you need to bring them up here?
I would assume that adding these nodes to both NODES and INITIAL_SEQ_NODES would work.
It's o.k to have nodes running in the background. That's how geth is running. all nodes can be taken up/down with docker-compose.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the DA committee needs to be up before we start the sequencer and there isn't a way to model that dependency in the docker-compose.yaml conditionally, so I was starting it separately.
Removed the TODO note.
scripts/ethcommands.ts
Outdated
argv.to = "address_" + upgradeExecutorAddr | ||
argv.ethamount = "0" | ||
|
||
await runStress(argv, sendTransaction); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
runStress isn't really needed here since you should only run one transaction in one thread
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, I just used it because it's what's used throughout this file. I'll try changing it to something else.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
test-node.bash can now be run with --l2-anytrust which runs the l2 nodes in AnyTrust mode. It creates a committee of 2 daserver with assumed-honest set to 1, requiring successful stores of the batch data to both of them. Nitro nodes sync from a mirror daserver. All dasevers use local file storage for the batch data on their own volumes.
BLS keys for the committee are automatically generated and the keyset is activated automatically on the SequencerInbox contract.
Testing done
Tested that --no-run generates config correctly:
Tested running
Check the das mirror has some data, meaning the batch poster successfully posted the data and it was synced by the mirror from the committee.