/juno

StarkNet client implementation.

Primary LanguageGoApache License 2.0Apache-2.0

Juno Logo

Juno

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.

⚙️ Installation

Make sure you have Go installed (download). Version 1.18 or higher is required.

At time of writing, we support two commands:

  • juno
    • juno is the command to initialize the node.
  • juno-cli
    • juno-cli is the command that handles a set of different commands for StarkNet ecosystem.

You can install juno with:

go install github.com/NethermindEth/juno/cmd/juno@latest

To install juno-cli:

go install github.com/NethermindEth/juno/cmd/juno-cli@latest

For details about the configuration you can look at the config file description.

📦 Dockerized

You can install the entire app using docker. Just check the docker guide.

🎯 Features

  • 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 of StarkNet contracts.
  • Ethereum-like Json RPC Server following this spec. Currently supported are:
    • starknet_getStorageAt
    • starknet_getCode
    • starknet_getBlockByHash
    • starknet_getBlockByNumber
    • starknet_getTransactionByHash
    • starknet_getTransactionByBlockHashAndIndex
    • starknet_getStorageAt (pending)
    • starknet_getCode (pending)
    • starknet_getBlockByNumber (pending)
  • Rest API is a wrapper to the StarkNet feeder gateway. Through it you can call the node in the same way you would call the feeder gateway, where using the same params will return the same response.
  • CLI for general StarkNet tools.
  • Prometheus Metrics.
  • Dockerized app.

📜 Documentation

For further details, you can watch the documentation.

👍 Contribute

If you want to say thank you and/or support the active development of Juno:

  1. Run a node.
  2. Add a GitHub Star to the project.
  3. Tweet about Juno on your Twitter .
  4. Contribute to use, make sure to follow Contributions Guidelines.
  5. Add a Github issue if you find a bug , or you need or want a new feature .

‍💻 Code Contributors

Code Contributors

🤝 Partnerships

To establish a partnership with the Juno team, or if you have any suggestion or special request, feel free to reach us via email.

⭐️ Stargazers over time

Stargazers over time

⚠️ License

Copyright (c) 2022-present, with the following contributors . Juno is open-source software licensed under the Apache-2.0 License.