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"}
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"}
Starknet is a permissionless, STARK-powered, L2 ZK-rollup that supports general computation, making it one of the most promising solutions for scaling Ethereum. Starknet nodes such as Juno verify the validity of the data they get from the Starknet network by comparing it to the proof retrieved from Ethereum. The development of Juno was split into three phases:
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.
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!
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.
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.
Bringing all the expertise obtained by developing Nethermind’s Ethereum client, Juno is being developed by a team of world-class engineers at Nethermind. It is written in Golang and open-sourced from the beginning. These two characteristics, coupled with the rising popularity of Starknet’s ecosystem, make Juno one of the most attractive projects for developers to contribute to Starknet’s decentralization plan.
Disclaimer: Kindly note, Juno is an ongoing project, and the client is still in early alpha. Please refer to the GitHub repository page for more details.