Aucune description

github-actions[bot] e3f7e2b092 Bump version to v1.18.27 (#3144) il y a 1 an
.buildkite b55dcbbb39 ci: run bench test in docker (#33944) il y a 2 ans
.github 891a1b15b8 v1.18: Re-enable SPL downstream job with last v1.18 commit (#2143) il y a 1 an
account-decoder 7db5532e3c Revert "Support json parsing of epoch-rewards partition data sysvar accounts (#34914)" il y a 1 an
accounts-bench 4181ea4677 Removes unnecessary AccountsDb::new_with_config_for_benches() (#34484) il y a 1 an
accounts-cluster-bench 709e934d4c Add RPC bench threads to accounts-cluster-bench (#34520) il y a 1 an
accounts-db c027cfc3e0 v1.18: accounts-db: fix 8G+ memory spike during hash calculation (backport of #1308) (#1318) il y a 1 an
banking-bench b97b3dd4ab Use BankForks on tests - Part 3 (#34248) il y a 2 ans
banks-client b97b3dd4ab Use BankForks on tests - Part 3 (#34248) il y a 2 ans
banks-interface 171c58c5c0 RPC: Add inner instructions to simulate transaction response (#34313) il y a 1 an
banks-server 171c58c5c0 RPC: Add inner instructions to simulate transaction response (#34313) il y a 1 an
bench-streamer 7e9a53ee79 v1.18: BankingStage Forwarding Filter (backport of #685) (#697) il y a 1 an
bench-tps e9bc805bf6 v1.18: [anza migration]: add 'agave=info' to default log level (backport of #223) (#243) il y a 1 an
bloom 6dea5a23cf ConcurrentBloomInterval (#34486) il y a 1 an
bucket_map 03386cc7b9 Fix typos (#34459) il y a 1 an
cargo-registry e9bc805bf6 v1.18: [anza migration]: add 'agave=info' to default log level (backport of #223) (#243) il y a 1 an
cd e48456dbbc Create continuous delivery directory and add readme with canary details. (#27683) il y a 3 ans
ci 92ddaa20f9 v1.18: ci: ignore the tonic audit as a temporary stopgap (backport of #3052) (#3062) il y a 1 an
clap-utils 08082df879 clap-utils: Forbid multiple values for `--signer` (#34482) il y a 1 an
clap-v3-utils 994e81ed34 v1.18: [clap-v3-utils] Add functions to parse directly from `SignerSource` (backport of #34678) (#35384) il y a 1 an
cli d48afb827a v1.18: Deprecate RpcClient::get_stake_activation (backport of #1895) (#1924) il y a 1 an
cli-config fc2a8794be [docs] updated readme and fix links (#34565) il y a 1 an
cli-output e472400d6e fix typo in variable name and error messages (#34463) il y a 1 an
client c8e6fd0043 v1.18: cli: use newer blockhashes when deploying large programs (backport of #1070) (#1074) il y a 1 an
client-test b97b3dd4ab Use BankForks on tests - Part 3 (#34248) il y a 2 ans
connection-cache 132c910f81 Quic update identity (#33865) il y a 1 an
core e5d267d92a v1.18: blockstore: only consume duplicate proofs from root_slot + 1 on startup (backport of #1971) (#2113) il y a 1 an
cost-model 7ba2a0e9b7 v1.18: fix: set allocation size to 0 for transactions known to fail (backport of #2966) (#2988) il y a 1 an
docs 6b04e88111 v1.18: Publish Agave docs (backport of #2887) (#2921) il y a 1 an
dos e9bc805bf6 v1.18: [anza migration]: add 'agave=info' to default log level (backport of #223) (#243) il y a 1 an
download-utils b97b3dd4ab Use BankForks on tests - Part 3 (#34248) il y a 2 ans
entry 528a03f32a removes outdated matches crate from dependencies (#33172) il y a 2 ans
faucet e9bc805bf6 v1.18: [anza migration]: add 'agave=info' to default log level (backport of #223) (#243) il y a 1 an
frozen-abi b5b48eeb72 Cargo.toml: Sort dependency and feature lists (#33670) il y a 2 ans
genesis 6a369036b1 v1.18: sdk: Rederive Copy on Rent and EpochSchedule (#1744) il y a 1 an
genesis-utils f4287d70bb Move accounts-db code to its own crate (#32766) il y a 2 ans
geyser-plugin-interface 249652ea36 v1.18: [anza migration] rename crates il y a 1 an
geyser-plugin-manager 249652ea36 v1.18: [anza migration] rename crates il y a 1 an
gossip c2b350023b refreshes ContactInfo.outset before initializing validator (#3135) il y a 1 an
install 249652ea36 v1.18: [anza migration] rename crates il y a 1 an
keygen 6a9a89064b [clap-v3-utils] Deprecate signer source validation (#33802) il y a 1 an
ledger e5d267d92a v1.18: blockstore: only consume duplicate proofs from root_slot + 1 on startup (backport of #1971) (#2113) il y a 1 an
ledger-tool 0df68a979d v1.18: ledger-tool: Set initial last full snapshot slot (backport of #2314) (#2342) il y a 1 an
local-cluster 2cf46bcb93 v1.18: pads last erasure batch with empty data shreds (backport of #639) (#927) il y a 1 an
log-analyzer 9e703f85de Upgrades Rust to 1.72.0 & nightly-2023-08-25 (#32961) il y a 2 ans
logger e9bc805bf6 v1.18: [anza migration]: add 'agave=info' to default log level (backport of #223) (#243) il y a 1 an
measure 9e703f85de Upgrades Rust to 1.72.0 & nightly-2023-08-25 (#32961) il y a 2 ans
memory-management 9e703f85de Upgrades Rust to 1.72.0 & nightly-2023-08-25 (#32961) il y a 2 ans
merkle-root-bench f4287d70bb Move accounts-db code to its own crate (#32766) il y a 2 ans
merkle-tree 528a03f32a removes outdated matches crate from dependencies (#33172) il y a 2 ans
metrics 05dae592f4 Enhancements to Solana's Documentations for Better Clarity (#34386) il y a 1 an
multinode-demo 79678fd891 [anza migration] v1.18: Use agave prefix in scripts for pre-installed binaries (backport of #155) (#350) il y a 1 an
net 14dfc41318 v1.18: [anza migration]: fix download link for net scripts (backport of #219) (#352) il y a 1 an
net-shaper 9e703f85de Upgrades Rust to 1.72.0 & nightly-2023-08-25 (#32961) il y a 2 ans
net-utils 9e703f85de Upgrades Rust to 1.72.0 & nightly-2023-08-25 (#32961) il y a 2 ans
notifier 249652ea36 v1.18: [anza migration] rename crates il y a 1 an
perf 03386cc7b9 Fix typos (#34459) il y a 1 an
poh 9a0ea73900 v1.18: Remove stale poh recorder validator id (backport of #700) (#767) il y a 1 an
poh-bench 9e703f85de Upgrades Rust to 1.72.0 & nightly-2023-08-25 (#32961) il y a 2 ans
program-runtime b5f5c3cdd3 v1.18 - Adds error log for replacements in ProgramCache::assign_program(). (#1401) il y a 1 an
program-test 85f7bef66c v1.18: Revert deprecate executable feature (backport of #309) (#337) il y a 1 an
programs e3f7e2b092 Bump version to v1.18.27 (#3144) il y a 1 an
pubsub-client 249652ea36 v1.18: [anza migration] rename crates il y a 1 an
quic-client 2baa51720f v1.18: Limit max concurrent connections (backport of #851) (#926) il y a 1 an
rayon-threadlimit df3ef111f7 chore: workspace inheritance (#29893) il y a 2 ans
rbpf-cli 249652ea36 v1.18: [anza migration] rename crates il y a 1 an
remote-wallet 6a9a89064b [clap-v3-utils] Deprecate signer source validation (#33802) il y a 1 an
rpc 03c869ccdf v1.18: RPC: rewards, return error if epoch_boundary_block is a lie (backport of #2758) (#2781) il y a 1 an
rpc-client 11e166f0c9 v1.18: rpc: add more services to getClusterNodes (backport of #1637) (#2164) il y a 1 an
rpc-client-api 03c869ccdf v1.18: RPC: rewards, return error if epoch_boundary_block is a lie (backport of #2758) (#2781) il y a 1 an
rpc-client-nonce-utils df3ef111f7 chore: workspace inheritance (#29893) il y a 2 ans
rpc-test 725ab37bf4 clippy: Replaces .get(0) with .first() (#34048) il y a 2 ans
runtime 6a369036b1 v1.18: sdk: Rederive Copy on Rent and EpochSchedule (#1744) il y a 1 an
runtime-transaction 310c7a4f9d add requested limits to static meta (#34361) il y a 1 an
scripts 73c7150bb1 Update scripts/spl-token-cli-version.sh with latest SPL Token CLI version (#1823) il y a 1 an
sdk e3f7e2b092 Bump version to v1.18.27 (#3144) il y a 1 an
send-transaction-service f629e32776 v1.18: rpc-sts: add config options for stake-weighted qos (backport of #197) (#341) il y a 1 an
stake-accounts fc53fd9ad9 explicitly sets fee rate to zero for stake-accounts tests (#34848) il y a 1 an
storage-bigtable 166be2995e Bigtable: update google proto files and allow configuration of max_message_size (#34740) il y a 1 an
storage-proto c5368a3d35 ledger-tool: read bigtable entries (#34266) il y a 2 ans
streamer 2baa51720f v1.18: Limit max concurrent connections (backport of #851) (#926) il y a 1 an
system-test 249652ea36 v1.18: [anza migration] rename crates il y a 1 an
test-validator 6a369036b1 v1.18: sdk: Rederive Copy on Rent and EpochSchedule (#1744) il y a 1 an
thin-client 344e466e12 Async connection creation in connection cache (#33302) il y a 2 ans
tokens 0a3a0165ad Documentation Improvements: Typos and Grammar Fixes (#34461) il y a 1 an
tpu-client 2d65381875 v1.18: Change DEFAULT_TPU_CONNECTION_POOL_SIZE to 1 (backport of #1014) (#1043) il y a 1 an
transaction-dos 9593d263bc v1.18: cli: Add `--use-rpc` flag to program deploy and write-buffer (backport of #928) (#992) il y a 1 an
transaction-status 8a8466cd86 spl: Bump token-2022 to v1 (#34412) il y a 1 an
turbine c2b350023b refreshes ContactInfo.outset before initializing validator (#3135) il y a 1 an
udp-client 132c910f81 Quic update identity (#33865) il y a 1 an
unified-scheduler-logic d2b5afc410 Finish unified scheduler plumbing with min impl (#34300) il y a 1 an
unified-scheduler-pool d2b5afc410 Finish unified scheduler plumbing with min impl (#34300) il y a 1 an
upload-perf df3ef111f7 chore: workspace inheritance (#29893) il y a 2 ans
validator c2b350023b refreshes ContactInfo.outset before initializing validator (#3135) il y a 1 an
version f34b6633df v1.18: [anza migration] Sets client id to Agave (backport of #163) (#206) il y a 1 an
vote ed34e4be32 v1.18: gossip: notify state machine of duplicate proofs (backport of #32963) (#35006) il y a 1 an
watchtower e9bc805bf6 v1.18: [anza migration]: add 'agave=info' to default log level (backport of #223) (#243) il y a 1 an
web3.js 18c22c7cef Add link to new web3.js repo (#30096) il y a 2 ans
wen-restart 295d610f43 We need to publish solana-wen-restart so we can publish 1.18.0 later. (#33662) il y a 2 ans
zk-keygen 6a9a89064b [clap-v3-utils] Deprecate signer source validation (#33802) il y a 1 an
zk-token-sdk e2c2029ac4 [zk-token-sdk] Restrict a single-bit of 256-bit batched range proof to 128 (#34803) il y a 1 an
.clippy.toml 30f0c25b65 Fix all remaining clippy warnings il y a 7 ans
.codecov.yml 0b9c040fcf Add .codecov.yml with checks disabled (#30666) il y a 2 ans
.gitignore a78b5203cb git: ignore all `target/` directories (#34705) il y a 1 an
.mergify.yml 005045833a v1.18: [anza migration] backport of #6, #8, #9 (#14) il y a 1 an
CHANGELOG.md 9593d263bc v1.18: cli: Add `--use-rpc` flag to program deploy and write-buffer (backport of #928) (#992) il y a 1 an
CONTRIBUTING.md fc2a8794be [docs] updated readme and fix links (#34565) il y a 1 an
Cargo.lock e3f7e2b092 Bump version to v1.18.27 (#3144) il y a 1 an
Cargo.toml e3f7e2b092 Bump version to v1.18.27 (#3144) il y a 1 an
LICENSE c65605802a Correct LICENSE to conform with https://apache.org/licenses/LICENSE-2.0 (#31860) il y a 2 ans
README.md 44559b99cf v1.18: [anza migration] ci (backport of #5) (#12) il y a 1 an
RELEASE.md e6e191f843 CI: add check for explicit spl-token-cli version (#34430) il y a 1 an
SECURITY.md 79b9999f08 Update SECURITY.md (#34800) il y a 1 an
cargo 6cd4bc5e60 Speed up net.sh builds (#16360) il y a 4 ans
cargo-build-bpf 49f4e2ae05 replace ./cargo with cargo in sbf/bpf build scripts (#29371) il y a 2 ans
cargo-build-sbf 49f4e2ae05 replace ./cargo with cargo in sbf/bpf build scripts (#29371) il y a 2 ans
cargo-test-bpf 49f4e2ae05 replace ./cargo with cargo in sbf/bpf build scripts (#29371) il y a 2 ans
cargo-test-sbf 49f4e2ae05 replace ./cargo with cargo in sbf/bpf build scripts (#29371) il y a 2 ans
fetch-perf-libs.sh 9393dce1ff Take v0.19.3 of perf libs which improves sigverify perf 2x (#11894) il y a 5 ans
fetch-spl.sh de38b05ad1 spl: Bump token-2022 and friends (#33453) il y a 2 ans
nextest.toml d4946ddfaa ci: move solana-cargo-build-sbf to nextest (#33257) il y a 2 ans
run.sh fc2a8794be [docs] updated readme and fix links (#34565) il y a 1 an
rust-toolchain.toml 26d058185e Upgrades Rust to 1.75.0 (#34607) il y a 1 an
rustfmt.toml 70ebab2c82 Add rustfmt.toml and `cargo fmt` (#23238) il y a 3 ans
test-abi.sh a4956844bd Update frozen_abi hashes il y a 5 ans
vercel.json 1c36af158f removing the "autoJobCancelation": false il y a 4 ans

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!