Files
solana/core/Cargo.toml

126 lines
3.9 KiB
TOML
Raw Permalink Normal View History

[package]
2019-08-21 10:23:33 -07:00
name = "solana-core"
description = "Blockchain, Rebuilt for Scale"
2020-11-29 10:11:35 -08:00
version = "1.3.24"
documentation = "https://docs.rs/solana"
homepage = "https://solana.com/"
2019-03-12 12:44:51 -07:00
readme = "../README.md"
repository = "https://github.com/solana-labs/solana"
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
license = "Apache-2.0"
edition = "2018"
[badges]
codecov = { repository = "solana-labs/solana", branch = "master", service = "github" }
[dependencies]
base64 = "0.12.3"
bincode = "1.3.1"
bv = { version = "0.11.1", features = ["serde"] }
bs58 = "0.3.1"
byteorder = "1.3.4"
chrono = { version = "0.4.11", features = ["serde"] }
core_affinity = "0.5.10"
crossbeam-channel = "0.4"
2020-07-23 17:23:51 -06:00
ed25519-dalek = "=1.0.0-pre.4"
fs_extra = "1.1.0"
flate2 = "1.0"
indexmap = { version = "1.5", features = ["rayon"] }
itertools = "0.9.0"
jsonrpc-core = "15.0.0"
jsonrpc-core-client = { version = "15.0.0", features = ["ws"] }
jsonrpc-derive = "15.0.0"
jsonrpc-http-server = "15.0.0"
jsonrpc-pubsub = "15.0.0"
jsonrpc-ws-server = "15.0.0"
log = "0.4.8"
implements ping-pong packets between nodes (bp #12794) (#13281) * implements ping-pong packets between nodes (#12794) https://hackerone.com/reports/991106 > It’s possible to use UDP gossip protocol to amplify DDoS attacks. An attacker > can spoof IP address in UDP packet when sending PullRequest to the node. > There's no any validation if provided source IP address is not spoofed and > the node can send much larger PullResponse to victim's IP. As I checked, > PullRequest is about 290 bytes, while PullResponse is about 10 kB. It means > that amplification is about 34x. This way an attacker can easily perform DDoS > attack both on Solana node and third-party server. > > To prevent it, need for example to implement ping-pong mechanism similar as > in Ethereum: Before accepting requests from remote client needs to validate > his IP. Local node sends Ping packet to the remote node and it needs to reply > with Pong packet that contains hash of matching Ping packet. Content of Ping > packet is unpredictable. If hash from Pong packet matches, local node can > remember IP where Ping packet was sent as correct and allow further > communication. > > More info: > https://github.com/ethereum/devp2p/blob/master/discv4.md#endpoint-proof > https://github.com/ethereum/devp2p/blob/master/discv4.md#wire-protocol The commit adds a PingCache, which maintains records of remote nodes which have returned a valid response to a ping message, and on-the-fly ping messages pending a pong response from the remote node. When handling pull-requests, those from addresses which have not passed the ping-pong check are filtered out, and additionally ping packets are added for addresses which need to be (re)verified. (cherry picked from commit ae91270961599869e846fd7dd642c3c9090b8085) # Conflicts: # Cargo.lock # core/src/cluster_info.rs * resolves mergify merge conflicts Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2020-10-29 16:33:29 +00:00
lru = "0.6.0"
2020-12-11 15:16:59 -07:00
miow = "0.2.2"
2020-12-11 15:14:36 -07:00
net2 = "0.2.37"
num_cpus = "1.13.0"
num-traits = "0.2"
2020-04-27 09:33:33 -07:00
rand = "0.7.0"
rand_chacha = "0.2.2"
raptorq = "1.4.2"
rayon = "1.4.0"
regex = "1.3.9"
serde = "1.0.112"
serde_derive = "1.0.103"
serde_json = "1.0.56"
2020-11-29 10:11:35 -08:00
solana-account-decoder = { path = "../account-decoder", version = "1.3.24" }
solana-banks-server = { path = "../banks-server", version = "1.3.24" }
solana-budget-program = { path = "../programs/budget", version = "1.3.24" }
solana-clap-utils = { path = "../clap-utils", version = "1.3.24" }
solana-client = { path = "../client", version = "1.3.24" }
solana-faucet = { path = "../faucet", version = "1.3.24" }
solana-ledger = { path = "../ledger", version = "1.3.24" }
solana-logger = { path = "../logger", version = "1.3.24" }
solana-merkle-tree = { path = "../merkle-tree", version = "1.3.24" }
solana-metrics = { path = "../metrics", version = "1.3.24" }
solana-measure = { path = "../measure", version = "1.3.24" }
solana-net-utils = { path = "../net-utils", version = "1.3.24" }
solana-perf = { path = "../perf", version = "1.3.24" }
solana-runtime = { path = "../runtime", version = "1.3.24" }
solana-sdk = { path = "../sdk", version = "1.3.24" }
solana-sdk-macro-frozen-abi = { path = "../sdk/macro-frozen-abi", version = "1.3.24" }
solana-stake-program = { path = "../programs/stake", version = "1.3.24" }
solana-storage-bigtable = { path = "../storage-bigtable", version = "1.3.24" }
solana-streamer = { path = "../streamer", version = "1.3.24" }
solana-sys-tuner = { path = "../sys-tuner", version = "1.3.24" }
solana-transaction-status = { path = "../transaction-status", version = "1.3.24" }
solana-version = { path = "../version", version = "1.3.24" }
solana-vote-program = { path = "../programs/vote", version = "1.3.24" }
solana-vote-signer = { path = "../vote-signer", version = "1.3.24" }
spl-token-v2-0 = { package = "spl-token", version = "=2.0.6", features = ["skip-no-mangle"] }
tempfile = "3.1.0"
thiserror = "1.0"
Long-term ledger storage with BigTable (bp #11222) (#11392) * ledger-storage-bigtable boilerplate (cherry picked from commit 9d2293bb32e90669ebd196886d4104d63e9bbfa8) * $ wget https://pki.goog/roots.pem -O pki-goog-roots.pem (cherry picked from commit 1617a025ce61bfeaf79b5a1cdff393346817747e) * Add access_token module (cherry picked from commit 59d266a1113f1b1452ffbc5644cf46ed79106e4e) * Add root_ca_certificate (cherry picked from commit faa016e4b7ee369e0cbf22bbab207b365d69ba74) * Add build-proto (cherry picked from commit c31e1f5bf0ffa5f1e1e0748e53a5109c5e0600dd) * UiTransactionEncoding is now copy (cherry picked from commit 494968be666032c62fd22a95cd87143303ccac12) * Increase timeout (cherry picked from commit 57dfebc5bad8745ecc532e6d5347eb0db8ff356e) * Add build-proto/build.sh output (cherry picked from commit 54dae6ba2c1b715f56ddaaaa650c07e5396ad1c6) * Supress doctest errors (cherry picked from commit 019c75797d94f9f4dfb0d886ad13f9f3c2757046) * Add compression (cherry picked from commit 243e05d59fbf586a822c2c3d4aad07790b55ea56) * Add bigtable (cherry picked from commit 6e0353965a3fd1ac2278f04aa880afe5faf990a2) * Add configuration info (cherry picked from commit 98cca1e774be21e116b52ca42c7e3b98d9485b13) * Add ledger-tool bigtable subcommands (cherry picked from commit f9049d6ee4e932a582b7825e236468ea37db8952) # Conflicts: # ledger-tool/Cargo.toml * Make room for tokio 0.2 (cherry picked from commit b876fb84ba74178443741ac9279105bd2453c2ff) # Conflicts: # core/Cargo.toml * Setup a tokio 0.2 runtime for RPC usage (cherry picked from commit 0e02740565b87508fd363101de9c292783bf85f3) # Conflicts: # core/Cargo.toml * Plumb Bigtable ledger storage into the RPC subsystem (cherry picked from commit dfae9a98644e29adc1d9dceeab53fa2b9b6d4335) # Conflicts: # core/Cargo.toml * Add RPC transaction history design (cherry picked from commit e56ea138c729e94e6bf91fa136a6bb7fbff36f2c) * Simplify access token refreshing (cherry picked from commit 1f7af14386b8b054a425f4507d80d4335f6a62e1) * Report block status more frequently (cherry picked from commit 22c46ebf9658da3dfff8c50e70b8f357a87e6d04) * after -> before (cherry picked from commit 227ea934ffe96677d398adb0b6b9d6d404ca9579) * Rebase * Cargo.lock Co-authored-by: Michael Vines <mvines@gmail.com>
2020-08-06 04:06:44 +00:00
tokio_01 = { version = "0.1", package = "tokio" }
tokio_fs_01 = { version = "0.1", package = "tokio-fs" }
tokio_io_01 = { version = "0.1", package = "tokio-io" }
2020-11-29 10:11:35 -08:00
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "1.3.24" }
Long-term ledger storage with BigTable (bp #11222) (#11392) * ledger-storage-bigtable boilerplate (cherry picked from commit 9d2293bb32e90669ebd196886d4104d63e9bbfa8) * $ wget https://pki.goog/roots.pem -O pki-goog-roots.pem (cherry picked from commit 1617a025ce61bfeaf79b5a1cdff393346817747e) * Add access_token module (cherry picked from commit 59d266a1113f1b1452ffbc5644cf46ed79106e4e) * Add root_ca_certificate (cherry picked from commit faa016e4b7ee369e0cbf22bbab207b365d69ba74) * Add build-proto (cherry picked from commit c31e1f5bf0ffa5f1e1e0748e53a5109c5e0600dd) * UiTransactionEncoding is now copy (cherry picked from commit 494968be666032c62fd22a95cd87143303ccac12) * Increase timeout (cherry picked from commit 57dfebc5bad8745ecc532e6d5347eb0db8ff356e) * Add build-proto/build.sh output (cherry picked from commit 54dae6ba2c1b715f56ddaaaa650c07e5396ad1c6) * Supress doctest errors (cherry picked from commit 019c75797d94f9f4dfb0d886ad13f9f3c2757046) * Add compression (cherry picked from commit 243e05d59fbf586a822c2c3d4aad07790b55ea56) * Add bigtable (cherry picked from commit 6e0353965a3fd1ac2278f04aa880afe5faf990a2) * Add configuration info (cherry picked from commit 98cca1e774be21e116b52ca42c7e3b98d9485b13) * Add ledger-tool bigtable subcommands (cherry picked from commit f9049d6ee4e932a582b7825e236468ea37db8952) # Conflicts: # ledger-tool/Cargo.toml * Make room for tokio 0.2 (cherry picked from commit b876fb84ba74178443741ac9279105bd2453c2ff) # Conflicts: # core/Cargo.toml * Setup a tokio 0.2 runtime for RPC usage (cherry picked from commit 0e02740565b87508fd363101de9c292783bf85f3) # Conflicts: # core/Cargo.toml * Plumb Bigtable ledger storage into the RPC subsystem (cherry picked from commit dfae9a98644e29adc1d9dceeab53fa2b9b6d4335) # Conflicts: # core/Cargo.toml * Add RPC transaction history design (cherry picked from commit e56ea138c729e94e6bf91fa136a6bb7fbff36f2c) * Simplify access token refreshing (cherry picked from commit 1f7af14386b8b054a425f4507d80d4335f6a62e1) * Report block status more frequently (cherry picked from commit 22c46ebf9658da3dfff8c50e70b8f357a87e6d04) * after -> before (cherry picked from commit 227ea934ffe96677d398adb0b6b9d6d404ca9579) * Rebase * Cargo.lock Co-authored-by: Michael Vines <mvines@gmail.com>
2020-08-06 04:06:44 +00:00
tokio = { version = "0.2.22", features = ["full"] }
trees = "0.2.1"
[dev-dependencies]
matches = "0.1.6"
reqwest = { version = "0.10.6", default-features = false, features = ["blocking", "rustls-tls", "json"] }
serial_test = "0.4.0"
serial_test_derive = "0.4.0"
2019-12-18 18:31:04 -05:00
systemstat = "0.1.5"
[build-dependencies]
rustc_version = "0.2"
[[bench]]
name = "banking_stage"
[[bench]]
name = "blockstore"
[[bench]]
name = "crds"
[[bench]]
name = "crds_gossip_pull"
[[bench]]
name = "crds_shards"
[[bench]]
name = "gen_keys"
[[bench]]
name = "sigverify_stage"
[[bench]]
name = "poh"
2019-10-06 12:56:17 -07:00
[[bench]]
name = "retransmit_stage"
[[bench]]
name = "cluster_info"
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]