Skip to content

Conversation

@frisitano
Copy link
Collaborator

@frisitano frisitano commented Mar 13, 2025

Overview

This PR introduces a Database implementation responsible for reading and writing information to the database. We leverage seaORM which is an async rust based ORM. It has support for mysql, postgres and sqlite. I would propose that we use an on disk sqlite database in the first instance.

Implementation

We have 4 primary rust objects of interest, these are Database, DatabaseTransaction, DatabaseOperations and DatabaseConnectionProvider. The Database and DatabaseTransaction implement the DatabaseConnectionProvider trait which allows for a connection to the database to be sourced. We then have a blanket implementation of DatabaseOperations, which defines various CRUD and streaming operations, for all types which implement DatabaseConnectionProvider.

Migrations

We also introduce a scroll-migration crate which is responsible for managing the rollup node migration.

Considerations

Moving towards to we should standardize the naming of our crates. We have both scroll-* and rollup-node-*. We should consider if the two crates introduced in this PR should be scroll-* or rollup-node-*, I'm leaning towards the latter.

greged93 and others added 25 commits March 12, 2025 10:47
* init bridge implementation

* extend bridge implementation

* refactor and clean up dependencies

* add .vscode to .gitignore

* lint

* spacing

* cleanup

* wrap inner block import in bridge

* add bridge integration test

* refactor and clean up

* add comments

* migrate shared dependencies to workspace

* feature propogation

* lints and feature fix

* remove scroll feature

* add scroll feature

* integrate reth upstream changes

* address PR feedback

* stash

* add systemd service file

* update systemd file

* update systemd file

* address comments

* rollup node manager

* merge main

* add Cargo.lock

* lint

* lint

* lint

* lint

* ci remove no-dev-deps

* fix serde dep - scroll-wire

* skip no_std on scroll-engine and scroll-rollup-node

* skip no_std on scroll-engine and scroll-rollup-node

* address comments

* lints

* cleanup

* tsets

* lint + refactor

* refactor engine api call ordering

* lint

* fix fcu

* lint

* remove syncing error return on new payload

* update forkchoice state after succesfully new payload

* update reth following chainspec fork id logic change

* PR feedback

* lints

* lints
@frisitano frisitano requested a review from greged93 March 13, 2025 07:33
Copy link
Contributor

@greged93 greged93 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just a couple of questions, otherwise LGTM

Copy link
Contributor

@greged93 greged93 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm!

@frisitano frisitano changed the base branch from feat/watcher to main March 19, 2025 15:10
@frisitano frisitano merged commit ac1588e into main Mar 19, 2025
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants