No Description

Wen 28c8acc544 (Alpenglow) Add Alpenglow mode in genesis. (#8482) 3 weeks 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 d9638e0151 Reapply "build: move dcou-dependent bins to their own workspace (#8403)" (#8646) (#8657) 4 weeks ago
.github fccef82a12 build(deps): bump actions/download-artifact from 4 to 6 (#8696) 3 weeks 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 5af914802e Move solana-logger back to agave as agave-logger (#8622) 3 weeks ago
accounts-db a6131a57f4 Breaks loop early in AppendVec::scan_accounts_stored_meta() (#8707) 3 weeks ago
banking-bench 5af914802e Move solana-logger back to agave as agave-logger (#8622) 3 weeks 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 0adb875291 ibrl: remove tpu coalesce (#8356) 3 weeks ago
bench-tps 5af914802e Move solana-logger back to agave as agave-logger (#8622) 3 weeks ago
bench-vote f2ec733e1a Support simple QOS -- with QOS trait refactoring (#8437) 3 weeks ago
bloom 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
bucket_map 5af914802e Move solana-logger back to agave as agave-logger (#8622) 3 weeks ago
builtins 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
builtins-default-costs 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
cargo-registry 5af914802e Move solana-logger back to agave as agave-logger (#8622) 3 weeks ago
ci 88e1fa867a ci: add workspace key to xtask (#8717) 3 weeks ago
clap-utils 28c8acc544 (Alpenglow) Add Alpenglow mode in genesis. (#8482) 3 weeks ago
clap-v3-utils 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
cli 5af914802e Move solana-logger back to agave as agave-logger (#8622) 3 weeks ago
cli-config 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
cli-output 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
client 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
client-test 5af914802e Move solana-logger back to agave as agave-logger (#8622) 3 weeks ago
compute-budget f12e46b798 SIMD-0339: Increase CPI Account Infos Limit (#8513) 3 weeks ago
compute-budget-instruction 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
connection-cache 5af914802e Move solana-logger back to agave as agave-logger (#8622) 3 weeks ago
core acced30f4f feat(scheduler-bindings): ExternalWorker skeleton loop (#8703) 3 weeks ago
cost-model 5af914802e Move solana-logger back to agave as agave-logger (#8622) 3 weeks ago
curves 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
dev-bins 28c8acc544 (Alpenglow) Add Alpenglow mode in genesis. (#8482) 3 weeks ago
docker-solana e19a786c83 docs: fix docker link (#6180) 6 months ago
docs e5f99a1bdc docs: fixed broken links (#8450) 1 month ago
dos 5af914802e Move solana-logger back to agave as agave-logger (#8622) 3 weeks ago
download-utils e43984b534 Move path related functions to agave-snapshots (#8610) 3 weeks ago
entry 5af914802e Move solana-logger back to agave as agave-logger (#8622) 3 weeks ago
faucet 5af914802e Move solana-logger back to agave as agave-logger (#8622) 3 weeks ago
feature-set f12e46b798 SIMD-0339: Increase CPI Account Infos Limit (#8513) 3 weeks ago
fee 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
fs 5c05d521c2 Introduce agave-fs crate, move file_io and filesystem ops there (#8654) 3 weeks ago
genesis 28c8acc544 (Alpenglow) Add Alpenglow mode in genesis. (#8482) 3 weeks ago
genesis-utils 0af564a66f Move genesis related helpers from agave-snapshots to solana_genesis_utils (#8658) 3 weeks ago
geyser-plugin-interface 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
geyser-plugin-manager 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
gossip 674bc91007 Gossip: wrapping add on epoch_slot_index (#8713) 3 weeks ago
install 5af914802e Move solana-logger back to agave as agave-logger (#8622) 3 weeks ago
io-uring 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
keygen 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
lattice-hash 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
ledger e65003def4 Move snapshot_archive_info to agave-snapshots (#8721) 3 weeks ago
ledger-tool e65003def4 Move snapshot_archive_info to agave-snapshots (#8721) 3 weeks ago
local-cluster f518ca0f73 slow partition tests (#8673) 3 weeks ago
logger 8d1b74edf6 logger: Update functions to take PathBuf/Path (#8726) 3 weeks ago
measure 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
merkle-tree 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
metrics 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
multinode-demo d9638e0151 Reapply "build: move dcou-dependent bins to their own workspace (#8403)" (#8646) (#8657) 4 weeks ago
net 2018618765 Modify buildscripts to work with offline builds (e.g. nix builds) (#7811) 1 month ago
net-utils 5af914802e Move solana-logger back to agave as agave-logger (#8622) 3 weeks ago
notifier 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
perf 5af914802e Move solana-logger back to agave as agave-logger (#8622) 3 weeks ago
platform-tools-sdk 5af914802e Move solana-logger back to agave as agave-logger (#8622) 3 weeks ago
poh 5af914802e Move solana-logger back to agave as agave-logger (#8622) 3 weeks ago
poh-bench 5af914802e Move solana-logger back to agave as agave-logger (#8622) 3 weeks ago
poseidon 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month 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 f12e46b798 SIMD-0339: Increase CPI Account Infos Limit (#8513) 3 weeks ago
program-test f12e46b798 SIMD-0339: Increase CPI Account Infos Limit (#8513) 3 weeks ago
programs 28c8acc544 (Alpenglow) Add Alpenglow mode in genesis. (#8482) 3 weeks ago
pubsub-client 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
quic-client f2ec733e1a Support simple QOS -- with QOS trait refactoring (#8437) 3 weeks ago
rayon-threadlimit 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
rbpf-cli 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
remote-wallet 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
reserved-account-keys 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
rpc e65003def4 Move snapshot_archive_info to agave-snapshots (#8721) 3 weeks ago
rpc-client 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
rpc-client-api 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
rpc-client-nonce-utils 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
rpc-client-types 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
rpc-test 5af914802e Move solana-logger back to agave as agave-logger (#8622) 3 weeks ago
runtime f12e46b798 SIMD-0339: Increase CPI Account Infos Limit (#8513) 3 weeks ago
runtime-transaction 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
scheduler-bindings acced30f4f feat(scheduler-bindings): ExternalWorker skeleton loop (#8703) 3 weeks ago
scheduling-utils 04f8e0a6e3 feat(schduling-utils): client & server handshake implementations (#8572) 4 weeks ago
scripts c159770f1d Add agave-xdp-ebpf (#8690) 3 weeks 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 e65003def4 Move snapshot_archive_info to agave-snapshots (#8721) 3 weeks ago
stake-accounts 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
storage-bigtable 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
storage-proto 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
streamer 217ff3cd72 Streamer: cleanup API after QoS refactoring (#8724) 3 weeks ago
svm 5af914802e Move solana-logger back to agave as agave-logger (#8622) 3 weeks ago
svm-callback 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
svm-feature-set f12e46b798 SIMD-0339: Increase CPI Account Infos Limit (#8513) 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 f12e46b798 SIMD-0339: Increase CPI Account Infos Limit (#8513) 3 weeks ago
svm-timings 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
svm-transaction 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
svm-type-overrides 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
syscalls ad9286451d Refactor - Move `ProgramCache::environments` to `TransactionBatchProcessor` (#8471) 4 weeks ago
test-validator f12e46b798 SIMD-0339: Increase CPI Account Infos Limit (#8513) 3 weeks 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 5af914802e Move solana-logger back to agave as agave-logger (#8622) 3 weeks ago
tps-client 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
tpu-client 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
tpu-client-next f2ec733e1a Support simple QOS -- with QOS trait refactoring (#8437) 3 weeks ago
transaction-context 1dc7e0af5f Introduce new account layout for program-runtime (#8372) 4 weeks ago
transaction-dos 5af914802e Move solana-logger back to agave as agave-logger (#8622) 3 weeks ago
transaction-metrics-tracker 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
transaction-status 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
transaction-status-client-types 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
transaction-view 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
turbine c159770f1d Add agave-xdp-ebpf (#8690) 3 weeks ago
udp-client 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
unified-scheduler-logic 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
unified-scheduler-pool 5af914802e Move solana-logger back to agave as agave-logger (#8622) 3 weeks ago
validator 8d1b74edf6 logger: Update functions to take PathBuf/Path (#8726) 3 weeks ago
verified-packet-receiver 0adb875291 ibrl: remove tpu coalesce (#8356) 3 weeks ago
version 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month ago
vortexor 8d1b74edf6 logger: Update functions to take PathBuf/Path (#8726) 3 weeks ago
vote 5af914802e Move solana-logger back to agave as agave-logger (#8622) 3 weeks ago
votor d070b3cf4e refactor: do not derive `Copy` on `VoteMessage` (#8691) 3 weeks ago
votor-messages d070b3cf4e refactor: do not derive `Copy` on `VoteMessage` (#8691) 3 weeks ago
watchtower 5af914802e Move solana-logger back to agave as agave-logger (#8622) 3 weeks ago
web3.js 18c22c7cef Add link to new web3.js repo (#30096) 2 years ago
wen-restart e65003def4 Move snapshot_archive_info to agave-snapshots (#8721) 3 weeks ago
xdp c159770f1d Add agave-xdp-ebpf (#8690) 3 weeks ago
xdp-ebpf c159770f1d Add agave-xdp-ebpf (#8690) 3 weeks 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 22faf53e8f introduce `agave-unstable-api` throughout the monorepo (#8424) 1 month 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 8508753bc9 Remove zk keygen crate (#7634) 3 months ago
CHANGELOG.md 9aa48d9540 Add capabilities requirement to changelog (#8730) 3 weeks ago
CONTRIBUTING.md 8650813f1b Add a first time contributors section to CONTRIBUTING.md (#7818) 1 month ago
Cargo.lock 28c8acc544 (Alpenglow) Add Alpenglow mode in genesis. (#8482) 3 weeks ago
Cargo.toml c159770f1d Add agave-xdp-ebpf (#8690) 3 weeks 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 d060c30b5e Update RELEASE.md (#1901) 1 year 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 b3fca5dd51 Downgrade Rust to 1.86.0 (#6980) 4 months 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!