|Mar 22, 2023
#138 in #node
varro is a persistent, robust, and composable proposal service for rollup stacks written in pure rust.
Varro is primarily tested against the op-stack.
Varro provides an easy to use installer called
curl https://raw.githubusercontent.com/refcell/varro/main/varrup/install | bash.
Additionally, you can run varro for ethereum-optimism using the provided scripts in the
At it's core,
varro is a client. In ./src/client.rs, there is an
Varro struct that is the core client/driver of the batcher.
Varro struct first builds "stages" and then executes them as asynchronous threads. These stages split up the transformation of data types and handles channel transitions and metrics.
The primary entrypoint for
varro is ./src/client/rs which is the
Varro exposes methods for constructing proposals.
varro cli maintains a verbose menu for running a proposal service. To see a list of all available commands, run
varro --help. This will print output similar to the following:
The following environment variables are the default values for
They can be overridden by setting the environment variable in the shell before running
varro, or setting the associated flags when running the
The term "varro" comes from Marcus Terentius Varro, an ancient Roman polymath and prolific author. Referred to the "great third light of Rome", Varro mirrors the role of the
varro service in the rollup stack, handling the "inscription" of outputs to the settlement layer (eg, posting L2 output proposals to Ethereum).
All contributions are welcome. Before opening a PR, please submit an issue detailing the bug or feature. When opening a PR, please ensure that your contribution builds on the nightly rust toolchain, has been linted with
cargo fmt, and contains tests when applicable.
This code is being provided as is. No guarantee, representation or warranty is being made, express or implied, as to the safety or correctness of the code. It has not been audited and as such there can be no assurance it will work as intended, and users may experience delays, failures, errors, omissions or loss of transmitted information. Nothing in this repo should be construed as investment advice or legal advice for any particular facts or circumstances and is not meant to replace competent counsel. It is strongly advised for you to contact a reputable attorney in your jurisdiction for any questions or concerns with respect thereto. The authors is not liable for any use of the foregoing, and users should proceed with caution and use at their own risk.