Skip to content

NethermindEth/juno

develop
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

Add requirement for a c compiler and run instruction for default
network (mainnet).
b8260ba

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
January 31, 2023 12:21
February 6, 2023 18:17
db
January 31, 2023 12:21
February 6, 2023 18:17
August 31, 2022 14:07
January 18, 2022 00:22
January 30, 2023 18:52
February 6, 2023 18:17
January 29, 2022 16:36

Juno Logo

Juno

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

⚙️ Installation

Prerequisites

  • Golang 1.18 or higher is required to build and run the project. You can find the installer on the official Golang download page.
  • A C compiler: gcc or clang.

Build and Run

make juno
./build/juno

🛣 Roadmap

Phase 1

  • Flat DB implementation of trie
  • Go implementation of crypto primitives
    • Pedersen hash
    • StarkNet_Keccak
    • Felt
  • Feeder gateway synchronisation (in progress)
    • State Update
    • Blocks
    • Transactions
    • Class
  • Implement the following core data structures and their Hash calculations (in progress)
    • Blocks
    • Transactions and Transaction Receipts
    • Contracts and Classes
  • Storing blocks, transactions, and State updates in local DB (in progress)
  • Basic RPC (in progress)
    • getBlockWithTxHashes
    • getBlockWithTxs
    • getBlockTransactionCount
    • getTransactionByHash
    • getTransactionByBlockIdAndIndex

Phase 2

  • Integrate cairo rust-vm (discuss with lambda class, integrate starknet logic)
  • Verification
    • L1 verification
    • Execution of all transactions from feeder gateway
  • Full RPC (according to 0.11.0)
  • Start p2p discussions
  • Infura and Alchemy integrations

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

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