Juno is a golang Starknet node implementation by Nethermind with the aim of decentralising Starknet.
To know everything there is to know on how to interact with Juno, please check out the documentation.
To become a Starknet Validator follow this guide.
-
Golang 1.25 or higher is required to build and run the project. You can find the installer on the official Golang download page.
-
Rust 1.86.0 or higher.
-
A C compiler:
gcc
. -
Install some dependencies on your system:
-
macOS
brew install jemalloc brew install pkg-config make install-deps
-
Ubuntu
sudo apt-get install -y libjemalloc-dev libjemalloc2 pkg-config libbz2-dev make install-deps
-
-
To ensure a successful build, you either need to synchronize the tags from the upstream repository or create a new tag.
make juno
./build/juno
Use the --help
flag for configuration information.
Flags and their values can also be placed in a .yaml
file that is passed in through --config
.
To run Juno with Docker, use the following command. Make sure to create the $HOME/juno
directory on your local machine before running the command.
docker run -d \
--name juno \
-p 6060:6060 \
-v $HOME/juno:/var/lib/juno \
nethermind/juno \
--http \
--http-port 6060 \
--http-host 0.0.0.0 \
--db-path /var/lib/juno \
--eth-node <YOUR-ETH-NODE>
You should replace <YOUR-ETH-NODE>
with your actual Ethereum node address.
If you're using Infura, your Ethereum node address might look something like: wss://mainnet.infura.io/ws/v3/your-infura-project-id
.
Make sure you are using the websocket URL ws
/wss
and not the http URL http
/https
.
To view logs from the Docker container, use the following command:
docker logs -f juno
To sync your node as fast as possible, use the provided snapshots service. Fresh snapshots are automatically uploaded once a week. See Database Snapshots to get instructions on how to set Juno up and running using a recent Starknet snapshot.
Juno works as gateway into Starknet and can be queried using JSON-RPC requests. Also, it allows to subscribe to real time events happening on the network and get constant updates. Read the Interacting with Juno section for more details.
We welcome PRs from external contributors and would love to help you get up to speed. Let us know you're interested in the Discord server and we can discuss good first issues.
For more details on how to get started, check out our contributing guidelines.
There are also many other ways to contribute. Here are some ideas:
- Run a node.
- Add a GitHub Star to the project.
- Tweet about Juno.
- Add a Github issue if you find a bug, or you need or want a new feature.
For questions or feedback, please don't hesitate to reach out to us:
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.