Project type: Developer Tooling

GitHub - anza-xyz/agave: Web-Scale Blockchain for fast, secure, scalable, decentralized apps and marketplaces.
Write better code with AI](
Find and fix vulnerabilities](
Plan and track work](
Collaborate outside of code](
Find more, search less](
+ Small and medium teams 
+ View all use cases
+ View all industries
+ White papers, Ebooks, Webinars 
Fund open source developers](/sponsors)
+ [The ReadME Project
Search or jump to...
# Search code, repositories, users, issues, pull requests...
We read every piece of feedback, and take your input very seriously.
Include my email address so I can be contacted
## Use saved searches to filter your results more quickly
To see all available qualifiers, see our documentation 
You signed in with another tab or window. Reload to refresh your session.
You signed out in another tab or window. Reload to refresh your session.
You switched accounts on another tab or window. Reload to refresh your session.
* Notifications You must be signed in to change notification settings
Web-Scale Blockchain for fast, secure, scalable, decentralized apps and marketplaces.
forks](/anza-xyz/agave/forks) Branches Tags Activity
Notifications You must be signed in to change notification settings
masterBranchesTagsGo to fileCode ## Folders and files
| Name | | Name | Last commit message | Last commit date |
| --- | --- | --- | --- | --- |
| Latest commit History26,957 Commits | | |
| .buildkite | | .buildkite | | |
| .github | | .github | | |
| account-decoder-client-types | | account-decoder-client-types | | |
| account-decoder | | account-decoder | | |
| accounts-bench | | accounts-bench | | |
| accounts-cluster-bench | | accounts-cluster-bench | | |
| accounts-db | | accounts-db | | |
| banking-bench | | banking-bench | | |
| banks-client | | banks-client | | |
| banks-interface | | banks-interface | | |
| banks-server | | banks-server | | |
| bench-streamer | | bench-streamer | | |
| bench-tps | | bench-tps | | |
| bloom | | bloom | | |
| bucket_map | | bucket_map | | |
| builtins-default-costs | | builtins-default-costs | | |
| cargo-registry | | cargo-registry | | |
| cd | | cd | | |
| ci | | ci | | |
| clap-utils | | clap-utils | | |
| clap-v3-utils | | clap-v3-utils | | |
| cli-config | | cli-config | | |
| cli-output | | cli-output | | |
| cli | | cli | | |
| client-test | | client-test | | |
| client | | client | | |
| compute-budget | | compute-budget | | |
| connection-cache | | connection-cache | | |
| core | | core | | |
| cost-model | | cost-model | | |
| curves | | curves | | |
| define-syscall | | define-syscall | | |
| docs | | docs | | |
| dos | | dos | | |
| download-utils | | download-utils | | |
| entry | | entry | | |
| faucet | | faucet | | |
| fee | | fee | | |
| frozen-abi | | frozen-abi | | |
| genesis-utils | | genesis-utils | | |
| genesis | | genesis | | |
| geyser-plugin-interface | | geyser-plugin-interface | | |
| geyser-plugin-manager | | geyser-plugin-manager | | |
| gossip | | gossip | | |
| inline-spl | | inline-spl | | |
| install | | install | | |
| keygen | | keygen | | |
| lattice-hash | | lattice-hash | | |
| ledger-tool | | ledger-tool | | |
| ledger | | ledger | | |
| local-cluster | | local-cluster | | |
| log-analyzer | | log-analyzer | | |
| log-collector | | log-collector | | |
| logger | | logger | | |
| measure | | measure | | |
| memory-management | | memory-management | | |
| merkle-root-bench | | merkle-root-bench | | |
| merkle-tree | | merkle-tree | | |
| metrics | | metrics | | |
| multinode-demo | | multinode-demo | | |
| net-shaper | | net-shaper | | |
| net-utils | | net-utils | | |
| net | | net | | |
| notifier | | notifier | | |
| perf | | perf | | |
| poh-bench | | poh-bench | | |
| poh | | poh | | |
| poseidon | | poseidon | | |
| program-runtime | | program-runtime | | |
| program-test | | program-test | | |
| programs | | programs | | |
| pubsub-client | | pubsub-client | | |
| quic-client | | quic-client | | |
| rayon-threadlimit | | rayon-threadlimit | | |
| rbpf-cli | | rbpf-cli | | |
| remote-wallet | | remote-wallet | | |
| rpc-client-api | | rpc-client-api | | |
| rpc-client-nonce-utils | | rpc-client-nonce-utils | | |
| rpc-client | | rpc-client | | |
| rpc-test | | rpc-test | | |
| rpc | | rpc | | |
| runtime-transaction | | runtime-transaction | | |
| runtime | | runtime | | |
| scripts | | scripts | | |
| sdk | | sdk | | |
| send-transaction-service | | send-transaction-service | | |
| short-vec | | short-vec | | |
| stake-accounts | | stake-accounts | | |
| storage-bigtable | | storage-bigtable | | |
| storage-proto | | storage-proto | | |
| streamer | | streamer | | |
| svm-conformance | | svm-conformance | | |
| svm-rent-collector | | svm-rent-collector | | |
| svm-transaction | | svm-transaction | | |
| svm | | svm | | |
| system-test | | system-test | | |
| test-validator | | test-validator | | |
| thin-client | | thin-client | | |
| timings | | timings | | |
| tokens | | tokens | | |
| tps-client | | tps-client | | |
| tpu-client-next | | tpu-client-next | | |
| tpu-client | | tpu-client | | |
| transaction-dos | | transaction-dos | | |
| transaction-metrics-tracker | | transaction-metrics-tracker | | |
| transaction-status-client-types | | transaction-status-client-types | | |
| transaction-status | | transaction-status | | |
| transaction-view | | transaction-view | | |
| turbine | | turbine | | |
| type-overrides | | type-overrides | | |
| udp-client | | udp-client | | |
| unified-scheduler-logic | | unified-scheduler-logic | | |
| unified-scheduler-pool | | unified-scheduler-pool | | |
| upload-perf | | upload-perf | | |
| validator | | validator | | |
| version | | version | | |
| vote | | vote | | |
| watchtower | | watchtower | | |
| web3.js | | web3.js | | |
| wen-restart | | wen-restart | | |
| zk-keygen | | zk-keygen | | |
| zk-sdk | | zk-sdk | | |
| zk-token-sdk | | zk-token-sdk | | |
| .clippy.toml | | .clippy.toml | | |
| .codecov.yml | | .codecov.yml | | |
| .gitignore | | .gitignore | | |
| .mergify.yml | | .mergify.yml | | |
| CHANGELOG.md | | CHANGELOG.md | | |
| CONTRIBUTING.md | | CONTRIBUTING.md | | |
| Cargo.lock | | Cargo.lock | | |
| Cargo.toml | | Cargo.toml | | |
| LICENSE | | LICENSE | | |
| README.md | | README.md | | |
| RELEASE.md | | RELEASE.md | | |
| SECURITY.md | | SECURITY.md | | |
| cargo | | cargo | | |
| cargo-build-sbf | | cargo-build-sbf | | |
| cargo-test-sbf | | cargo-test-sbf | | |
| fetch-perf-libs.sh | | fetch-perf-libs.sh | | |
| fetch-spl.sh | | fetch-spl.sh | | |
| nextest.toml | | nextest.toml | | |
| run.sh | | run.sh | | |
| rust-toolchain.toml | | rust-toolchain.toml | | |
| rustfmt.toml | | rustfmt.toml | | |
| test-abi.sh | | test-abi.sh | | |
| vercel.json | | vercel.json | | |
| View all files | | |
## Repository files navigation
## **1. Install rustc, cargo and rustfmt.**
$ curl -sSf | sh
$ rustup component add rustfmt
When building the master branch, please make sure you are using the latest stable rust version by running:
When building a specific release branch, you should check the rust version in `ci/rust-version.sh` and if necessary, install that version by running:
$ rustup install VERSION
Note that if this is not the latest rust version on your machine, cargo commands may require an override in order to use the correct version.
On Linux systems you may need to install libssl-dev, pkg-config, zlib1g-dev, protobuf etc.
$ sudo apt-get update
$ sudo apt-get install libssl-dev libudev-dev pkg-config zlib1g-dev llvm clang cmake make libprotobuf-dev protobuf-compiler
$ sudo dnf install openssl-devel systemd-devel pkg-config zlib-devel llvm clang cmake make protobuf-devel protobuf-compiler perl-core
## **2. Download the source code.**
$ git clone 
**Run the test suite:**
### Starting a local testnet
Start your own testnet locally, instructions are in the online docs 
### Accessing the remote development cluster
* `devnet` - stable public cluster for development accessible via
devnet.solana.com. Runs 24/7. Learn more about the public clusters 
First, install the nightly build of rustc. `cargo bench` requires the use of the
unstable features only available in the nightly build.
$ rustup install nightly
$ cargo +nightly bench
The release process for this project is described here.
To generate code coverage statistics:
Why coverage? While most see coverage as a code quality metric, we see it primarily as a developer
productivity metric. When a developer makes a change to the codebase, presumably it's a *solution* to
some problem. Our unit-test suite is how we encode the set of *problems* the codebase solves. Running
the test suite should indicate that your change didn't *infringe* on anyone else's solutions. Adding a
test *protects* your solution from future changes. Say you don't understand why a line of code exists,
try deleting it and running the unit-tests. The nearest test failure should tell you what problem
was solved by that code. If no test fails, go ahead and submit a Pull Request that asks, "what
problem is solved by this code?" On the other hand, if a test does fail and you can think of a
better way to solve the same problem, a Pull Request with your solution would most certainly be
welcome! Likewise, if rewriting a test can better communicate what code it's protecting, please
send us that patch!
Web-Scale Blockchain for fast, secure, scalable, decentralized apps and marketplaces.
© 2024 GitHub, Inc.
* Do not share my personal information
You can’t perform that action at this time.