Welcome to itachi, the much easier and more flexible modular stack to build Layer 2 or Layer 3 chains using Cairo and the Starknet technology. It's open source for everyone to use.
Itachi is built on the Yu framework which not only makes it modular but also gives developers a simpler and more user-friendly development experience, just as simple as developing a web backend.
It is specifically easy and helpful if you want to quickly own more of the stack and get more control over your chain.
- cairo-vm: 0.8.3
- cairo-lang: 2.4.0
- rustc 1.74.0 (79e9716c9 2023-11-13)
- go 1.21
docker pull ghcr.io/reddio-com/itachi:latest
docker-compose up
git submodule init
git submodule update --recursive --checkout
make build
./itachi
You can see the running results on your terminal.
Reset Chain will clean all the stored history data locally.
make reset
You can use more complete python tests with starknet.py
: https://github.com/reddio-com/itachi-testing
You can use starknetGo
for RPC unit testing. You can refer to the itachi_test
branch in this fork used during RPC development:https://github.com/haisenCx/starknet.go/tree/itachi_test
Files with the _test suffix in path starknet.go/rpc
are unit tests for RPC.
The default config file of Itachi chain is conf/cairo_cfg.toml
The genesis configs of Itachi chain is same as Madara. You can learn more details by docs
- addDeclareTransaction
- addDeployAccountTransaction
- addInvokeTransaction
- call
- estimateFee
- getTransactionReceipt
- getTransactionByHash
- getNonce
- getTransactionStatus
- getClass
- getClassAt
- getClassHashAt
- blockHashAndNumber
- getBlockWithTxHashes
- getBlockWithTxs
- chainId
- syncing
- getTransactionByBlockIdAndIndex
- getBlockTransactionCount
- estimateMessageFee
- blockNumber
- specVersion
- traceTransaction
- simulateTransactions
- traceBlockTransactions
- getStorageAt
- getStateUpdate
- addDeclareTransaction
- addDeployAccountTransaction
- addInvokeTransaction
- call
- estimateFee
- getTransactionReceipt
- getTransactionByHash
- getNonce
- getTransactionStatus
- getClass
- getClassAt
- getClassHashAt
- blockHashAndNumber
- getBlockWithTxHashes
- getBlockWithTxs
- chainId
- syncing
- getTransactionByBlockIdAndIndex
- getBlockTransactionCount
- estimateMessageFee
- blockNumber
- specVersion
- traceTransaction
- simulateTransactions
- traceBlockTransactions
- getStorageAt
- getStateUpdate
- addDeclareTransaction
- addDeployAccountTransaction
- addInvokeTransaction
- call
- estimateFee
- getTransactionReceipt
- getTransactionByHash
- getNonce
- getTransactionStatus
- getClass
- getClassAt
- getClassHashAt
- blockHashAndNumber
- getBlockWithTxHashes
- getBlockWithTxs
- chainId
- syncing
- getTransactionByBlockIdAndIndex
- getBlockTransactionCount
- estimateMessageFee
- blockNumber
- specVersion
- traceTransaction
- simulateTransactions
- traceBlockTransactions
- getStorageAt
- getStateUpdate