Skip to content
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(examples): OP Stack bridge stats ExEx #7556

Merged
merged 142 commits into from
Apr 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
142 commits
Select commit Hold shift + click to select a range
2f24bc2
wip: exex manager
onbjerg Mar 26, 2024
622971b
refactor: rename to `spawn`
onbjerg Mar 26, 2024
766ad4f
feat: exex rx channel
onbjerg Mar 28, 2024
7c48a7e
feat: flesh out manager loop
onbjerg Mar 28, 2024
845b105
refactor: move manager to `reth-exex`
onbjerg Apr 8, 2024
2e572e3
refactor: `ExExHandle`
onbjerg Apr 8, 2024
500323e
docs: typo
onbjerg Apr 8, 2024
286de08
feat: [`ExExHandle::new`]
onbjerg Apr 8, 2024
7886c86
fix: retain events > min_id
onbjerg Apr 8, 2024
af993b0
feat: most of launch flow
onbjerg Apr 8, 2024
04854ff
feat: exex id in `install_exex`
onbjerg Apr 8, 2024
66ad132
feat: hook up blockchain tree
onbjerg Apr 8, 2024
615c7f2
chore: rm unused dep
onbjerg Apr 8, 2024
8ca65a8
fix: add id to other `install_exex` impl
onbjerg Apr 8, 2024
006043a
fix: use unbounded channels for `ExExEvent`
onbjerg Apr 8, 2024
d9ea2f0
chore: add traces
onbjerg Apr 8, 2024
4da887c
chore: only spawn exex manager if there are exex's
onbjerg Apr 8, 2024
9578d87
docs: move exex docs
onbjerg Apr 8, 2024
b82c125
feat: basic exex metrics
onbjerg Apr 8, 2024
7f5161c
feat(exex): optimism bridge example
shekhirin Apr 9, 2024
9093960
feat: handle `ExExEvent`
onbjerg Apr 8, 2024
e5507a6
feat: manager metrics
onbjerg Apr 8, 2024
753dd52
refactor: some cleanup
onbjerg Apr 8, 2024
0563fce
fix: add missing f64 cast for metrics
onbjerg Apr 8, 2024
33353e7
mainnet
shekhirin Apr 9, 2024
dcd2073
report tip
shekhirin Apr 9, 2024
0e84201
better print
shekhirin Apr 9, 2024
053a2a9
print as eth
shekhirin Apr 9, 2024
24dc374
sort by eth
shekhirin Apr 9, 2024
7213ffc
pass n blocks as arg
shekhirin Apr 9, 2024
95af3c1
use iterators, calc contract amounts
shekhirin Apr 9, 2024
a46b2e8
convert contract addresses to names
shekhirin Apr 9, 2024
6d71d32
manta, blast
shekhirin Apr 9, 2024
af2acdb
improve code
shekhirin Apr 9, 2024
19f38b5
print only if not empty
shekhirin Apr 9, 2024
6754b8c
remove by accounts
shekhirin Apr 9, 2024
01eaf46
add a dummy install exex code
shekhirin Apr 9, 2024
72be144
stateless
shekhirin Apr 9, 2024
4338728
move abi to file
shekhirin Apr 9, 2024
2674da5
Merge remote-tracking branch 'origin/main' into alexey/optimism-exex
shekhirin Apr 10, 2024
a260abf
Merge remote-tracking branch 'origin/onbjerg/exex-manager' into alexe…
shekhirin Apr 10, 2024
74a3357
feat: `ExExManagerHandle::ready`
onbjerg Apr 10, 2024
bdd831f
fixes after merge
shekhirin Apr 10, 2024
85fe5c0
chore: manager tracing logs
onbjerg Apr 10, 2024
0b67dde
Merge remote-tracking branch 'origin/onbjerg/exex-manager' into alexe…
shekhirin Apr 10, 2024
f3b370e
cleanup
shekhirin Apr 10, 2024
3a3518d
Merge remote-tracking branch 'origin/main' into onbjerg/exex-manager
shekhirin Apr 10, 2024
fef113c
Merge remote-tracking branch 'origin/onbjerg/exex-manager' into alexe…
shekhirin Apr 10, 2024
c4cea9e
cleanup of my changes to manager
shekhirin Apr 10, 2024
4fd7bce
revert provider changes
shekhirin Apr 10, 2024
e8fada9
make manager handle mut
shekhirin Apr 10, 2024
45662bc
Merge remote-tracking branch 'origin/onbjerg/exex-manager' into alexe…
shekhirin Apr 10, 2024
ea943ed
chore: `AsRef<str>` in `install_exex`
onbjerg Apr 10, 2024
93723d1
fix: make it compile
onbjerg Apr 10, 2024
e60314b
fix: actually really make it super compile
onbjerg Apr 10, 2024
9d7aa25
test: make test compile
onbjerg Apr 10, 2024
6077c36
remove println and add ETH suffix
shekhirin Apr 10, 2024
3cf800e
contract -> op stack
shekhirin Apr 10, 2024
57b0237
feat: don't sent notifs exex doesn't care about
onbjerg Apr 10, 2024
c82990b
feat: `events_sent` metric
onbjerg Apr 10, 2024
9699c48
docs: finished height docs clarifications
onbjerg Apr 10, 2024
bd6c520
fix: various fixes wrt finished height
onbjerg Apr 10, 2024
a84691d
chore: rename metrics
onbjerg Apr 10, 2024
b6aa28d
chore: drop span
onbjerg Apr 10, 2024
2fd2854
chore: re-introduce span
onbjerg Apr 10, 2024
2ac2413
docs: fix doclinks
onbjerg Apr 10, 2024
755c5af
refactor: rename `block` to `finished_height`
onbjerg Apr 10, 2024
b2451ff
feat: `ExExManagerHandle::capacity`
onbjerg Apr 10, 2024
afbf657
chore: stub `poll_ready`
onbjerg Apr 10, 2024
49983cd
chore: fmt
onbjerg Apr 10, 2024
fe4c532
feat: `poll_ready`
onbjerg Apr 10, 2024
6f199a4
chore: clean up
onbjerg Apr 10, 2024
0eddf6a
refactor: move exex launch past components builder
onbjerg Apr 10, 2024
ab06b32
Merge remote-tracking branch 'origin/onbjerg/exex-manager' into alexe…
shekhirin Apr 10, 2024
b1cbc8a
move to separate folder
shekhirin Apr 10, 2024
4fdb0b1
pass exex id as str
shekhirin Apr 10, 2024
46f6487
wip: exex manager
onbjerg Mar 26, 2024
03f7781
refactor: rename to `spawn`
onbjerg Mar 26, 2024
09e6dda
feat: exex rx channel
onbjerg Mar 28, 2024
9e52e2d
feat: flesh out manager loop
onbjerg Mar 28, 2024
44a1a5f
refactor: move manager to `reth-exex`
onbjerg Apr 8, 2024
d9772d6
refactor: `ExExHandle`
onbjerg Apr 8, 2024
3223632
docs: typo
onbjerg Apr 8, 2024
01494dc
feat: [`ExExHandle::new`]
onbjerg Apr 8, 2024
eeaef8b
fix: retain events > min_id
onbjerg Apr 8, 2024
4af2c9a
feat: most of launch flow
onbjerg Apr 8, 2024
4674ef3
feat: exex id in `install_exex`
onbjerg Apr 8, 2024
3ac8ecd
feat: hook up blockchain tree
onbjerg Apr 8, 2024
4bea51b
chore: rm unused dep
onbjerg Apr 8, 2024
a9a3aab
fix: add id to other `install_exex` impl
onbjerg Apr 8, 2024
6d68a29
fix: use unbounded channels for `ExExEvent`
onbjerg Apr 8, 2024
2086a03
chore: add traces
onbjerg Apr 8, 2024
358d71b
chore: only spawn exex manager if there are exex's
onbjerg Apr 8, 2024
36006b1
docs: move exex docs
onbjerg Apr 8, 2024
3ee6116
feat: basic exex metrics
onbjerg Apr 8, 2024
4ce21fc
feat: handle `ExExEvent`
onbjerg Apr 8, 2024
c4895de
feat: manager metrics
onbjerg Apr 8, 2024
0e8ddc6
refactor: some cleanup
onbjerg Apr 8, 2024
638e474
fix: add missing f64 cast for metrics
onbjerg Apr 8, 2024
242600c
feat: `ExExManagerHandle::ready`
onbjerg Apr 10, 2024
ec91e4e
chore: manager tracing logs
onbjerg Apr 10, 2024
0caefa8
make manager handle mut
shekhirin Apr 10, 2024
18e9691
chore: `AsRef<str>` in `install_exex`
onbjerg Apr 10, 2024
ebd7f16
fix: make it compile
onbjerg Apr 10, 2024
b04012e
fix: actually really make it super compile
onbjerg Apr 10, 2024
25411db
test: make test compile
onbjerg Apr 10, 2024
837a2c9
feat: don't sent notifs exex doesn't care about
onbjerg Apr 10, 2024
4120dfa
feat: `events_sent` metric
onbjerg Apr 10, 2024
c775fa2
docs: finished height docs clarifications
onbjerg Apr 10, 2024
01c360e
fix: various fixes wrt finished height
onbjerg Apr 10, 2024
2d9e71d
chore: rename metrics
onbjerg Apr 10, 2024
fd8a06c
chore: drop span
onbjerg Apr 10, 2024
5c7ea0e
chore: re-introduce span
onbjerg Apr 10, 2024
f237ff9
docs: fix doclinks
onbjerg Apr 10, 2024
879d90f
refactor: rename `block` to `finished_height`
onbjerg Apr 10, 2024
3b5d6f7
feat: `ExExManagerHandle::capacity`
onbjerg Apr 10, 2024
af65a96
chore: stub `poll_ready`
onbjerg Apr 10, 2024
f3ddf17
chore: fmt
onbjerg Apr 10, 2024
e2c36ac
feat: `poll_ready`
onbjerg Apr 10, 2024
a2f670a
chore: clean up
onbjerg Apr 10, 2024
698d6e3
refactor: move exex launch past components builder
onbjerg Apr 10, 2024
e17da42
chore: review
onbjerg Apr 10, 2024
8842a6a
Merge remote-tracking branch 'origin/onbjerg/exex-manager' into alexe…
shekhirin Apr 11, 2024
14ad37f
derive clone and copy for ExExEvent
shekhirin Apr 11, 2024
1eb7df2
use sqlite
shekhirin Apr 11, 2024
d16dc93
move || async {}
shekhirin Apr 11, 2024
0ad0f7e
quote reserved column names
shekhirin Apr 11, 2024
1ebe02b
add info logs
shekhirin Apr 11, 2024
6462b70
store as TEXT
shekhirin Apr 11, 2024
d8ca8f9
log deposits and withdrawals counts
shekhirin Apr 11, 2024
128c51d
create tables separately
shekhirin Apr 11, 2024
a8e27a3
contracts table
shekhirin Apr 11, 2024
e733696
insert block number
shekhirin Apr 11, 2024
232cd95
Merge remote-tracking branch 'origin/main' into onbjerg/exex-manager
shekhirin Apr 11, 2024
2a5dac4
Merge remote-tracking branch 'origin/onbjerg/exex-manager' into alexe…
shekhirin Apr 11, 2024
889ece9
make it compile
shekhirin Apr 11, 2024
80dca67
use ready! macro
shekhirin Apr 11, 2024
aca564c
optimism -> op-bridge
shekhirin Apr 11, 2024
600903e
better comments
shekhirin Apr 11, 2024
dd353df
log block range
shekhirin Apr 11, 2024
7d25185
add exex doc comment
shekhirin Apr 11, 2024
f0583e6
Merge branch 'main' into alexey/optimism-exex
onbjerg Apr 11, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
78 changes: 77 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ members = [
"examples/trace-transaction-cli/",
"examples/polygon-p2p/",
"examples/custom-inspector/",
"examples/exex/op-bridge/",
"testing/ef-tests/",
]
default-members = ["bin/reth"]
Expand Down
2 changes: 1 addition & 1 deletion crates/exex/src/event.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use reth_primitives::BlockNumber;

/// Events emitted by an ExEx.
#[derive(Debug)]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ExExEvent {
/// Highest block processed by the ExEx.
///
Expand Down
7 changes: 6 additions & 1 deletion crates/storage/provider/src/chain.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ use reth_primitives::{
};
use reth_trie::updates::TrieUpdates;
use revm::db::BundleState;
use std::{borrow::Cow, collections::BTreeMap, fmt};
use std::{borrow::Cow, collections::BTreeMap, fmt, ops::RangeInclusive};

/// A chain of blocks and their final state.
///
Expand Down Expand Up @@ -177,6 +177,11 @@ impl Chain {
self.blocks.len()
}

/// Returns the range of block numbers in the chain.
pub fn range(&self) -> RangeInclusive<BlockNumber> {
self.first().number..=self.tip().number
}

/// Get all receipts for the given block.
pub fn receipts_by_block_hash(&self, block_hash: BlockHash) -> Option<Vec<&Receipt>> {
let num = self.block_number(block_hash)?;
Expand Down
5 changes: 2 additions & 3 deletions examples/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,19 @@ license.workspace = true

[dev-dependencies]
reth-primitives.workspace = true

reth-db.workspace = true
reth-provider.workspace = true

reth-rpc-builder.workspace = true
reth-rpc-types.workspace = true
reth-rpc-types-compat.workspace = true

reth-revm.workspace = true
reth-blockchain-tree.workspace = true
reth-beacon-consensus.workspace = true
reth-network-api.workspace = true
reth-network.workspace = true
reth-transaction-pool.workspace = true
reth-tasks.workspace = true

eyre.workspace = true
futures.workspace = true
async-trait.workspace = true
Expand All @@ -38,3 +36,4 @@ path = "network.rs"
[[example]]
name = "network-txpool"
path = "network-txpool.rs"

2 changes: 1 addition & 1 deletion examples/cli-extension-event-hooks/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ license.workspace = true

[dependencies]
reth.workspace = true
reth-node-ethereum.workspace = true
reth-node-ethereum.workspace = true
23 changes: 23 additions & 0 deletions examples/exex/op-bridge/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
[package]
name = "op-bridge"
version = "0.0.0"
publish = false
edition.workspace = true
license.workspace = true

[dependencies]
reth.workspace = true
reth-exex.workspace = true
reth-node-api.workspace = true
reth-node-core.workspace = true
reth-node-ethereum.workspace = true
reth-primitives.workspace = true
reth-provider.workspace = true
reth-tracing.workspace = true

eyre.workspace = true
tokio.workspace = true
futures.workspace = true
alloy-sol-types = { workspace = true, features = ["json"] }
itertools.workspace = true
rusqlite = { version = "0.31.0", features = ["bundled"] }