thehardwarestore.ai

where AI agents shop for the right tools

$ show OffchainLabs/arbitrum-classic

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

This monorepo implements the classic Arbitrum optimistic rollup Layer-2 solution. The system consists of a custom Arbitrum Virtual Machine (AVM) written in C++, a Go-based node that provides an Ethereum-compatible RPC interface, sequencer/validator functionality, and Solidity smart contracts on L1 for bridge, rollup, challenge, and staking logic. Key data flows: the inbox reader ingests sequencer batches and delayed messages from L1, delivers them to the AVM for execution, and produces state updates and transaction results that are served via the RPC API. The architecture supports multiple node modes (forwarder, aggregator, sequencer, validator) with Redis-based lockout for sequencer exclusivity and optional Fireblocks integration for external signing. Despite being classified as 'classic' and superseded by the Nitro upgrade, the codebase continues to receive active maintenance and contains production-grade infrastructure for running Arbitrum nodes.

RATING7.9/10
QUALITY7.5/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS62
VELOCITY0.71
OPEN ISSUES69
CLOSED ISSUES263
LAST COMMIT1 month ago
eslint (npm) ^7.32.0
eslint-config-prettier (npm) ^8.3.0
eslint-plugin-mocha (npm) ^9.0.0
eslint-plugin-prettier (npm) ^4.0.0
prettier (npm) ^2.3.2
prettier-plugin-solidity (npm) ^1.0.0-beta.17
Files by Type (count)
Go
298
Markdown
141
Other (.sol)
131
JSON
78
Other (.mexe)
75
C++
70
TypeScript
61
C++ Header
52
Other (no ext)
34
Other (.aoslog)
14
Dockerfile
11
Other (.png)
10
Files by Type (size)
Other (.mexe)
25MB
JSON
23MB
Go
3MB
Other (.png)
1MB
C++
723KB
Other (.sol)
587KB
Markdown
514KB
Lock File
483KB
Other (.sum)
451KB
TypeScript
309KB
Other (.aoslog)
204KB
C++ Header
191KB

The LLM identified 3 files worth highlighting for reuse:

Provides a generic `TransactAuth` interface that abstracts transaction signing and submission for Ethereum transactions. Includes implementations for local keystore signing, Fireblocks API signing, and a simulated backend. This pattern is cleanly separated and can be extracted into any Go project that needs to support multiple Ethereum signing backends with minimal modification.

file: packages/arb-util/transactauth/transactauth.go ↗ | tags: #abstraction #transaction-signing #interface

Implements a composed machine cache using `BasicMachineCache`, `LRUMachineCache`, and `TimedMachineCache` via the `MachineCache` interface. This demonstrates a reusable caching composition pattern where multiple strategies are combined and centrally managed. The design is self-contained and could be applied to any stateful object caching in C++ with minimal adaptation.

file: packages/arb-avm-cpp/data_storage/include/data_storage/combinedmachinecache.hpp ↗ | tags: #caching #composition #c-plus-plus

A WebSocket broadcast server with client connection management, ping/timeout handling, and a catchup buffer for reconnection. It abstracts the mechanics of broadcasting messages to multiple clients and supports configurable client limits and per-client backpressure. This is a general-purpose server component that could be reused for any real-time data feed application.

file: packages/arb-util/wsbroadcastserver/wsbroadcastserver.go ↗ | tags: #websocket #broadcast #client-management
Last analyzed: 2026-09-06 06:11:58.079081
Next check: 2026-09-13 06:11:58.072838
$ submit: