Tempo is a blockchain node built on Reth SDK.
- Format Rust code with
cargo +nightly fmt.
When creating a new TIP:
- Run
./scripts/setup-hooks.shonce per clone so Git runs the TIP naming hook. - Branch:
tip/XXXXwhereXXXXis the next available TIP number (checktips/directory and existing branches). - File:
tips/tip-XXXX.mdmatching the branch number. - Follow the template in
tips/tip_template.md. - Follow the process and quality gates in
tips/tip-0000.md.
Use Conventional Commits with an optional scope:
<type>(<scope>): <short description>
Types: feat, fix, perf, refactor, docs, test, chore
Scope (optional): crate or area, e.g. evm, consensus, rpc, tip-1017
Examples:
fix(rpc): correct gas estimation for TIP-20 transfersperf: batch trie updates to reduce cursor overheadfeat(consensus): add checkpoint guard for batched state ops
Keep it short. Say what changed and why — nothing more.
Do:
- Write 1–3 sentences summarizing the change
- Explain why if the diff doesn't make it obvious
- Link related issues or TIPs
- Include benchmark numbers for perf changes
Don't:
- List every file changed — that's what the diff is for
- Repeat the title in the body
- Add "Files changed" or "Changes" sections
- Write walls of text that go stale when the diff is updated
- Use filler like "This PR introduces...", "comprehensive", "robust", "enhance", "leverage"
Template:
Closes #<issue>
<what changed, 1-3 sentences>
<why, if not obvious from the diff>
Good example:
Closes #2901
Adds `valid_before` upper bound for all AA transactions. Transactions past
their expiry are rejected at validation time and cleaned up from the pool
via a periodic sweep.
Bad example:
## Summary
This PR introduces comprehensive validation checks for the valid_before field.
## Changes
- Modified `crates/pool/src/validate.rs` to add validation
- Modified `crates/pool/src/pool.rs` to add cleanup
- Added tests in `crates/pool/src/tests/valid_before.rs`
## Files Changed
- crates/pool/src/validate.rs
- crates/pool/src/pool.rs
- crates/pool/src/tests/valid_before.rs