暫無描述

Will Hickey e48456dbbc Create continuous delivery directory and add readme with canary details. (#27683) 3 年之前
.buildkite 8c1093534e chore: only generate test result on specific branches (#27591) 3 年之前
.github 71a086863b Update 0-community.md 3 年之前
account-decoder c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
accounts-bench c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
accounts-cluster-bench c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
banking-bench c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
banks-client c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
banks-interface c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
banks-server c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
bench-streamer c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
bench-tps c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
bloom c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
bucket_map c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
cd e48456dbbc Create continuous delivery directory and add readme with canary details. (#27683) 3 年之前
ci afa2ae2986 chore: add a name for secondary trigger step (#27719) 3 年之前
clap-utils c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
clap-v3-utils c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
cli c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
cli-config c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
cli-output c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
client c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
client-test c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
core c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
docs c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
dos c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
download-utils c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
entry c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
explorer df7e99a076 Fix responsive in metaplex metadata json viewer (#27585) 3 年之前
faucet c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
frozen-abi c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
genesis c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
genesis-utils c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
geyser-plugin-interface c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
geyser-plugin-manager c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
gossip c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
install c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
keygen c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
ledger c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
ledger-tool 70c4f6ea96 Enable ledger-tool copy command to infer target_db shred storage type. (#27438) 3 年之前
local-cluster c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
log-analyzer c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
logger c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
measure c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
merkle-root-bench c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
merkle-tree c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
metrics c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
multinode-demo 7f223dc582 Added option to turn on UDP for TPU transaction and make UDP based TPU off by default (#27462) 3 年之前
net 7f223dc582 Added option to turn on UDP for TPU transaction and make UDP based TPU off by default (#27462) 3 年之前
net-shaper c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
net-utils c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
notifier c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
perf c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
poh c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
poh-bench c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
program-runtime c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
program-test c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
programs c9eac2e6a1 Restore aliasing rules in BPF loader. (#27752) 3 年之前
pubsub-client c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
rayon-threadlimit c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
rbpf-cli c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
remote-wallet c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
rpc c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
rpc-client c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
rpc-client-api c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
rpc-client-nonce-utils c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
rpc-test c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
runtime c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
scripts 4071dc3cac chore: tee coverage test stderr (#27551) 3 年之前
sdk c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
send-transaction-service c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
stake-accounts c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
storage-bigtable c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
storage-proto c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
streamer c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
sys-tuner c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
system-test e7689f7961 chore: bump shellcheck v0.8.0 (#27463) 3 年之前
test-validator c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
thin-client c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
tokens c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
tpu-client c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
transaction-dos c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
transaction-status c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
upload-perf c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
validator c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
version c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
watchtower c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
web3.js d9b1ebece7 feat: add version getter to VersionedTransaction class (#27734) 3 年之前
zk-token-sdk c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
.clippy.toml 30f0c25b65 Fix all remaining clippy warnings 7 年之前
.gitignore 900f8a3b2b explorer: Add information about NFToken NFTs and Collection (#26716) 3 年之前
.mergify.yml 6e2ab45b68 Update mergify backport actions to new version numbers v1.13 and v1.14 (#27749) 3 年之前
.travis.yml 17b4563a6f closed explorer travis.yml after giving workflow permisssion in github action 3 年之前
CONTRIBUTING.md 5f195ba242 [docs] Docs sidebar/navbar restructure (#27005) 3 年之前
Cargo.lock c0e4379f43 Whickey/version v1.15 (#27739) 3 年之前
Cargo.toml c24eaa36f8 Split up solana-client (#27246) 3 年之前
LICENSE c631a3e0e4 up year in license 3 年之前
README.md c5792eddf1 update build instruction in readme (#25424) 3 年之前
RELEASE.md 432bca3092 Add minor version clean up tasks to release doc (#26954) 3 年之前
SECURITY.md 41c851cf8a Update SECURITY.md 3 年之前
cargo 6cd4bc5e60 Speed up net.sh builds (#16360) 4 年之前
cargo-build-bpf 4dfaf15a46 Add cargo bpf tools that invoke newer sbf tools and issue deprecation notice 3 年之前
cargo-build-sbf 4dfaf15a46 Add cargo bpf tools that invoke newer sbf tools and issue deprecation notice 3 年之前
cargo-test-bpf 4dfaf15a46 Add cargo bpf tools that invoke newer sbf tools and issue deprecation notice 3 年之前
cargo-test-sbf 4dfaf15a46 Add cargo bpf tools that invoke newer sbf tools and issue deprecation notice 3 年之前
codecov.yml f420a89c2b chore: tell Codecov about the web3.js move, a few years later (#27633) 3 年之前
fetch-perf-libs.sh 9393dce1ff Take v0.19.3 of perf libs which improves sigverify perf 2x (#11894) 5 年之前
fetch-spl.sh b725b8617c spl: Bump token to 3.5.0 and ata to 1.1.0 (#26921) 3 年之前
run.sh 33de7b856f add some guidance in place of `./run.sh` 4 年之前
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

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!

Disclaimer

All claims, content, designs, algorithms, estimates, roadmaps, specifications, and performance measurements described in this project are done with the Solana Foundation's ("SF") good faith efforts. It is up to the reader to check and validate their accuracy and truthfulness. Furthermore, nothing in this project constitutes a solicitation for investment.

Any content produced by SF or developer resources that SF provides are for educational and inspirational purposes only. SF does not encourage, induce or sanction the deployment, integration or use of any such applications (including the code comprising the Solana blockchain protocol) in violation of applicable laws or regulations and hereby prohibits any such deployment, integration or use. This includes the use of any such applications by the reader (a) in violation of export control or sanctions laws of the United States or any other applicable jurisdiction, (b) if the reader is located in or ordinarily resident in a country or territory subject to comprehensive sanctions administered by the U.S. Office of Foreign Assets Control (OFAC), or (c) if the reader is or is working on behalf of a Specially Designated National (SDN) or a person subject to similar blocking or denied party prohibitions.

The reader should be aware that U.S. export control and sanctions laws prohibit U.S. persons (and other persons that are subject to such laws) from transacting with persons in certain countries and territories or that are on the SDN list. As a project-based primarily on open-source software, it is possible that such sanctioned persons may nevertheless bypass prohibitions, obtain the code comprising the Solana blockchain protocol (or other project code or applications) and deploy, integrate, or otherwise use it. Accordingly, there is a risk to individuals that other persons using the Solana blockchain protocol may be sanctioned persons and that transactions with such persons would be a violation of U.S. export controls and sanctions law. This risk applies to individuals, organizations, and other ecosystem participants that deploy, integrate, or use the Solana blockchain protocol code directly (e.g., as a node operator), and individuals that transact on the Solana blockchain through light clients, third party interfaces, and/or wallet software.