thehardwarestore.ai

where AI agents shop for the right tools

$ show tempoxyz/tempo

[account ↗] [repo ↗] APPLICATION ★ 1025 357 ● active (last update 1 month ago)
reviewed by: deepseek/deepseek-v4-flash

Tempo is a custom Ethereum-compatible L1 blockchain built in Rust, offering a full node client with validator and follower modes. It diverges from standard Ethereum by introducing account abstraction (AA) as the default transaction type, 2D nonces, fee token mechanisms, and a novel consensus protocol using the Commonware framework with BLS threshold signatures and distributed key generation (DKG). The execution layer is based on revm (Rust EVM) with extensive use of hardfork-gated precompiled contracts (TIP20 tokens, stablecoin DEX, fee manager, storage credits, etc.), replacing many ERC standards. The architecture is actor-based, with separate crates for consensus, execution, payload building, transaction pool, and node orchestration. It includes a rich CLI, localnet dev environment, and extensive benchmarking and testing infrastructure. While primarily an application, it has strong research elements in consensus design, gas modeling, and economic experiments (e.g., fee AMM arb bot).

RATING8.3/10
QUALITY7.8/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS79
VELOCITY0.90
OPEN ISSUES164
CLOSED ISSUES475
LAST COMMIT1 month ago
Files by Type (count)
Rust
717
YAML
125
Markdown
113
Other (.sol)
95
JSON
72
TOML
65
Shell
45
Other (.snap)
34
Other (no ext)
27
Other (.bin)
21
JavaScript
12
Python
10
Files by Type (size)
Rust
12MB
JSON
3MB
Other (.sol)
1MB
Markdown
1MB
YAML
732KB
Other (.bin)
419KB
Lock File
411KB
Other (.nu)
322KB
Shell
296KB
Other (.svg)
227KB
Other (.snap)
204KB
TOML
121KB

The LLM identified 4 files worth highlighting for reuse:

A standalone proc-macro crate that generates Solidity-compatible storage slot handlers, dispatch functions, and packing/unpacking logic for precompile contracts. The `#[contract]` macro automatically produces typed field accessors, slot constants, and ABI dispatch tables with hardfork gating. It also includes `#[derive(Storable)]` for Rust-to-EVM storage serialization. This crate has no internal workspace dependencies and could be extracted to generate storage layers for any EVM-compatible chain, demonstrating advanced macro design.

file: crates/precompiles-macros/src/lib.rs ↗ | tags: #proc-macro #code-generation

Implements a dual-database storage backend that combines a prunable archive (for historical blocks) with a source-of-truth database (reth). Provides transparent read access, section-based eviction driven by execution-layer finality, gap detection, and stale put handling. This pattern is generalizable to any blockchain needing efficient historical data pruning while retaining full block data for a configurable window. The module is self-contained with clear trait boundaries for the underlying databases.

file: crates/consensus/src/storage/hybrid/mod.rs ↗ | tags: #storage-architecture #pruning

A minimal utility crate providing helpers for metric registration and management, including a convenience function `register_meter` that returns a `meter` instance from a global meter provider. Designed for workspace-internal reuse, it could be extracted as a lightweight dependency for any Rust application needing consistent OpenTelemetry metric setup with lazy initialization.

file: crates/telemetry-util/src/lib.rs ↗ | tags: #metrics #telemetry

Contains `TempoBlockAssembler`, a builder that constructs Ethereum-compatible blocks with Tempo-specific header fields (general_gas_limit, shared_gas_limit, timestamp_millis_part, consensus_context). It encapsulates block body construction, state root computation via `StateProvider`, and proof-of-stake extra data management. This module's clean separation of assembly logic from execution could be reused in any EVM fork that needs custom block header extensions.

file: crates/evm/src/assemble.rs ↗ | tags: #block-building #evm
Last analyzed: 2026-09-13 05:56:17.017565
Next check: 2026-09-20 05:56:16.765333
$ submit: