No Description

Rory Harris 139421c886 Reduce duplication of logic in pending snapshots push (#9216) 6 hours ago
.buildkite 7659dddd30 Run merge queue tasks with higher priority (#8708) 3 weeks ago
.cargo 7b66701c49 ci: move xtask under ci subdir (#8544) 1 month ago
.config 360411c0e5 blockstore: Remove slow test_purge_huge (#9087) 1 week ago
.github 8a969f8d6b chore(deps): bump actions/checkout from 5 to 6 (#9201) 20 hours ago
account-decoder 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
account-decoder-client-types 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
accounts-cluster-bench bc457203aa Update solana-gossip spy to support multiple entrypoints (#7060) 2 days ago
accounts-db ec58eedb85 Refactors in-mem index flush code (#9217) 8 hours ago
banking-bench afb60f70a5 chore: Fix typos (#8681) 3 days ago
banking-stage-ingress-types 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
banks-client 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
banks-interface 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
banks-server 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
bench-streamer 4f08cb9585 delet gpu code (#8967) 4 days ago
bench-tps 6a8374ca50 remove connection-cache for TPU txs from validator (#9099) 1 day ago
bench-vote 432d810d94 streamer: refactor config structs (#9093) 3 days ago
bloom 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
bucket_map afb60f70a5 chore: Fix typos (#8681) 3 days ago
builtins 58eb815ef2 remove `solana-stake-program` (#8834) 2 weeks ago
builtins-default-costs afb60f70a5 chore: Fix typos (#8681) 3 days ago
cargo-registry 27b7339dfc Nonblocking RPC for cli (#8687) 1 day ago
ci 2d29308e6d chore(deps): bump bytes from 1.10.1 to 1.11.0 (#9174) 1 day ago
clap-utils 28c8acc544 (Alpenglow) Add Alpenglow mode in genesis. (#8482) 3 weeks ago
clap-v3-utils 3377d34db0 suppress erroneous lints related to nested deprecation blocks (#8899) 2 weeks ago
cli 27b7339dfc Nonblocking RPC for cli (#8687) 1 day ago
cli-config 7c8c4091c9 remove public interfaces from `agave-unstable-api` (#8818) 2 weeks ago
cli-output 46d54f3b17 clippy: derive Default impl for enums instead of manual impl (#8792) 3 weeks ago
client 7c8c4091c9 remove public interfaces from `agave-unstable-api` (#8818) 2 weeks ago
client-test e7af356486 Refactor: move SocketAddrSpace to net-utils to decouple from streamer (#9037) 6 days ago
compute-budget f12e46b798 SIMD-0339: Increase CPI Account Infos Limit (#8513) 3 weeks ago
compute-budget-instruction 5f99ddfdb2 feat(svm): split out static elements of `SVMMessage` (#9001) 4 days ago
connection-cache 5af914802e Move solana-logger back to agave as agave-logger (#8622) 3 weeks ago
core da03d1be01 Use rlim_t instead of u64 which breaks build on some OS's (#9194) 10 hours ago
cost-model afb60f70a5 chore: Fix typos (#8681) 3 days ago
curves afb60f70a5 chore: Fix typos (#8681) 3 days ago
dev-bins 934ede0829 chore(deps): bump rustls from 0.23.34 to 0.23.35 (#9206) 20 hours ago
docker-solana e19a786c83 docs: fix docker link (#6180) 6 months ago
docs 962f17ee6f Update docs that reference Solana Labs in roles that have been taken over by Anza (#9219) 10 hours ago
dos bc457203aa Update solana-gossip spy to support multiple entrypoints (#7060) 2 days ago
download-utils cc6eedd6ba Splitting snapshot type into snapshot type and snapshot archive type (#9050) 4 days ago
entry cfc447b98b chore: Move rand to dev-dependency for solana-entry (#9193) 1 day ago
faucet 5e9bc2312b bump solana-transaction to 3.0.2, solana-hash to 3.1.0, solana-sha256-hasher to 3.1.0 (#9145) 1 day ago
feature-set afb60f70a5 chore: Fix typos (#8681) 3 days ago
fee 1538a5d782 feat(cost): compute cost without needing ALTs (#9110) 4 days ago
fs 35c3d0ac3f add `agave-unstable-api` deprecation warning to new `agave-fs` crate (#9012) 1 week ago
genesis 58eb815ef2 remove `solana-stake-program` (#8834) 2 weeks ago
genesis-utils 0af564a66f Move genesis related helpers from agave-snapshots to solana_genesis_utils (#8658) 3 weeks ago
geyser-plugin-interface 7c8c4091c9 remove public interfaces from `agave-unstable-api` (#8818) 2 weeks ago
geyser-plugin-manager 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
gossip ba3d045d65 Remove generic type from WeightedShuffle forcing it to u64 (#9147) 1 day ago
gossip-bin bc457203aa Update solana-gossip spy to support multiple entrypoints (#7060) 2 days ago
install 5e9bc2312b bump solana-transaction to 3.0.2, solana-hash to 3.1.0, solana-sha256-hasher to 3.1.0 (#9145) 1 day ago
io-uring a8f32fd52c chore: annotate code with unsafe blocks to fix unsafe_op_in_unsafe_fn (#9070) 6 days ago
keygen 0f761dca1d clippy: manual_is_multiple_of (#8959) 2 weeks ago
lattice-hash 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
ledger 108e72547a blockstore: Chain merkle root for slot 0 to genesis hash (#9163) 15 hours ago
ledger-tool dfe2a34904 ledger-tool: Add --log arg to support logfile (#9065) 16 hours ago
local-cluster 6a8374ca50 remove connection-cache for TPU txs from validator (#9099) 1 day ago
logger a604464a32 chore: Cleanup logger functions (#9067) 1 week ago
measure 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
merkle-tree 0f761dca1d clippy: manual_is_multiple_of (#8959) 2 weeks ago
metrics afb60f70a5 chore: Fix typos (#8681) 3 days ago
multinode-demo 0d664e9d6c remove GPU from docs and scripts (#9076) 4 days ago
net 0d664e9d6c remove GPU from docs and scripts (#9076) 4 days ago
net-utils e8cbabe410 Streamer: transition SimpleQos to TokenBucket (#8896) 13 hours ago
notifier 926b206f77 chore: fix rust_2024_incompatible_pat warnings (#8991) 1 week ago
perf 54d95e1a8d Support send client pubkey (#8836) 3 days ago
platform-tools-sdk 7fa5341369 Bump version to v4.0.0-alpha.0 (#8789) 3 weeks ago
poh afb60f70a5 chore: Fix typos (#8681) 3 days ago
poh-bench 4f08cb9585 delet gpu code (#8967) 4 days ago
poseidon 3da465153b SIMD-0359: Enforce padding in Poseidon hash inputs (#8534) 3 weeks ago
precompiles 5af914802e Move solana-logger back to agave as agave-logger (#8622) 3 weeks ago
program-binaries 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
program-runtime 4adc658db1 Use u16 for deduplication map (#9132) 14 hours ago
program-test ae15902040 clippy: use std::ptr::with_exposed_provenance_mut instead of transmute (#8794) 2 weeks ago
programs 934ede0829 chore(deps): bump rustls from 0.23.34 to 0.23.35 (#9206) 20 hours ago
pubsub-client 7c8c4091c9 remove public interfaces from `agave-unstable-api` (#8818) 2 weeks ago
quic-client afb60f70a5 chore: Fix typos (#8681) 3 days ago
rayon-threadlimit 3377d34db0 suppress erroneous lints related to nested deprecation blocks (#8899) 2 weeks ago
rbpf-cli 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
remote-wallet 46d54f3b17 clippy: derive Default impl for enums instead of manual impl (#8792) 3 weeks ago
reserved-account-keys 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
rpc afb60f70a5 chore: Fix typos (#8681) 3 days ago
rpc-client afb60f70a5 chore: Fix typos (#8681) 3 days ago
rpc-client-api 7c8c4091c9 remove public interfaces from `agave-unstable-api` (#8818) 2 weeks ago
rpc-client-nonce-utils 926b206f77 chore: fix rust_2024_incompatible_pat warnings (#8991) 1 week ago
rpc-client-types 7c8c4091c9 remove public interfaces from `agave-unstable-api` (#8818) 2 weeks ago
rpc-test e7af356486 Refactor: move SocketAddrSpace to net-utils to decouple from streamer (#9037) 6 days ago
runtime 139421c886 Reduce duplication of logic in pending snapshots push (#9216) 6 hours ago
runtime-transaction 43e34eee2e feat(runtime-transaction): support borrowed sanitized views (#9190) 10 hours ago
scheduler-bindings afb60f70a5 chore: Fix typos (#8681) 3 days ago
scheduling-utils 8e68644319 feat(scheduling-utils): add `from_raw_parts` for pointers (#9209) 11 hours ago
scripts c832757d6f ci: remove outdated scripts/coverage-in-disk.sh (#9179) 1 day ago
sdk d221ad4091 sdk: Remove everything from the repo (#4867) 9 months ago
send-transaction-service 5af914802e Move solana-logger back to agave as agave-logger (#8622) 3 weeks ago
snapshots afb60f70a5 chore: Fix typos (#8681) 3 days ago
stake-accounts 58eb815ef2 remove `solana-stake-program` (#8834) 2 weeks ago
storage-bigtable fde394f5a0 clippy(storage-bigtable): limit captured lifetimes by get_protobuf_or_bincode_cells (#9166) 8 hours ago
storage-proto f370f916ac chore(deps): bump solana-instruction-error from 2.0.0 to 2.1.0 (#9043) 2 days ago
streamer e8cbabe410 Streamer: transition SimpleQos to TokenBucket (#8896) 13 hours ago
svm abcf518f40 runtime: resolve compute budget in `check_transaction()` (#9155) 1 day ago
svm-callback 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
svm-feature-set 0356684899 SIMD-0284: Add little-endian compatibility for alt_bn128 (#8771) 3 weeks ago
svm-log-collector 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
svm-measure 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
svm-rent-calculator 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
svm-test-harness fff036c486 clippy: fix and deny unsafe_attr_outside_unsafe warning for edition 2024 migration (#9011) 1 week ago
svm-timings 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
svm-transaction 5f99ddfdb2 feat(svm): split out static elements of `SVMMessage` (#9001) 4 days ago
svm-type-overrides 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
syscalls 3c8947962f chore: fix and deny unsafe-op-in-unsafe-fn for rust 2024 migration (#9018) 1 week ago
test-validator 27b7339dfc Nonblocking RPC for cli (#8687) 1 day ago
thread-manager 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
tls-utils 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
tokens e7af356486 Refactor: move SocketAddrSpace to net-utils to decouple from streamer (#9037) 6 days ago
tps-client 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
tpu-client 6a8374ca50 remove connection-cache for TPU txs from validator (#9099) 1 day ago
tpu-client-next afb60f70a5 chore: Fix typos (#8681) 3 days ago
transaction-context 4adc658db1 Use u16 for deduplication map (#9132) 14 hours ago
transaction-dos 27b7339dfc Nonblocking RPC for cli (#8687) 1 day ago
transaction-metrics-tracker 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
transaction-status 504b84503c clippy: fix mismatched_lifetime_syntaxes in monorepo (#8796) 3 weeks ago
transaction-status-client-types 8e86c30a4e Cleanup derive attributes to list all traits in one place (#8824) 2 weeks ago
transaction-view 43e34eee2e feat(runtime-transaction): support borrowed sanitized views (#9190) 10 hours ago
turbine ba3d045d65 Remove generic type from WeightedShuffle forcing it to u64 (#9147) 1 day ago
udp-client 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
unified-scheduler-logic a8f32fd52c chore: annotate code with unsafe blocks to fix unsafe_op_in_unsafe_fn (#9070) 6 days ago
unified-scheduler-pool 35f53334b1 fix: re-enable test_scheduler_drop_idle by resolving race condition (#9042) 2 days ago
validator 6a8374ca50 remove connection-cache for TPU txs from validator (#9099) 1 day ago
verified-packet-receiver afb60f70a5 chore: Fix typos (#8681) 3 days ago
version 1921bd3bf3 gossip: add additional reserved client identifiers (#8980) 4 days ago
vortexor f85f1af6bb chore: Remove unused rand dep from vortexor (#9192) 1 day ago
vote 89ae1969d5 ci: improve frozen abi test (#9044) 5 days ago
votor 98c168ed6c refactor: update `certificate_limits_and_vote_types()` (#9082) 2 days ago
votor-messages 6d6740f350 frozen-abi: fix derives for agave-votor-messages and agave-votor (#9034) 1 week ago
watchtower 5e9bc2312b bump solana-transaction to 3.0.2, solana-hash to 3.1.0, solana-sha256-hasher to 3.1.0 (#9145) 1 day ago
web3.js 18c22c7cef Add link to new web3.js repo (#30096) 2 years ago
wen-restart afb60f70a5 chore: Fix typos (#8681) 3 days ago
xdp 07345d33df XDP: add bond interface support for zero copy (#9004) 1 week ago
xdp-ebpf afb60f70a5 chore: Fix typos (#8681) 3 days ago
zk-keygen 8508753bc9 Remove zk keygen crate (#7634) 3 months ago
zk-sdk a2ce908cfa [zk-sdk] Remove zk-sdk from the repo (#7126) 3 months ago
zk-token-sdk afb60f70a5 chore: Fix typos (#8681) 3 days ago
.codecov.yml 0b9c040fcf Add .codecov.yml with checks disabled (#30666) 2 years ago
.gitignore f75263b29d Script: `fetch-core-bpf.sh` (#4844) 8 months ago
.mergify.yml b210780a70 Update mergify config for v3.1 backport label (#8814) 3 weeks ago
CHANGELOG.md 6045e25cc0 docs: Add step to update CHANGELOG.md in RELEASE.md (#8856) 2 days ago
CONTRIBUTING.md 962f17ee6f Update docs that reference Solana Labs in roles that have been taken over by Anza (#9219) 10 hours ago
Cargo.lock 934ede0829 chore(deps): bump rustls from 0.23.34 to 0.23.35 (#9206) 20 hours ago
Cargo.toml 934ede0829 chore(deps): bump rustls from 0.23.34 to 0.23.35 (#9206) 20 hours ago
LICENSE c65605802a Correct LICENSE to conform with https://apache.org/licenses/LICENSE-2.0 (#31860) 2 years ago
README.md b4ed07a719 Fixup status badges in README.md (#8222) 1 month ago
RELEASE.md 6045e25cc0 docs: Add step to update CHANGELOG.md in RELEASE.md (#8856) 2 days ago
SECURITY.md 34d8b55d4a Update security instructions for SPL programs (#8253) 1 month ago
cargo 2018618765 Modify buildscripts to work with offline builds (e.g. nix builds) (#7811) 1 month ago
cargo-build-sbf 92687e91ed BPF Loader: Hoist syscalls into their own crate (#5559) 3 months ago
cargo-test-sbf f9f73a952a sdk: Move out things that won't be in the sdk (#4624) 9 months ago
clippy.toml c3509de5be Replace lazy_static dependency (#6057) 6 months ago
fetch-core-bpf.sh ef6d141079 fetch-core-bpf: Add "v" to release name (#8195) 1 month ago
fetch-perf-libs.sh 2018618765 Modify buildscripts to work with offline builds (e.g. nix builds) (#7811) 1 month ago
fetch-programs.sh f75263b29d Script: `fetch-core-bpf.sh` (#4844) 8 months ago
fetch-spl.sh 597947830a spl: Update to newest token-2022 binary on mainnet (#5628) 7 months ago
rust-toolchain.toml 8fc6bff2d3 Update Rust to 1.90.0 (#8962) 1 week ago
rustfmt.toml 6d171f4da5 Apply cargo fmt string formatting to rest of repo (#7893) 2 months ago
vercel.json 1c36af158f removing the "autoJobCancelation": false 4 years ago

README.md

Anza

Agave validator Agave documentation Build status Release status codecov

Building

1. Install rustc, cargo and rustfmt.

$ curl https://sh.rustup.rs -sSf | sh
$ source $HOME/.cargo/env
$ rustup component add rustfmt

The rust-toolchain.toml file pins a specific rust version and ensures that cargo commands run with that version. Note that cargo will automatically install the correct version if it is not already installed.

On Linux systems you may need to install libssl-dev, pkg-config, zlib1g-dev, protobuf etc.

On Ubuntu:

$ sudo apt-get update
$ sudo apt-get install libssl-dev libudev-dev pkg-config zlib1g-dev llvm clang cmake make libprotobuf-dev protobuf-compiler libclang-dev

On Fedora:

$ sudo dnf install openssl-devel systemd-devel pkg-config zlib-devel llvm clang cmake make protobuf-devel protobuf-compiler perl-core libclang-dev

2. Download the source code.

$ git clone https://github.com/anza-xyz/agave.git
$ cd agave

3. Build.

$ ./cargo build

[!NOTE] Note that this builds a debug version that is not suitable for running a testnet or mainnet validator. Please read docs/src/cli/install.md for instructions to build a release version for test and production uses.

Testing

Run the test suite:

$ ./cargo test

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

Benchmarking

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

Run the benchmarks:

$ cargo +nightly bench

Release Process

The release process for this project is described here.

Code coverage

To generate code coverage statistics:

$ scripts/coverage.sh
$ open target/cov/lcov-local/index.html

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!