Nav apraksta

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

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!