Juno is a StarkNet node implementation written in Golang with ❤️ by Nethermind. Designed to ease things up and performance in mind. We will bring decentralization to StarkNet.
- Golang 1.18 or higher is required to build and run the project. You can find the installer on the official Golang download page.
- Python 3.7
For a detailed installation guide, please refer to the installation guide page.
For details about the configuration you can look at the config file description.
You can install the entire app using docker. Just check the docker guide.
- Get and Sync state from Layer 1 (Ethereum).
- Get and Sync state from API (Feeder Gateway).
- Store StarkNet State locally.
- Store StarkNet Transactions.
- Store StarkNet Blocks.
- Store the ABI and full code of StarkNet contracts.
- Ethereum-like Json RPC Server following
the v0.1.0 spec.
Currently, supported are:
starknet_getBlockWithTxHashes
- Get block information with transaction hashes given the block id.starknet_getBlockWithTxs
- Get block information with full transactions given the block id.starknet_getStateUpdate
- Get the information about the result of executing the requested block.starknet_getStorageAt
- Get the value of the storage at the given address and key.starknet_getTransactionByHash
- Get the details and status of a submitted transaction.starknet_getTransactionByBlockIdAndIndex
- Get the details of a transaction by a given block id and index.starknet_getTransactionReceipt
- Get the transaction receipt by the transaction hash.starknet_getClassHashAt
- Get the contract class hash in the given block for the contract deployed at the given address.starknet_getBlockTransactionCount
- Get the number of transactions in a block given a block id.starknet_call
- Call a StarkNet function without creating a transaction.starknet_blockNumber
- Get the most recent accepted block number.starknet_blockHashAndNumber
- Get the most recent accepted block hash and number.starknet_chainId
- Return the currently configured StarkNet chain id.starknet_pendingTransactions
- Returns the transactions in the transaction pool, recognized by this sequencer.starknet_syncing
- Returns an object about the sync status, or false if the node is not synching.
- Prometheus Metrics.
- Dockerized app.
In the future we plan to add a new set of features like:
- P2P between all nodes on the network.
- Complete support for v0.2.0 of the RPC spec
- Faster sync
- Enhanced metrics
- And more! Stay tuned! 🚀
For further details, you can watch the documentation.
If you want to say thank you and/or support the active development of Juno
:
- Run a node.
- Add a GitHub Star to the project.
- Tweet about
Juno
on your Twitter . - Contribute to use, make sure to follow Contributions Guidelines.
- Add a Github issue if you find a bug , or you need or want a new feature .
To establish a partnership with the Juno team, or if you have any suggestion or special request, feel free to reach us via email.
Copyright (c) 2022-present, with the following contributors
.
Juno
is open-source software licensed under
the Apache-2.0 License.