MCPcopy Index your code
hub / github.com/NethermindEth/juno

github.com/NethermindEth/juno @v0.16.4

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.16.4 ↗ · + Follow
8,597 symbols 41,001 edges 869 files 2,198 documented · 26% 2 cross-repo links
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Juno Logo

Juno is a golang Starknet node implementation by Nethermind with the aim of decentralising Starknet.

📚 Documentation

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.

⚙️ Installation

There are multiple ways of running Juno:

  • Docker container
  • Standalone binary
  • From source

See Running Juno for the detailed instructions on how to install and run Juno on your machine.

📸 Starknet Snapshots

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.

🌐 Interacting with Juno

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.

👍 Contribute

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.

📞 Contact us

For questions or feedback, please don't hesitate to reach out to us:

🤝 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.

⚠️ License

Copyright (c) 2022-present, with the following contributors.

Juno is open-source software licensed under the Apache-2.0 License.

Extension points exported contracts — how you extend this code

Trie (Interface)
Trie is the mutable view of a trie. [19 implementers]
core/trie_interfaces.go
StateReader (Interface)
go:generate mockgen -destination=../mocks/mock_state_reader.go -package=mocks github.com/NethermindEth/juno/core StateRe [10 …
core/state_interfaces.go
Gateway (Interface)
go:generate mockgen -destination=../mocks/mock_gateway_handler.go -package=mocks github.com/NethermindEth/juno/rpc/rpcco [8 …
rpc/rpccore/rpccore.go
Hashable (Interface)
Hashable's Hash() is used as ID() [25 implementers]
consensus/types/types.go
KeyValueReader (Interface)
Exposes a read-only interface to the database [12 implementers]
db/database.go
Snapshot (Interface)
Represents a read-only view of the database at a specific point in time. If you don't need to read at a specific time, u [27 …
db/snapshot.go
Batch (Interface)
A write-only store that gathers changes in-memory and writes them to disk in a single atomic operation. It is not thread [6 …
db/batch.go
Migration (Interface)
Migration represents a migration that can be applied to the database. Execution Flow: 1. Before(intermediateState) is c [10 …
migration/runner.go

Core symbols most depended-on inside this repo

Equal
called by 2692
jsonrpc/server.go
Run
called by 1998
service/service.go
EXPECT
called by 1032
mocks/mock_blockchain.go
Errorf
called by 683
utils/log/log.go
Error
called by 594
utils/log/log.go
String
called by 451
core/trie/proof.go
SetUint64
called by 431
core/felt/felt.go
Hash
called by 298
core/trie/proof.go

Shape

Method 4,052
Function 3,034
Struct 1,129
TypeAlias 176
Interface 138
Class 34
FuncType 27
Enum 7

Languages

Go99%
Rust1%
TypeScript1%
C++1%

Modules by API surface

starknet-p2p-specs/p2p/proto/snapshot/snapshot.pb.go173 symbols
starknet-p2p-specs/p2p/proto/sync/transaction/transaction.pb.go162 symbols
starknet-p2p-specs/p2p/proto/consensus/consensus/consensus.pb.go156 symbols
starknet-p2p-specs/p2p/proto/sync/receipt/receipt.pb.go130 symbols
starknet-p2p-specs/p2p/proto/common/common.pb.go105 symbols
starknet-p2p-specs/p2p/proto/transaction/transaction.pb.go94 symbols
blockchain/blockchain.go68 symbols
starknet-p2p-specs/p2p/proto/class/class.pb.go67 symbols
starknet-p2p-specs/p2p/proto/sync/header/header.pb.go66 symbols
core/transaction.go64 symbols
core/trie2/trieutils/bitarray.go62 symbols
utils/lru/lru_bench_test.go59 symbols

Used by 2 indexed graphs manifest dependencies, hub-wide

For agents

$ claude mcp add juno \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact