暂无描述

Alex Pyattaev cc3f387437 new token bucket impl (#6893) 2 月之前
.buildkite d676f0e110 ci: improve step descriptions (#6664) 4 月之前
.cargo be73302abd force x86_64-v2 cpu for linux builds (fixup for #5674) (#5891) 7 月之前
.config 8c11ea8039 force gossip_ring test to run alone in ci (#7872) 2 月之前
.github 17ec6191cf ci: use node 24 (#7229) 2 月之前
account-decoder 44924ba782 Reapply "deps: Bump all sdk and spl crates to v3 compatibility (#7492… (#7592) 3 月之前
account-decoder-client-types 103fb21d00 ci: use cargo sort v2 (#6406) 5 月之前
accounts-cluster-bench cb0d00e9d8 resolve issue with local faucet overlapping ports in tests / new api (#7909) 2 月之前
accounts-db 7c6a2d8ea9 Optimize update_index to avoid vec copies (#7624) 2 月之前
banking-bench 2c027cab65 PohController (#7703) 2 月之前
banking-stage-ingress-types 6b6a03ba8b Apply cleanups to solana-core for unified scheduler (#4123) 10 月之前
banks-client 44924ba782 Reapply "deps: Bump all sdk and spl crates to v3 compatibility (#7492… (#7592) 3 月之前
banks-interface 103fb21d00 ci: use cargo sort v2 (#6406) 5 月之前
banks-server 0da231c1d4 Simulate transaction with balances (#6750) 3 月之前
bench-streamer 2d1b481f0a chore: Use jemalloc in all bench crates and modules (#5053) 4 月之前
bench-tps e2071ff7a8 clean: remove unused genesis native processors config (#7989) 2 月之前
bench-vote 6d171f4da5 Apply cargo fmt string formatting to rest of repo (#7893) 2 月之前
bloom 7db66d550d bloom: move benchmarks to bencher 0.1.5 (#6044) 4 月之前
bucket_map 680bb320e6 Consistently use SlotList in AccountsIndex APIs (#8002) 2 月之前
builtins eec3878cef remove stake program builtin (#7203) 3 月之前
builtins-default-costs eec3878cef remove stake program builtin (#7203) 3 月之前
cargo-registry 31cd4ef859 cargo-registry: Resolve Rust 1.88 clippy lints and format strings (#7002) 4 月之前
cd e48456dbbc Create continuous delivery directory and add readme with canary details. (#27683) 3 年之前
ci 4fc75e028c build: update publish-tarball.sh script (#8110) 2 月之前
clap-utils f1e55d7d94 revert 7849 (#7882) 2 月之前
clap-v3-utils f1e55d7d94 revert 7849 (#7882) 2 月之前
cli d62b6e07ae chore: Make workspace members inherit crate description (#8071) 2 月之前
cli-config d62b6e07ae chore: Make workspace members inherit crate description (#8071) 2 月之前
cli-output d62b6e07ae chore: Make workspace members inherit crate description (#8071) 2 月之前
client 1d17220054 Avoid port collision in test using ConnectionCache for QUIC (#7815) 2 月之前
client-test 44924ba782 Reapply "deps: Bump all sdk and spl crates to v3 compatibility (#7492… (#7592) 3 月之前
compute-budget 3e6288efb1 simd-0268: rename variables to use the right simd number (#7753) 2 月之前
compute-budget-instruction eec3878cef remove stake program builtin (#7203) 3 月之前
connection-cache 1e27642f93 refactor: use `Arc` to eliminate potentially expensive cloning (#7638) 2 月之前
core 8b734e5a6a Hold certain retryable transactions until next slot (#6864) 2 月之前
cost-model f4598b1256 CostTracker: Add a getter to expose cost by writable accounts (#7920) 2 月之前
curves 103fb21d00 ci: use cargo sort v2 (#6406) 5 月之前
docker-solana e19a786c83 docs: fix docker link (#6180) 6 月之前
docs f9294b161b Update link in docs to offchain message spec (#7982) 2 月之前
dos e2071ff7a8 clean: remove unused genesis native processors config (#7989) 2 月之前
download-utils fd07ce286a Finish clippy uninlined_format_args cleanup (#7825) 2 月之前
entry 2746dd239a Poh: RecordSummary (#7859) 2 月之前
faucet fd1c7aa72b faucet: deprecate run_local_faucet and run_local_faucet_with_port (#7912) 2 月之前
feature-set 9fc9e923a8 Feature - Rekeys `stricter_abi_and_runtime_constraints` (#7995) 2 月之前
fee 1e11ee2b96 pub calculate_signature_fee (#7232) 3 月之前
genesis 954e7af7aa vote state handler: port over vote-program-specific methods from vote-interface (#8017) 2 月之前
genesis-utils fd07ce286a Finish clippy uninlined_format_args cleanup (#7825) 2 月之前
geyser-plugin-interface 9052722a5e Revert "geyser: add ReplicaBlockInfoV5 with accounts lt hash (#7756)" (#7966) 2 月之前
geyser-plugin-manager 9052722a5e Revert "geyser: add ReplicaBlockInfoV5 with accounts lt hash (#7756)" (#7966) 2 月之前
gossip d62b6e07ae chore: Make workspace members inherit crate description (#8071) 2 月之前
install 6d171f4da5 Apply cargo fmt string formatting to rest of repo (#7893) 2 月之前
io-uring cd6d2cdeaa Add clippy rule to deny uninlined-format-args (#7826) 2 月之前
keygen fd07ce286a Finish clippy uninlined_format_args cleanup (#7825) 2 月之前
lattice-hash 51a114eeca add missing description for solana-lattice-hash (#3358) 1 年之前
ledger 78d10cc66b ledger: shredder prepare for removing unchained (#7881) 2 月之前
ledger-tool 954e7af7aa vote state handler: port over vote-program-specific methods from vote-interface (#8017) 2 月之前
local-cluster d62b6e07ae chore: Make workspace members inherit crate description (#8071) 2 月之前
low-pass-filter b52fe73afc Change to agave-low-pass-filter and publish (#7577) 3 月之前
measure d62b6e07ae chore: Make workspace members inherit crate description (#8071) 2 月之前
memory-management 076329381a Moves a clippy attribute (#194) 1 年之前
merkle-tree 103fb21d00 ci: use cargo sort v2 (#6406) 5 月之前
metrics 6d171f4da5 Apply cargo fmt string formatting to rest of repo (#7893) 2 月之前
multinode-demo 0ee477919c Remove --entrypoint from default args of bench-tps script (#7658) 3 月之前
net 5a1ad600bf remove stale integration tests that are not used (#7166) 2 月之前
net-utils cc3f387437 new token bucket impl (#6893) 2 月之前
notifier fd07ce286a Finish clippy uninlined_format_args cleanup (#7825) 2 月之前
perf cd6d2cdeaa Add clippy rule to deny uninlined-format-args (#7826) 2 月之前
platform-tools-sdk cfc4cdc211 Enable feature `rustls-tls-native-roots` for `reqwest` (#7697) 2 月之前
poh 302ff5ecf0 Revert "poh recording performance improvement (anza-xyz#7898)" (#8031) 2 月之前
poh-bench 94c3c84771 rayon-threadlimit: Deprecate get_max_thread_count() (#7071) 4 月之前
poseidon 103fb21d00 ci: use cargo sort v2 (#6406) 5 月之前
precompiles 44924ba782 Reapply "deps: Bump all sdk and spl crates to v3 compatibility (#7492… (#7592) 3 月之前
program-binaries eec3878cef remove stake program builtin (#7203) 3 月之前
program-runtime 8b52ec885b program-runtime: port over remaining CPI implementation from syscalls lib (#8046) 2 月之前
program-test 6f098f1a52 vote program: handler for dynamic vote state (#7822) 2 月之前
programs cc3f387437 new token bucket impl (#6893) 2 月之前
pubsub-client 60a34ecc9c pubsub-client: Remove deprecated set_node_version (#7117) 4 月之前
quic-client 6d171f4da5 Apply cargo fmt string formatting to rest of repo (#7893) 2 月之前
rayon-threadlimit 94c3c84771 rayon-threadlimit: Deprecate get_max_thread_count() (#7071) 4 月之前
rbpf-cli 3f9a7a52ea [anza migration] rename crates (#10) 1 年之前
remote-wallet d62b6e07ae chore: Make workspace members inherit crate description (#8071) 2 月之前
reserved-account-keys 103fb21d00 ci: use cargo sort v2 (#6406) 5 月之前
rpc 1467687d23 Fix rustfmt in `rpc/src/rpc_pubsub_service.rs` (#8083) 2 月之前
rpc-client 3f25767626 fix: use proper serialization for versioned messages in get_fee_for_m… (#7719) 2 月之前
rpc-client-api 5bc175a794 rpc-client-api: reexport publicly used types (#7808) 2 月之前
rpc-client-nonce-utils 234afe489a chore: Fix several crate documentation links (#6601) 5 月之前
rpc-client-types d240fe57dd rpc-client-types: re-export types used in public API and switch to solana-address (#7737) 2 月之前
rpc-test 1d17220054 Avoid port collision in test using ConnectionCache for QUIC (#7815) 2 月之前
runtime 1432ddcfb1 Add create_v4_account_with_authorized and actually populate bls_pubkey_to_rank_map in EpochStakes. (#8103) 2 月之前
runtime-transaction 103fb21d00 ci: use cargo sort v2 (#6406) 5 月之前
scripts 27c691cbd6 build: update cargo-install-all.sh script (#8059) 2 月之前
sdk d221ad4091 sdk: Remove everything from the repo (#4867) 9 月之前
send-transaction-service 279f1eed10 agave-validator: add args tests for run (part 6) (#7620) 2 月之前
stake-accounts d62b6e07ae chore: Make workspace members inherit crate description (#8071) 2 月之前
storage-bigtable d62b6e07ae chore: Make workspace members inherit crate description (#8071) 2 月之前
storage-proto 44924ba782 Reapply "deps: Bump all sdk and spl crates to v3 compatibility (#7492… (#7592) 3 月之前
streamer cc3f387437 new token bucket impl (#6893) 2 月之前
svm 5b5fce30b9 Increase number of iterations in shuttle (#8027) 2 月之前
svm-callback 03def80b51 refactor: adding builtin accounts (#7900) 2 月之前
svm-feature-set d68ec6574e Make SVM crates inherit workspace version (#7654) 3 月之前
svm-log-collector 173d1361de svm repo split: rename log collector (#7430) 3 月之前
svm-measure 5cad0f1c39 svm repo split: fork measure (#7441) 3 月之前
svm-rent-calculator 6fbbaf6783 svm: Remove SVMRentCollector, use Rent directly (#6782) 3 月之前
svm-timings 87a97a3266 svm repo split: rename timings (#7432) 3 月之前
svm-transaction 44924ba782 Reapply "deps: Bump all sdk and spl crates to v3 compatibility (#7492… (#7592) 3 月之前
svm-type-overrides ed847b333d chore: apply doc-comment to the module in svm-type-overrides/src/lib.rs (#7481) 3 月之前
syscalls 8b52ec885b program-runtime: port over remaining CPI implementation from syscalls lib (#8046) 2 月之前
test-validator d62b6e07ae chore: Make workspace members inherit crate description (#8071) 2 月之前
thread-manager cd6d2cdeaa Add clippy rule to deny uninlined-format-args (#7826) 2 月之前
tls-utils 44924ba782 Reapply "deps: Bump all sdk and spl crates to v3 compatibility (#7492… (#7592) 3 月之前
tokens d62b6e07ae chore: Make workspace members inherit crate description (#8071) 2 月之前
tps-client d62b6e07ae chore: Make workspace members inherit crate description (#8071) 2 月之前
tpu-client 6d171f4da5 Apply cargo fmt string formatting to rest of repo (#7893) 2 月之前
tpu-client-next a253e03bf8 tpu-client-next: check if worker is active when ensuring it's presence in cache (#8009) 2 月之前
transaction-context 8ff0febacc Implement set_top_level_instruction_index (#7845) 2 月之前
transaction-dos fd07ce286a Finish clippy uninlined_format_args cleanup (#7825) 2 月之前
transaction-metrics-tracker 2a2f6b976d chore: typo fixes (#7303) 3 月之前
transaction-status 6f098f1a52 vote program: handler for dynamic vote state (#7822) 2 月之前
transaction-status-client-types 64382a56ec rpc: Resolve Rust 1.88 clippy lints and format strings (#7047) 4 月之前
transaction-view cd6d2cdeaa Add clippy rule to deny uninlined-format-args (#7826) 2 月之前
turbine d62b6e07ae chore: Make workspace members inherit crate description (#8071) 2 月之前
udp-client 1e27642f93 refactor: use `Arc` to eliminate potentially expensive cloning (#7638) 2 月之前
unified-scheduler-logic b66c365ac5 chore: typo fixes (#7254) 3 月之前
unified-scheduler-pool 302ff5ecf0 Revert "poh recording performance improvement (anza-xyz#7898)" (#8031) 2 月之前
validator ad0c19f621 validator: ditch call to old faucet test api in solana test validator (#8068) 2 月之前
verified-packet-receiver 18238bdfcb Restore vortexor receiver -- renamed to agave-verified-packet-receiver (#6542) 5 月之前
version fd07ce286a Finish clippy uninlined_format_args cleanup (#7825) 2 月之前
vortexor 2e8ddfb2cc Remove async-channel from workspace dependencies (#8010) 2 月之前
vote 876942164c build(deps): bump serde from 1.0.219 to 1.0.224 (#8052) 2 月之前
votor f74d04c789 (Alpenglow) Upstream vote_history and vote_history_storage. (#8121) 2 月之前
votor-messages 876942164c build(deps): bump serde from 1.0.219 to 1.0.224 (#8052) 2 月之前
watchtower d62b6e07ae chore: Make workspace members inherit crate description (#8071) 2 月之前
web3.js 18c22c7cef Add link to new web3.js repo (#30096) 2 年之前
wen-restart 7f4e64446c Removes AccountsDb::verify_accounts_hash_in_bg (#7839) 2 月之前
xdp 6d171f4da5 Apply cargo fmt string formatting to rest of repo (#7893) 2 月之前
zk-keygen 8508753bc9 Remove zk keygen crate (#7634) 3 月之前
zk-sdk a2ce908cfa [zk-sdk] Remove zk-sdk from the repo (#7126) 3 月之前
zk-token-sdk ad7fbe953d [zk-token-sdk] deprecate the crate (#6969) 3 月之前
.codecov.yml 0b9c040fcf Add .codecov.yml with checks disabled (#30666) 2 年之前
.gitignore f75263b29d Script: `fetch-core-bpf.sh` (#4844) 8 月之前
.mergify.yml 8508753bc9 Remove zk keygen crate (#7634) 3 月之前
CHANGELOG.md 1a5120004d validator: Deprecate --monitor flag for exit command (#7692) 2 月之前
CONTRIBUTING.md 305c98e869 Update contributing with more guidelines. (#5008) 7 月之前
Cargo.lock cc3f387437 new token bucket impl (#6893) 2 月之前
Cargo.toml 4a70cfb86a build(deps): bump proptest from 1.7.0 to 1.8.0 (#8129) 2 月之前
LICENSE c65605802a Correct LICENSE to conform with https://apache.org/licenses/LICENSE-2.0 (#31860) 2 年之前
README.md 4a35485d86 Update outdated README rust version instructions (#8095) 2 月之前
RELEASE.md d060c30b5e Update RELEASE.md (#1901) 1 年之前
SECURITY.md 5e80a7ca7b Update security email to security@anza.xyz (#2598) 1 年之前
cargo 6cd4bc5e60 Speed up net.sh builds (#16360) 4 年之前
cargo-build-sbf 92687e91ed BPF Loader: Hoist syscalls into their own crate (#5559) 3 月之前
cargo-test-sbf f9f73a952a sdk: Move out things that won't be in the sdk (#4624) 9 月之前
clippy.toml c3509de5be Replace lazy_static dependency (#6057) 6 月之前
fetch-core-bpf.sh eec3878cef remove stake program builtin (#7203) 3 月之前
fetch-perf-libs.sh 9393dce1ff Take v0.19.3 of perf libs which improves sigverify perf 2x (#11894) 5 年之前
fetch-programs.sh f75263b29d Script: `fetch-core-bpf.sh` (#4844) 8 月之前
fetch-spl.sh 597947830a spl: Update to newest token-2022 binary on mainnet (#5628) 7 月之前
rust-toolchain.toml b3fca5dd51 Downgrade Rust to 1.86.0 (#6980) 4 月之前
rustfmt.toml 6d171f4da5 Apply cargo fmt string formatting to rest of repo (#7893) 2 月之前
vercel.json 1c36af158f removing the "autoJobCancelation": false 4 年之前

README.md

Anza

Solana crate Solana documentation Build 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!