Fork of TacBuild/tacchain, with Chaintable pipeline patches.
This repo runs the chain's execution layer with the Chaintable pipeline tracer embedded. The tracer extracts block data — block headers, transactions, call traces, receipts, events, and state diffs — and ships it to S3 + Kafka (see pipeline's architecture). Two consumption paths:
- Block headers + state diffs → Kafka + S3 → leafage-evm: a lightweight EVM executor serving state queries (
eth_call,eth_estimateGas, …), no P2P sync, no tx storage (see its architecture). - Block files (transactions · call traces · receipts · events) → S3 → Chaintable's transaction/trace indexing pipeline.
Chaintable write node (this repo · producer, embeds pipeline tracer)
│
├─ block headers + state diffs ─────────────────→ Kafka + S3 ─→ leafage-evm (EVM state queries)
│
└─ block files (tx · trace · receipts · events) ──→ S3 ─→ Chaintable indexing pipeline (tx/trace data)
tacchaind is a TAC EVM Node based on CosmosSDK with EVM support.
- Prerequisites
git clone https://github.com/Chaintable/tacchain
cd tacchain
make install # install the tacchaind binary
make localnet-init # initialize local chain
make localnet-start # start the chain-
Network RPC can be accessed at http://0.0.0.0:26657
-
NOTE:
make installwill build the project and install the app binary to$GOPATH/bin/tacchaind. You can verify the installation usingtacchaind --help. -
NOTE:
make localnet-initinitializes a new chain and generates network config folder at$HOME/.tacchaind. The generated folder is used to persist the network state. It's important to backup this folder accordingly. Note that this command removes any existing$HOME/.tacchaind! Only use it if you want to start a local network for the first time or you want to reset your chain's state!
Learn more: NETWORKS.md
docker build . -t tacchaind:latest # build image
docker run --rm -it tacchaind:latest tacchaind --help # example binary usageUse the built-in tacchaind debug addr command to convert between EVM hex
addresses and TAC bech32 account addresses deterministically.
EVM -> TAC:
tacchaind debug addr 0x123456789abcdef0123456789abcdef012345678 --prefix tac
# Bech32 tac1zg69v7y6hn00qy352euf40x77qfrg4nchk34lwTAC -> EVM:
tacchaind debug addr tac1zg69v7y6hn00qy352euf40x77qfrg4nchk34lw
# Address hex: 0x123456789aBCdef0123456789AbCDEF012345678debug addr works offline and does not require a running node. The EVM output is
EIP-55 checksummed; the lower-case form is the same address. To inspect the
configured TAC bech32 prefixes, run:
tacchaind debug prefixesThe repository also includes a small JavaScript/TypeScript address conversion
utility in contrib/tac-address-converter.
It can be used directly from JS projects or as a reference implementation for
the same deterministic EVM hex <-> TAC bech32 conversion.