09:12:38.357 30/03/2023 +00:00 INFO node/node.go:121 Starting Juno... {"config": "{LogLevel:debug RPCPort:6060 DatabasePath:/var/lib/juno Network:mainnet Pprof:true}"}

09:12:38.364 30/03/2023 +00:00 INFO pprof/pprof.go:43 Starting pprof... {"address": "localhost:9080"}

09:12:41.180 30/03/2023 +00:00 INFO sync/sync.go:113
Stored Block {"number": 0, "hash": "0x47c3...e943", "root": "0x2187...dee6"}

09:12:41.201 30/03/2023 +00:00 INFO sync/sync.go:113
Stored Block {"number": 1, "hash": "0x2a70...fdeb", "root": "0x525a...ac32"}

Juno

A full-node client implementation for Starknet

Juno is a Starknet full-node client developed by Nethermind. It will allow node operators to sync with the network and expose an API for other services to access Starknet, advancing the network’s decentralization goals.

09:12:38.357 30/03/2023 +00:00 INFO node/node.go:121 Starting Juno... {"config": "{LogLevel:debug RPCPort:6060 DatabasePath:/var/lib/juno Network:mainnet Pprof:true}"}

09:12:38.364 30/03/2023 +00:00 INFO pprof/pprof.go:43 Starting pprof... {"address": "localhost:9080"}

09:12:41.180 30/03/2023 +00:00 INFO sync/sync.go:113
Stored Block {"number": 0, "hash": "0x47c3...e943", "root": "0x2187...dee6"}

09:12:41.201 30/03/2023 +00:00 INFO sync/sync.go:113
Stored Block {"number": 1, "hash": "0x2a70...fdeb", "root": "0x525a...ac32"}

09:12:38.357 30/03/2023 +00:00  INFO    node/node.go:121        Starting Juno...        {"config": "{LogLevel:debug RPCPort:6060 DatabasePath:/var/lib/juno Network:mainnet Pprof:true}"}

09:12:38.364 30/03/2023 +00:00  INFO    pprof/pprof.go:43       Starting pprof...       {"address": "localhost:9080"}

COMPLETED

Phase 1: Permissionless access to Starknet

Juno can hold the full state of Starknet, retrieved from StarkWare’s API. This includes blocks, transactions, state, and contracts. It constructs the complete state and performs high-level verification to ensure correct block and transaction hashes.

Juno exposes calls to retrieve blocks and transactions as an initial step towards a complete JSON RPC API, allowing permissionless access to Starknet.

COMPLETED

Phase 2: Full JSON RPC Support

Juno completes the implementation of the JSON RPC API, extending the current API to allow users to retrieve events, contracts' historical state, and estimates of transaction fees. Juno offers a greater level of verification by verifying Starknet state Ethereum (L1 verification) along with reorg resolution.

Juno is now ready for production use by indexers, explorers, and wallet providers!

IN PROGRESS

Phase 3: Starknet decentralization begins

Juno can synchronize Starknet state from other full nodes with the aim of decentralizing Starknet by removing the dependency from the centralized sequencer.

Snap sync is implemented, significantly reducing sync times and the implementation of JSON RPC’s Trace API will allow users to better understand its execution.

UP NEXT

Phase 4: Juno becomes a Starknet Sequencer

The decentralization of Starknet is complete! Juno becomes a sequencer and participates in L2 consensus to secure the network. Juno has multiple modes of operation:

•   Light client: provides fast permissionless access to Starknet with minimal verification.

•   Full Node: complete verification of Starknet state along with transaction execution.

•   Sequencer: secure the network by taking part in the L2 consensus mechanism.

Starknet enters an important phase of its development — one where it becomes more open, composable, trustless, and more trusting. I see my role at the foundation as an opportunity to foster collaboration, and support a move towards the future of decentralized and permissioned chains powered by STARKs.
Tomasz Stańczak,
Founder of Nethermind