Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
103 commits
Select commit Hold shift + click to select a range
147c01f
wip
0xForerunner Jul 9, 2025
14c4297
wip
0xForerunner Jul 9, 2025
54af8b1
wip
0xForerunner Jul 9, 2025
9966ecb
wip
0xForerunner Jul 9, 2025
cddf97f
wip
0xForerunner Jul 10, 2025
89f5ee6
add capability to node
0xForerunner Jul 10, 2025
c3ad860
feat: add validation to node overlay
0xForerunner Jul 10, 2025
36201ba
FlashblocksNetworkBuilder
0xForerunner Jul 10, 2025
0dc7064
Pull out flashblocks-node
0xForerunner Jul 10, 2025
e94925e
add timestamp to Authorization
0xForerunner Jul 10, 2025
dc15ab1
wip
0xForerunner Jul 11, 2025
677574a
wip
0xForerunner Jul 11, 2025
9c3667a
wip
0xForerunner Jul 11, 2025
9944798
wip
0xForerunner Jul 11, 2025
1d0e8ad
wip
0xForerunner Jul 11, 2025
782b951
update vis
0xForerunner Jul 11, 2025
f225b5e
fix node
0xForerunner Jul 11, 2025
1fa5b68
rename vars
0xForerunner Jul 11, 2025
e6b0e9d
switch to Mutex for p2p state
0xForerunner Jul 14, 2025
4ac4633
update protocol to accept new blocks
0xForerunner Jul 14, 2025
0cbf403
move tests directory
0xForerunner Jul 14, 2025
dcf2a43
getting integration tests working
0xForerunner Jul 14, 2025
485adf0
get tests passing
0xForerunner Jul 14, 2025
6d252fe
get rid of duplicate code
0xForerunner Jul 15, 2025
a476ee9
rlp encoding
0xForerunner Jul 16, 2025
6c60ddd
fix rlpx message header
0xForerunner Jul 16, 2025
463c2f7
handle maximum flashblocks message size
0xForerunner Jul 16, 2025
8298f29
cleanup p2p handler
0xForerunner Jul 16, 2025
fd198aa
Don't resend flashblocks to the originating peer
0xForerunner Jul 16, 2025
fd06a6c
clear up comments
0xForerunner Jul 16, 2025
495ab62
remove stray if let
0xForerunner Jul 16, 2025
65125aa
reexport ed25519
0xForerunner Jul 16, 2025
7f82992
use mpsc for publish channel
0xForerunner Jul 17, 2025
ba36548
feat: reth 1.5.1
0xForerunner Jul 17, 2025
a7b4973
chore: cargo update
0xForerunner Jul 17, 2025
7e36324
chore: udeps
0xForerunner Jul 17, 2025
ad658fe
feat: flashblock size metric
0xForerunner Jul 17, 2025
69f50d3
fix: target in events
0xForerunner Jul 17, 2025
b40a313
feat: flashblocks node args
0xForerunner Jul 18, 2025
2f3a210
feat: check peer reputation
0xForerunner Jul 19, 2025
05b6eba
switch to broadcast
0xForerunner Jul 21, 2025
bf980dd
feat: switch to broadcast for publish chan
0xForerunner Jul 21, 2025
0abf5e8
target: flashblocks::p2p
0xForerunner Jul 21, 2025
d1f3ed1
feat: Authorized Msg work
0xForerunner Jul 22, 2025
36559b8
feat: improve rlp testing
0xForerunner Jul 22, 2025
dd3db0f
wip
0xForerunner Jul 23, 2025
ffb966e
wip
0xForerunner Jul 23, 2025
6f4ab14
finish change to p2p leader protocol
0xForerunner Jul 23, 2025
80f24e1
wip: fix rlp encoding
0xForerunner Jul 23, 2025
70d37d7
set block_number
0xForerunner Jul 23, 2025
72b2bc6
feat: working demo!
0xForerunner Jul 24, 2025
d6d129e
feat: authorized verification
0xForerunner Jul 24, 2025
9a8b031
feat: flashblocks_p2p spec
0xForerunner Jul 24, 2025
aa2f722
chore: rename
0xForerunner Jul 24, 2025
83cb7ef
todo: handle replay attacks
0xForerunner Jul 24, 2025
d24dcb5
feat: mitigate Start/StopPublish replay attacks
0xForerunner Jul 24, 2025
6b45336
add doc commends to p2p.rs
0xForerunner Jul 24, 2025
7680cb7
add failover tests
0xForerunner Jul 24, 2025
bd451a1
feat: Add doc comments
0xForerunner Jul 24, 2025
fd99315
feat: remove block_number in favour of timestamp
0xForerunner Jul 24, 2025
4a862cc
feat: pass in handler
0xForerunner Jul 24, 2025
3aa5090
for_leyton
0xForerunner Jul 25, 2025
822f0bc
feat: rename
0xForerunner Jul 25, 2025
481893e
feat: watch channel for publishing state
0xForerunner Jul 25, 2025
e0a40c6
feat: guage for flashblocks peers
0xForerunner Jul 28, 2025
888bd1b
chore: unused error messages
0xForerunner Jul 28, 2025
8dc7540
feat: fn flashblock_stream
0xForerunner Jul 28, 2025
360158f
feat: Add more integration tests
0xForerunner Jul 28, 2025
bb57a44
feat: check MAX_FLASHBLOCK_INDEX with peers
0xForerunner Jul 28, 2025
d8249da
feat: additional doc comments
0xForerunner Jul 28, 2025
528cac3
feat: switch to adding param to FCU for authorization
0xForerunner Jul 28, 2025
93456df
feat: add handle to flashblocks sender
0xOsiris Aug 5, 2025
7ab74a1
feat: internalize flashblocks chan
0xForerunner Aug 6, 2025
36926ad
feat: update tests
0xForerunner Aug 6, 2025
c0cc1e2
chore: cleanup
0xForerunner Aug 6, 2025
f634e4b
feat: test_peer_reputation
0xForerunner Aug 6, 2025
12c65df
chore: stray comments
0xForerunner Aug 6, 2025
d84a2da
feat: flashblocks_forkchoiceUpdatedV3
0xForerunner Aug 14, 2025
378fd99
feat: move rpc-layer
0xForerunner Aug 15, 2025
0a0079d
wip
0xForerunner Aug 15, 2025
171cfbc
fixed
0xForerunner Aug 15, 2025
bf86104
feat: cleanup flashblocks keys
0xForerunner Aug 15, 2025
e46bf80
feat: parse args tests
0xForerunner Aug 15, 2025
c7130aa
remove websocket config
0xForerunner Aug 15, 2025
101ffc0
feat: update rust version
0xForerunner Aug 18, 2025
fe634cb
feat: remove websocket proxy
0xForerunner Aug 19, 2025
ba6b3e4
feat: remove unused stuff
0xForerunner Aug 19, 2025
54d8745
fix: image build configuration
0xOsiris Aug 20, 2025
58feb62
feat: reth update
0xForerunner Aug 29, 2025
bb873b2
feat: publish vs subscribe client types
0xForerunner Sep 5, 2025
39d6a27
feat: fn subscriber()
0xForerunner Sep 5, 2025
dc3f48c
Revert "feat: fn subscriber()"
0xForerunner Sep 8, 2025
075b9c6
Revert "feat: publish vs subscribe client types"
0xForerunner Sep 8, 2025
40774a2
feat: Option builder_sk
0xForerunner Sep 8, 2025
a236f55
feat: reth v1.7.0
0xForerunner Sep 10, 2025
4ea4ba1
chore: upgrade reth
0xOsiris Sep 12, 2025
513d85f
chore: extricate p2p crates and move to world-chain
0xForerunner Sep 17, 2025
5c9dbbc
Merge branch 'main' into forerunner/p2p-flashblocks
0xForerunner Sep 17, 2025
e690dec
chore: add websocket-proxy back
0xForerunner Sep 17, 2025
6355b88
ws vs p2p args
0xForerunner Sep 17, 2025
6be9b9d
chore: refactoring
0xForerunner Sep 17, 2025
46fd26d
chore: more refactoring
0xForerunner Sep 17, 2025
afeed2d
ws
0xForerunner Nov 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,579 changes: 844 additions & 735 deletions Cargo.lock

Large diffs are not rendered by default.

5 changes: 5 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ members = [

[workspace.dependencies]
rollup-boost = { path = "crates/rollup-boost" }
flashblocks-rpc = { path = "crates/flashblocks-rpc" }

tracing = "0.1.4"
tracing-subscriber = { version = "0.3.20", features = ["env-filter", "json"] }
Expand All @@ -20,12 +21,15 @@ serde_json = "1.0.96"
metrics = "0.24.0"
metrics-derive = "0.1"
tokio = { version = "1", features = ["full"] }
tokio-stream = "0.1.17"
eyre = "0.6.12"
url = "2.2.0"
sha2 = { version = "0.10", default-features = false }
arbitrary = { version = "=1.4.2", features = ["derive"] }

# Reth deps
reth-optimism-payload-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" }
reth-rpc-layer = { git = "https://github.com/paradigmxyz/reth", tag = "v1.7.0" }

# Alloy libraries
alloy-rpc-types-engine = "1.0.30"
Expand All @@ -38,6 +42,7 @@ alloy-consensus = "1.0.30"
alloy-rpc-types = "1.0.30"
alloy-genesis = "1.0.30"
alloy-rpc-client = "1.0.30"
alloy-rlp = "0.3.10"
alloy-provider = "1.0.30"
op-alloy-network = "0.19.1"
op-alloy-rpc-types-engine = "0.19.1"
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ RUN cargo install sccache --version ^0.9
RUN cargo install cargo-chef --version ^0.1

RUN apt-get update \
&& apt-get install -y clang libclang-dev
&& apt-get install -y clang libclang-dev gcc

ENV CARGO_HOME=/usr/local/cargo
ENV RUSTC_WRAPPER=sccache
Expand Down
11 changes: 9 additions & 2 deletions crates/rollup-boost/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,15 @@ tokio.workspace = true
eyre.workspace = true
url.workspace = true
sha2.workspace = true
arbitrary.workspace = true

reth-optimism-payload-builder.workspace = true
op-alloy-rpc-types-engine.workspace = true
alloy-rpc-types-engine.workspace = true
alloy-rpc-types-eth.workspace = true
alloy-primitives.workspace = true
alloy-serde.workspace = true
alloy-rlp.workspace = true

tokio-tungstenite.workspace = true
metrics-derive.workspace = true
Expand Down Expand Up @@ -66,7 +68,14 @@ parking_lot = "0.12.3"
tokio-util = { version = "0.7.13" }
dashmap = "6.1.0"

ed25519-dalek = { version = "2", features = ["serde"] }
blake3 = "1" # fast hashing for payload IDs
hex = "0.4"
bytes = "1.2"

[dev-dependencies]
reth-rpc-layer.workspace = true
tempfile = "3.20.0"
rand = "0.9.0"
time = { version = "0.3.36", features = ["macros", "formatting", "parsing"] }
op-alloy-consensus.workspace = true
Expand All @@ -76,8 +85,6 @@ anyhow = "1.0"
assert_cmd = "2.0.10"
predicates = "3.1.2"
tokio-util = { version = "0.7.13" }
bytes = "1.2"
reth-rpc-layer = { git = "https://github.com/paradigmxyz/reth.git", tag = "v1.4.7" }
ctor = "0.4.1"
reqwest = "0.12.15"

Expand Down
Loading