GithubHelp home page GithubHelp logo

dannpl / firedancer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from firedancer-io/firedancer

0.0 0.0 0.0 26.54 MB

Firedancer is Jump Crypto's Solana consensus node implementation.

Home Page: https://firedancer.io

License: Other

Shell 0.94% C++ 6.38% Python 1.79% C 87.11% Lua 0.07% Tcl 0.08% Assembly 0.66% Rust 0.05% TypeScript 0.01% SystemVerilog 2.07% Makefile 0.78% Dockerfile 0.04% Vim Script 0.01%

firedancer's Introduction

Firedancer ๐Ÿ”ฅ๐Ÿ’ƒ

Firedancer is a new validator client for Solana.

  • Fast Designed from the ground up to be fast. The concurrency model is borrowed from the low latency trading space, and the code contains many novel high performance reimplementations of core Solana primitives.
  • Secure The architecture of the validator allows it to run with a highly restrictive sandbox and almost no system calls.
  • Independent Firedancer is written from scratch. This brings client diversity to the Solana network and helps it stay resilient to supply chain attacks in build tooling or dependencies.

Documentation

If you are an operator or looking to run the validator, see the Getting Started guide in the Firedancer docs

Developing

The below describes building Frankendancer from scratch and running it optimized on a stock Linux image. You will need basic development tools like make, gcc along with rustc, and clang.

Frankendancer currently only supports Linux, and requires a kernel newer than v5.7 to build.

$ sudo dnf groupinstall development
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Then you can clone and build the application from source,

$ git clone --recurse-submodules https://github.com/firedancer-io/firedancer.git
$ cd firedancer
$ ./deps.sh
$ make -j run

The make run target runs the fddev dev command. This development command will ensure your system is configured correctly before creating a genesis block, some keys, a faucet, and then starting a validator on the local machine. fddev will use sudo to make privileged changes to system configuration where needed. If sudo is not available, you may need to run the command as root.

By default fddev will create a new development cluster, if you wish to join this cluster with other validators, you can define [rpc.entrypoints] in the configuration file to point at your first validator and run fddev dev again.

Code Coverage

Test and fuzzing coverage are available here.

License

Firedancer is available under the Apache 2 license. Firedancer also includes external libraries that are available under a variety of licenses. See LICENSE for the full license text.

firedancer's People

Contributors

riptl avatar kbowers-jump avatar mmcgee-jump avatar ptaffet-jump avatar nbridge-jump avatar marcus-ares avatar lidatong avatar asiegel-jt avatar cantelopepeel avatar llamb-jump avatar jumpsiegel avatar ripatel-fd avatar anwayde avatar dependabot[bot] avatar marctrem avatar 0x0ece avatar theo25 avatar kaasaraai-jump avatar mjain-jump avatar arjain4 avatar smcio avatar gtrepta avatar ibhatt-jumptrading avatar jvarela-jump avatar leoluk avatar soelth avatar fire30 avatar cavemanloverboy avatar tpointon-jump avatar kaplanmaxe avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.