Skip to content

Merging CipherOwl Improvements - #115

Open
leozc wants to merge 255 commits into
coinbase:masterfrom
cipherowl-ai:master
Open

Merging CipherOwl Improvements#115
leozc wants to merge 255 commits into
coinbase:masterfrom
cipherowl-ai:master

Conversation

@leozc

@leozc leozc commented Apr 1, 2025

Copy link
Copy Markdown
Contributor

What changed? Why?

  1. This change includes a list of improvements from CipherOwl based on the original ChainStorage from Coinbase
  2. Key improvement:
    2.1 Adding LTC / Tron Support,
    2.2 Adding ZSTD support
    2.3 Making ChainStorage more friendly for opensource / k8s environment

How did you test the change?

  • [ X ] unit test
  • [ X ] integration test
  • functional test
  • adhoc test (described below)
  • running in production

leozc and others added 30 commits March 21, 2024 08:55
…replicator

# Conflicts:
#	internal/workflow/replicator.go
Signed-off-by: Henry Yang <henry.yang@cipherowl.com>
* Port ethereum beacon support
* Port blockchains client/parser changes
- add TronClient to retrive data
- set an additional client for TronClient to retrive TransactionInfo data from a independent restapi
- support `POST` for restapiClient;
- add Tron Parser, mapping the internal transactions of TransactionInfo into EthereumTransactionFlattenedTrace
- add `Additional` into `ClientConfig` to support an independent endpoint group in config
- add config template for Tron with `additional` inside the chain.client
- set `Chain Number` and `Network Number` for Tron
- add test case for Tron parser
- add test case for restapi http.MethodPOST, fix other cases
PikaZ76 and others added 30 commits July 6, 2026 15:09
Robinhood Chain is an Arbitrum Nitro based EVM L2 (mainnet chain ID
4663, testnet 46630). Client and parser reuse the Ethereum
implementations, following the same pattern as monad/megaeth. Config
tuning follows arbitrum (tier 2, 250ms block time, irreversible
distance 1, fast_sync poller).

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…ror (#160)

On Arbitrum Nitro based chains, a transaction terminated by ArbOS
before EVM execution (included by the sequencer but failed pre-checks)
produces zero call frames, while go-ethereum's callTracer requires
exactly one top-level frame per transaction. Such a block fails the
whole debug_traceBlockByHash call deterministically with
"incorrect number of top-level calls" (e.g. robinhood mainnet block
604227).

For robinhood only, fall back to per-transaction tracing when the
block-level trace fails with this exact error, and substitute a fake
trace for the poisoned transaction (same mechanism as the Optimism
whitelist fake trace). The fallback is recorded under a dedicated
trace_block result_type=fallback metric.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…ze (#164)

The ethereum client (shared by robinhood and other EVM chains) hardcoded
eth_getTransactionReceipt batching at 100 per JSON-RPC batch call. Wire the
existing chain.client.tx_batch_size config (previously only read by the
bitcoin client) into the receipt batching loop, falling back to the current
default of 100 when unset, so per-chain configs can tune batch size to
provider limits.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…tched call (#165)

The per-endpoint rps limiter charges one token per HTTP request, but some
providers (e.g. QuickNode) count each call inside a JSON-RPC batch against
their rate limit individually, forcing operators to budget rps x batch size
manually.

Add an rps_count_batch endpoint option: jsonrpc BatchCall annotates the
request context with the batch size before entering the retry wrapper, and
the endpoint round tripper charges that many tokens when the option is
enabled. Weights are clamped to a minimum of 1, and the new
RateLimiter.WaitWeight waits in burst-sized chunks so a batch larger than
the burst no longer errors. Defaults to off; existing endpoints keep the
one-token-per-request behavior.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.