暂无描述

mergify[bot] 4a70bc1e00 v1.17: add ca-certificates to docker image (backport of #1443) (#1444) 1 年之前
.buildkite 99e83102d1 v1.17: ci: add the ability to use GCS backend for sccache (backport of #33967) (#33984) 2 年之前
.github e9a0a1c9df v1.17: remove releng from CODEOWNERS (#1367) 1 年之前
account-decoder bbdce0f273 v1.17: spl: Bump token-2022 to v1 (backport of #34412) (#34572) 1 年之前
accounts-bench 9e703f85de Upgrades Rust to 1.72.0 & nightly-2023-08-25 (#32961) 2 年之前
accounts-cluster-bench af153cba40 v1.17: [anza migration]: add 'agave=info' to default log level (backport of #223) (#242) 1 年之前
accounts-db 1390ec9ec0 v1.17: Adds more info to panic message in AccountsHashVerifier (backport of #35353) (#35358) 1 年之前
banking-bench 22f44d0518 v1.17: Initialize fork graph in program cache during bank_forks creation (backport of #33810) (#33817) 2 年之前
banks-client 22f44d0518 v1.17: Initialize fork graph in program cache during bank_forks creation (backport of #33810) (#33817) 2 年之前
banks-interface 936d2cf3c2 banks-client: Add `get_fee_for_message` (#31703) 2 年之前
banks-server 9e703f85de Upgrades Rust to 1.72.0 & nightly-2023-08-25 (#32961) 2 年之前
bench-streamer 6a46c0128b v1.17: BankingStage Forwarding Filter (backport of #685) (#696) 1 年之前
bench-tps af153cba40 v1.17: [anza migration]: add 'agave=info' to default log level (backport of #223) (#242) 1 年之前
bloom 150a798d32 Fix - Upcoming `arithmetic_side_effects` lints (#33000) 2 年之前
bucket_map e088eb2be0 Code clean up (#33417) 2 年之前
cd e48456dbbc Create continuous delivery directory and add readme with canary details. (#27683) 3 年之前
ci 254eccdb41 v1.17: ci: don't self-update rustup when using the rust-version script (backport of #1209) (#1214) 1 年之前
clap-utils 4ec5ea6f7b replaces assert!(matches!(...)) with assert_matches!(...) (#33068) 2 年之前
clap-v3-utils ec36369e47 [clap-v3-utils] Deprecate input validators and add parsers to replace them (#33276) 2 年之前
cli 353aa6423f v1.17: CLI remove unwrap_or_default() on rpc calls (backport of #33782) (#34051) 2 年之前
cli-config df3ef111f7 chore: workspace inheritance (#29893) 2 年之前
cli-output 3b1cbaec72 Add csv output option to stake and vote account rewards (#32360) 2 年之前
client a7cfe9b86e v1.17: Parameterize max streams per ms (backport of #707) (#1105) 1 年之前
client-test bfab9bb3ae v1.17: Use program cache fork graph in extract() (backport of #33806) (#33862) 2 年之前
connection-cache 3fbfa0e0da Simplify code and use match to harden logic (#33409) 2 年之前
core f96f10c95e v1.17 - Add detailed metrics reporting for packet filtering (#1422) 1 年之前
cost-model 2332aee4a2 v1.17: add precompile signature metrics to cost tracker (backport of #133) (#142) 1 年之前
docs 8155a8cc4d v1.17: [anza migration] rename crates 1 年之前
dos af153cba40 v1.17: [anza migration]: add 'agave=info' to default log level (backport of #223) (#242) 1 年之前
download-utils 9e703f85de Upgrades Rust to 1.72.0 & nightly-2023-08-25 (#32961) 2 年之前
entry 528a03f32a removes outdated matches crate from dependencies (#33172) 2 年之前
faucet af153cba40 v1.17: [anza migration]: add 'agave=info' to default log level (backport of #223) (#242) 1 年之前
frozen-abi 8af823401a v1.17: Enable frozen_abi on banking trace file (backport of #33501) (#33578) 2 年之前
genesis 16ea141402 sdk: put AccountSharedData::set_data() behind feature="dev-context-only-utils" (#33086) 2 年之前
genesis-utils f4287d70bb Move accounts-db code to its own crate (#32766) 2 年之前
geyser-plugin-interface 8155a8cc4d v1.17: [anza migration] rename crates 1 年之前
geyser-plugin-manager 0ef1f6513a v1.17: Display error message while loading geyser plugins (#33990) (#97) 1 年之前
gossip 6a46c0128b v1.17: BankingStage Forwarding Filter (backport of #685) (#696) 1 年之前
install 8155a8cc4d v1.17: [anza migration] rename crates 1 年之前
keygen ec36369e47 [clap-v3-utils] Deprecate input validators and add parsers to replace them (#33276) 2 年之前
ledger d06a0a4632 v1.17: blockstore: relax parent slot meta check for clear_unconfirmed_slot (#67) 1 年之前
ledger-tool af153cba40 v1.17: [anza migration]: add 'agave=info' to default log level (backport of #223) (#242) 1 年之前
local-cluster be83469a1b v1.17: default staked client in LocalCluster (backport of #716) (#723) 1 年之前
log-analyzer 9e703f85de Upgrades Rust to 1.72.0 & nightly-2023-08-25 (#32961) 2 年之前
logger af153cba40 v1.17: [anza migration]: add 'agave=info' to default log level (backport of #223) (#242) 1 年之前
measure 9e703f85de Upgrades Rust to 1.72.0 & nightly-2023-08-25 (#32961) 2 年之前
memory-management 9e703f85de Upgrades Rust to 1.72.0 & nightly-2023-08-25 (#32961) 2 年之前
merkle-root-bench f4287d70bb Move accounts-db code to its own crate (#32766) 2 年之前
merkle-tree 528a03f32a removes outdated matches crate from dependencies (#33172) 2 年之前
metrics 9e703f85de Upgrades Rust to 1.72.0 & nightly-2023-08-25 (#32961) 2 年之前
multinode-demo 6234bc9432 [anza migration] v1.17: Use agave prefix in scripts for pre-installed binaries (backport of #155) (#349) 1 年之前
net 11d4156589 v1.17: [anza migration]: fix download link for net scripts (backport of #219) (#351) 1 年之前
net-shaper 9e703f85de Upgrades Rust to 1.72.0 & nightly-2023-08-25 (#32961) 2 年之前
net-utils 9e703f85de Upgrades Rust to 1.72.0 & nightly-2023-08-25 (#32961) 2 年之前
notifier 8155a8cc4d v1.17: [anza migration] rename crates 1 年之前
perf 8af823401a v1.17: Enable frozen_abi on banking trace file (backport of #33501) (#33578) 2 年之前
poh 528a03f32a removes outdated matches crate from dependencies (#33172) 2 年之前
poh-bench 9e703f85de Upgrades Rust to 1.72.0 & nightly-2023-08-25 (#32961) 2 年之前
program-runtime 77daab497d v1.17 - Adds error log for replacements in ProgramCache::assign_program(). (#1400) 1 年之前
program-test bbdce0f273 v1.17: spl: Bump token-2022 to v1 (backport of #34412) (#34572) 1 年之前
programs 063959c8ad Bump version to v1.17.35 (#1425) 1 年之前
pubsub-client 8155a8cc4d v1.17: [anza migration] rename crates 1 年之前
quic-client a7cfe9b86e v1.17: Parameterize max streams per ms (backport of #707) (#1105) 1 年之前
rayon-threadlimit df3ef111f7 chore: workspace inheritance (#29893) 2 年之前
rbpf-cli 8155a8cc4d v1.17: [anza migration] rename crates 1 年之前
remote-wallet 9e703f85de Upgrades Rust to 1.72.0 & nightly-2023-08-25 (#32961) 2 年之前
rpc 8155a8cc4d v1.17: [anza migration] rename crates 1 年之前
rpc-client 0e2bded0f6 v1.17: Allow to create HTTP Sender with custom Client (backport of #33580) (#33660) 2 年之前
rpc-client-api 9e703f85de Upgrades Rust to 1.72.0 & nightly-2023-08-25 (#32961) 2 年之前
rpc-client-nonce-utils df3ef111f7 chore: workspace inheritance (#29893) 2 年之前
rpc-test 9281ab7d97 separates out connection-cache metrics for different protocols (#31803) 2 年之前
runtime 77daab497d v1.17 - Adds error log for replacements in ProgramCache::assign_program(). (#1400) 1 年之前
scripts 11d4156589 v1.17: [anza migration]: fix download link for net scripts (backport of #219) (#351) 1 年之前
sdk 4a70bc1e00 v1.17: add ca-certificates to docker image (backport of #1443) (#1444) 1 年之前
send-transaction-service adc63fb3c0 v1.17: rpc-sts: add config options for stake-weighted qos (backport of #197) (#340) 1 年之前
stake-accounts 9e703f85de Upgrades Rust to 1.72.0 & nightly-2023-08-25 (#32961) 2 年之前
storage-bigtable 07acb46b6f v1.17: Bigtable: update google proto files and allow configuration of max_message_size (backport of #34740) (#34741) 1 年之前
storage-proto 1840fd7ab3 Feature - better error codes for tx lamport check (#33343) 2 年之前
streamer 58916d9192 Backport connection stream counter to v1.17 (#991) 1 年之前
system-test 8155a8cc4d v1.17: [anza migration] rename crates 1 年之前
test-validator 72706d6601 test validator write stake account to JSON (#33014) 2 年之前
thin-client 344e466e12 Async connection creation in connection cache (#33302) 2 年之前
tokens 01306a6e1e v1.17: tokens: fix url clap arg name (backport of #34371) (#34375) 1 年之前
tpu-client 01c02f2f57 v1.17: Change DEFAULT_TPU_CONNECTION_POOL_SIZE to 1 (backport of #1014) (#1042) 1 年之前
transaction-dos af153cba40 v1.17: [anza migration]: add 'agave=info' to default log level (backport of #223) (#242) 1 年之前
transaction-status bbdce0f273 v1.17: spl: Bump token-2022 to v1 (backport of #34412) (#34572) 1 年之前
turbine b9aaedba6a v1.17: Add feature flag for LastIndex and Erasure duplicate proofs (backport of #34360) (#34541) 1 年之前
udp-client 344e466e12 Async connection creation in connection cache (#33302) 2 年之前
upload-perf df3ef111f7 chore: workspace inheritance (#29893) 2 年之前
validator adc63fb3c0 v1.17: rpc-sts: add config options for stake-weighted qos (backport of #197) (#340) 1 年之前
version 3809dc069a v1.17: [anza migration] Sets client id to Agave (backport of #163) (#205) 1 年之前
vote 4488cc241f Cleanup cargo deps in vote crate (#33407) 2 年之前
watchtower af153cba40 v1.17: [anza migration]: add 'agave=info' to default log level (backport of #223) (#242) 1 年之前
web3.js 18c22c7cef Add link to new web3.js repo (#30096) 2 年之前
zk-keygen 1452ed7044 [zk-token-sdk] Make `ElGamalKeypair` fields private (#32190) 2 年之前
zk-token-sdk 509b9b970b v1.17: [zk-token-sdk] Fix range proof transcript seed typo (backport of #34468) (#34470) 1 年之前
.clippy.toml 30f0c25b65 Fix all remaining clippy warnings 7 年之前
.codecov.yml 0b9c040fcf Add .codecov.yml with checks disabled (#30666) 2 年之前
.gitignore b36791956e Ingest duplicate proofs sent through Gossip (#29227) 2 年之前
.mergify.yml 3cc220cb62 v1.17: [anza migration] backport of #6, #8, #9 (#13) 1 年之前
CHANGELOG.md 8b2c1a547d v1.17: changelog: Adds --use-snapshot-archives-at-startup to v1.17.0 (backport of #34401) (#34438) 1 年之前
CONTRIBUTING.md 51b2b2d745 docs(contributing): fix syntax highlighting (#32928) 2 年之前
Cargo.lock 063959c8ad Bump version to v1.17.35 (#1425) 1 年之前
Cargo.toml 063959c8ad Bump version to v1.17.35 (#1425) 1 年之前
LICENSE c65605802a Correct LICENSE to conform with https://apache.org/licenses/LICENSE-2.0 (#31860) 2 年之前
README.md 326bd2435c v1.17: [anza migration] ci (backport of #5) (#11) 1 年之前
RELEASE.md 96d57e88dd v1.17: CI: add check for explicit spl-token-cli version (backport of #34430) (#34465) 1 年之前
SECURITY.md 18f321525a Update SECURITY.md (#33198) 2 年之前
cargo 6cd4bc5e60 Speed up net.sh builds (#16360) 4 年之前
cargo-build-bpf 49f4e2ae05 replace ./cargo with cargo in sbf/bpf build scripts (#29371) 2 年之前
cargo-build-sbf 49f4e2ae05 replace ./cargo with cargo in sbf/bpf build scripts (#29371) 2 年之前
cargo-test-bpf 49f4e2ae05 replace ./cargo with cargo in sbf/bpf build scripts (#29371) 2 年之前
cargo-test-sbf 49f4e2ae05 replace ./cargo with cargo in sbf/bpf build scripts (#29371) 2 年之前
fetch-perf-libs.sh 9393dce1ff Take v0.19.3 of perf libs which improves sigverify perf 2x (#11894) 5 年之前
fetch-spl.sh de38b05ad1 spl: Bump token-2022 and friends (#33453) 2 年之前
nextest.toml d4946ddfaa ci: move solana-cargo-build-sbf to nextest (#33257) 2 年之前
run.sh 5d11227088 Mark *.sh files with `#!` as executable (#33303) 2 年之前
rust-toolchain.toml 3cdee9bb83 v1.17: Upgrades Rust to 1.73.0 (backport of #33546) (#33563) 2 年之前
rustfmt.toml 70ebab2c82 Add rustfmt.toml and `cargo fmt` (#23238) 3 年之前
test-abi.sh a4956844bd Update frozen_abi hashes 5 年之前
vercel.json 1c36af158f removing the "autoJobCancelation": false 4 年之前

README.md

Solana

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

When building the master branch, please make sure you are using the latest stable rust version by running:

$ rustup update

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.

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

On Fedora:

$ 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 https://github.com/solana-labs/solana.git
$ cd solana

3. Build.

$ ./cargo build

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!