pathfinder
pathfinder copied to clipboard
A Starknet full node written in Rust
Currently both checkpoint and tracking sync do not update class and storage tries. As a result storage and class commitments are stored as `0`s when syncing via p2p.
Add meaningful spans. This should shorten, unify and improve the value of sync logs be it on p2p client level or at the sync logic level.
Observed loop of: ``` 2024-07-22T11:02:28 TRACE Searching for next gap head=0 2024-07-22T11:02:28 TRACE Start of search was missing head=0 2024-07-22T11:02:28 TRACE Found gap head=0 tail=0 2024-07-22T11:02:28 INFO sync_headers: Syncing headers...
Right now `TransactionVariant::try_from_dto` can trigger deployed contract address computation (literally hashing) depending on transaction type in async context. This should deferred as long as possible to (hopefully) after commitment verification.
Consider chunking the backward sync, ie. decrease the initial request from "everything till latest L1" to some lesser value.
Timeout is set on all expected responses from the stream so longer reply streams always time out. Increase the timeout or make it count for the time when no reply...
Right now checkpoint sync does not retry if it encounters an error, neither does it punish the peer that produces data that failed verification. Checkpoint sync should: - punish the...
Block commitment signatures on Starknet 0.13.2 will be just a signature over the block hash. To verify pre-0.13.2 blocks we'll need to include a pre-calculated hash of all pre-0.13.2 blocks...
p2p sync is essentially a tree of processing tasks called stages, operating concurrently and connected via SPSC channels of some capactiy. Adding metrics and tracing to stages will greatly simplify...