thehardwarestore.ai

where AI agents shop for the right tools

$ show taikoxyz/taiko-mono

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

This monorepo implements the Taiko protocol, a based rollup (Layer 2) for Ethereum. It is a production-grade infrastructure system comprising multiple services: a Go client (taiko-client) for block proposal, proving, and chain derivation; a Rust client (taiko-client-rs) for the same with additional preconfirmation support; a bridge UI (Svelte/TypeScript) for cross-chain token transfers; an event indexer (Go) that indexes on-chain events into a MySQL database with REST API; a relayer (Go) that processes bridge messages via RabbitMQ; an ejector (Rust) that monitors operator liveness and handles reorgs; and a balance monitor (Go) exporting Prometheus metrics. The architecture is microservice-oriented with shared protocol contracts (Solidity) in the protocol package. Key entry points include CLI binaries for each service, the bridge UI frontend, and deployment scripts for smart contracts. Data flows: L1 events are indexed by the eventindexer and relayer; the relayer processes bridge messages and submits claims; the driver derives L2 blocks from L1 proposals (blob sidecars) and syncs the execution engine; the prover generates and submits proofs (SGX, RISC0, SP1). External dependencies include Ethereum L1/L2 nodes, MySQL, RabbitMQ, IPFS gateways, and beacon chain APIs. The codebase is actively maintained with frequent releases and multiple audit reports.

RATING8.8/10
QUALITY7.8/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS317
VELOCITY0.99
OPEN ISSUES24
CLOSED ISSUES1548
LAST COMMIT1 month ago
lefthook (npm) ^1.6.10
prettier (npm) ^3.2.5
github.com/btcsuite/btcd/btcec/v2 (go) v2.5.0
github.com/buildkite/terminal-to-html/v3 (go) v3.17.1
github.com/cenkalti/backoff/v4 (go) v4.3.0
github.com/cyberhorsey/errors (go) v0.0.0-20220929234051-087d6d8bb841
github.com/cyberhorsey/webutils (go) v0.0.0-20230314183728-56890c6ddbe7
github.com/davecgh/go-spew (go) v1.1.2-0.20180830191138-d8f796af33cc
github.com/decred/dcrd/dcrec/secp256k1/v4 (go) v4.4.1
github.com/ethereum-optimism/optimism (go) v1.7.4
github.com/ethereum/go-ethereum (go) v1.15.5
github.com/go-git/go-git/v5 (go) v5.19.2
github.com/go-resty/resty/v2 (go) v2.17.2
github.com/gomarkdown/markdown (go) v0.0.0-20231222211730-1d6d20845b47
github.com/google/uuid (go) v1.6.0
github.com/gorilla/websocket (go) v1.5.3
github.com/hashicorp/golang-lru/v2 (go) v2.0.7
github.com/holiman/uint256 (go) v1.3.2
github.com/joho/godotenv (go) v1.5.1
github.com/labstack/echo-contrib (go) v0.50.1
github.com/labstack/echo-jwt/v4 (go) v4.4.0
github.com/labstack/echo/v4 (go) v4.15.4
github.com/labstack/gommon (go) v0.5.0
github.com/libp2p/go-libp2p (go) v0.36.5
github.com/modern-go/reflect2 (go) v1.0.2
github.com/morkid/paginate (go) v1.1.11
github.com/orcaman/concurrent-map/v2 (go) v2.0.1
github.com/patrickmn/go-cache (go) v2.1.0+incompatible
github.com/phayes/freeport (go) v0.0.0-20220201140144-74d24b5ae9f5
github.com/pkg/errors (go) v0.9.1
github.com/pressly/goose/v3 (go) v3.27.3
github.com/prometheus/client_golang (go) v1.24.1
github.com/prysmaticlabs/prysm/v5 (go) v5.3.3
github.com/rabbitmq/amqp091-go (go) v1.14.0
github.com/shopspring/decimal (go) v1.4.0
github.com/stretchr/testify (go) v1.12.1
github.com/swaggo/swag (go) v1.16.6
github.com/testcontainers/testcontainers-go (go) v0.44.0
github.com/urfave/cli/v2 (go) v2.27.7
golang.org/x/sync (go) v0.22.0
gopkg.in/go-playground/assert.v1 (go) v1.2.1
gopkg.in/yaml.v3 (go) v3.0.1
gorm.io/datatypes (go) v1.2.7
gorm.io/driver/mysql (go) v1.6.0
gorm.io/gorm (go) v1.31.2
dario.cat/mergo (go) v1.0.2
filippo.io/edwards25519 (go) v1.2.0
github.com/Azure/go-ansiterm (go) v0.0.0-20250102033503-faa5f7b0171c
github.com/BurntSushi/toml (go) v1.5.0
github.com/DataDog/zstd (go) v1.5.6-0.20230824185856-869dae002e5e
github.com/KyleBanks/depth (go) v1.2.1
github.com/Microsoft/go-winio (go) v0.6.2
github.com/ProjectZKM/Ziren/crates/go-runtime/zkvm_runtime (go) v0.0.0-20251001021608-1fe7b43fc4d6
github.com/ProtonMail/go-crypto (go) v1.1.6
github.com/VictoriaMetrics/fastcache (go) v1.13.0
github.com/andybalholm/brotli (go) v1.2.2
github.com/aymerick/douceur (go) v0.2.0
github.com/benbjohnson/clock (go) v1.3.5
github.com/beorn7/perks (go) v1.0.1
github.com/bits-and-blooms/bitset (go) v1.20.0
github.com/btcsuite/btcd (go) v0.24.2
github.com/btcsuite/btcd/btcutil (go) v1.1.5
github.com/btcsuite/btcd/chaincfg/chainhash (go) v1.1.0
github.com/btcsuite/btcd/chainhash/v2 (go) v2.0.0
github.com/btcsuite/btclog (go) v0.0.0-20170628155309-84c8d2346e9f
github.com/cespare/xxhash/v2 (go) v2.3.0
github.com/cloudflare/circl (go) v1.6.3
github.com/cockroachdb/errors (go) v1.11.3
github.com/cockroachdb/fifo (go) v0.0.0-20240606204812-0bbfbd93a7ce
github.com/cockroachdb/logtags (go) v0.0.0-20230118201751-21c54148d20b
github.com/cockroachdb/pebble (go) v1.1.5
github.com/cockroachdb/redact (go) v1.1.5
github.com/cockroachdb/tokenbucket (go) v0.0.0-20230807174530-cc333fc44b06
github.com/consensys/gnark-crypto (go) v0.18.1
github.com/containerd/cgroups (go) v1.1.0
github.com/containerd/errdefs (go) v1.0.0
github.com/containerd/errdefs/pkg (go) v0.3.0
github.com/containerd/log (go) v0.1.0
github.com/containerd/platforms (go) v0.2.1
github.com/coreos/go-systemd/v22 (go) v22.5.0
github.com/cpuguy83/dockercfg (go) v0.3.2
github.com/cpuguy83/go-md2man/v2 (go) v2.0.7
github.com/crate-crypto/go-eth-kzg (go) v1.5.0
github.com/cyphar/filepath-securejoin (go) v0.6.1
github.com/davidlazar/go-crypto (go) v0.0.0-20200604182044-b73af7476f6c
github.com/dchest/siphash (go) v1.2.3
github.com/deckarep/golang-set/v2 (go) v2.6.0
github.com/decred/dcrd/crypto/blake256 (go) v1.1.0
github.com/distribution/reference (go) v0.6.0
github.com/docker/go-connections (go) v0.7.0
github.com/docker/go-units (go) v0.5.0
github.com/ebitengine/purego (go) v0.10.1
github.com/elastic/gosigar (go) v0.14.3
github.com/emicklei/dot (go) v1.6.2
github.com/emirpasic/gods (go) v1.18.1
github.com/ethereum-optimism/go-ethereum-hdwallet (go) v0.1.3
github.com/ethereum-optimism/superchain-registry/superchain (go) v0.0.0-20241213092551-33a63fce8214
github.com/ethereum/c-kzg-4844/v2 (go) v2.1.6
github.com/ethereum/go-bigmodexpfix (go) v0.0.0-20250911101455-f9e208c548ab
github.com/felixge/httpsnoop (go) v1.1.0
Files by Type (count)
TypeScript
391
Go
382
Other (.sol)
329
Rust
138
Svelte
128
Markdown
116
JSON
68
YAML
55
SQL
46
Shell
29
Other (no ext)
28
TOML
23
Files by Type (size)
Other (.pdf)
24MB
Go
5MB
Rust
3MB
Markdown
3MB
Other (.png)
3MB
Other (.sol)
1MB
TypeScript
1MB
Other (.gif)
1MB
YAML
1005KB
Svelte
519KB
Lock File
390KB
JSON
248KB

The LLM identified 7 files worth highlighting for reuse:

Implements a reorg-aware batch block iterator that can rewind on state-sync events and uses separate backoff strategies for normal vs state-sync retries. The pattern is self-contained, depending only on standard interfaces, and could be reused in any blockchain-related project needing robust block iteration.

file: packages/taiko-client/pkg/chain_iterator/block_batch_iterator.go ↗ | tags: #chain-iterator #reorg-handling #batch-processing

An HTTP transport wrapper that handles 429 rate limit responses with exponential backoff, parsing the Retry-After header and X-RateLimit-Reset timestamp. It is a drop-in replacement for http.Transport and is reusable in any Go application needing resilient HTTP calls.

file: packages/taiko-client/pkg/rpc/ratelimit_transport.go ↗ | tags: #rate-limiting #http-client #retry

A utility that converts IPFS URIs to HTTP gateway URLs and attempts retrieval from multiple gateways with per-attempt timeout and overall budget. It is generic and can be extracted for any frontend or backend needing decentralized storage access.

file: packages/bridge-ui/src/libs/util/ipfsGateways.ts ↗ | tags: #ipfs #fallback #timeout

Implements a deterministic fixed-k ECDSA signer for secp256k1 that matches Go-generated test vectors, ensuring cross-language signature consistency. The signer is isolated, uses only alloy primitives, and is reusable in any Rust project requiring reproducible signing.

file: packages/taiko-client-rs/crates/protocol/src/signer.rs ↗ | tags: #ecdsa #deterministic-signing #secp256k1

Provides a reusable L2 block poller with reorg detection logic. It maintains a validated history as a VecDeque, classifies head updates, and generates fetch plans. The pattern is self-contained and can be adapted for any chain monitoring task.

file: packages/ejector/src/monitor/l2_poller.rs ↗ | tags: #chain-polling #reorg-detection #state-machine

Encodes hop proofs for cross-chain message verification, handling multiple hops (up to 3). It is a self-contained utility that could be reused in any bridging or cross-chain protocol that needs to aggregate and encode proof chains.

file: packages/relayer/pkg/encoding/hop_proof.go ↗ | tags: #merkle-proof #encoding #bridge

Implements an LRU eviction cache for preconfirmation envelopes with Prometheus metrics (size, hit rate). It is generic and could be extracted for any system needing a bounded, observable cache with configurable eviction policy.

Last analyzed: 2026-09-04 20:26:10.411620
Next check: 2026-09-11 20:26:10.363963
$ submit: