9922f09a1d
adds more parallel processing to gossip packets handling ( #12988 ) ( #13282 )
...
(cherry picked from commit 3738611f5c
)
Co-authored-by: behzad nouri <behzadnouri@gmail.com >
2020-10-29 16:47:37 +00:00
38a99c0c25
Disable eager rent collection for less noise ( #13275 ) ( #13280 )
...
(cherry picked from commit 363c148dbe
)
Co-authored-by: Ryo Onodera <ryoqun@gmail.com >
2020-10-29 15:49:02 +00:00
7031235714
excludes origin from prune set ( #13204 ) ( #13276 )
...
On the receiving end, prune messages are ignored if the origin points to
the node itself:
https://github.com/solana-labs/solana/blob/631f029fe/core/src/crds_gossip_push.rs#L285-L295
So to avoid sending these over the wire, the requester can exclude
origin from the prune set.
(cherry picked from commit be80f6d5c5
)
Co-authored-by: behzad nouri <behzadnouri@gmail.com >
2020-10-29 14:19:06 +00:00
dfb2356a9a
Update FeatureSet::active to include slot-activated ( #13256 ) ( #13263 )
...
* Update FeatureSet::active to include slot-activated
* Clippy suggestion
(cherry picked from commit c2dbf53d76
)
Co-authored-by: Tyera Eulberg <teulberg@gmail.com >
2020-10-29 03:42:42 +00:00
010794806a
Finer grained AccountsIndex locking ( #12787 ) ( #13240 )
...
Co-authored-by: Carl Lin <carl@solana.com >
Co-authored-by: carllin <wumu727@gmail.com >
Co-authored-by: Carl Lin <carl@solana.com >
2020-10-28 23:46:54 +00:00
6f95d5f72a
Update links from sdk to program ( #13248 ) ( #13249 )
...
(cherry picked from commit db9ddc7e5b
)
Co-authored-by: Tyera Eulberg <teulberg@gmail.com >
2020-10-28 21:32:12 +00:00
2720b939fd
Calculate accounts hash async in accounts background service ( #12852 ) ( #13244 )
...
(cherry picked from commit 456eae6ccb
)
Co-authored-by: sakridge <sakridge@gmail.com >
2020-10-28 21:20:07 +00:00
a25c3fcf7d
Add doc page on sysvar accounts ( #13237 ) ( #13246 )
...
* Add doc page on sysvar accounts
* Update with suggestions
(cherry picked from commit 664b6125b6
)
Co-authored-by: Tyera Eulberg <teulberg@gmail.com >
2020-10-28 21:16:10 +00:00
7cc4810174
docs: Metrics update (bp #13239 ) ( #13241 )
...
* docs: Remove stale metrics steps
(cherry picked from commit 4dc4fefee2
)
* docs: Reference metrics envvars for each cluster
(cherry picked from commit eb597cd60f
)
Co-authored-by: Trent Nelson <trent@solana.com >
2020-10-28 19:46:59 +00:00
c1a55bf249
Improve final report of ledger-tool capitalization ( #13232 ) ( #13236 )
...
(cherry picked from commit 4698ee5e4a
)
Co-authored-by: Ryo Onodera <ryoqun@gmail.com >
2020-10-28 18:45:19 +00:00
f19778b7d9
implements ping-pong packets between nodes ( #12794 ) ( #13234 )
...
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 ae91270961
)
Co-authored-by: behzad nouri <behzadnouri@gmail.com >
2020-10-28 18:36:28 +00:00
eecdacac42
Don't hold dashmap write lock in store create ( #13007 ) ( #13230 )
...
Co-authored-by: Carl Lin <carl@solana.com >
(cherry picked from commit c8fc0a6ba1
)
Co-authored-by: carllin <wumu727@gmail.com >
2020-10-28 11:36:28 +00:00
429f130532
Switch accounts storage lock to DashMap ( #12126 ) ( #13223 )
...
Co-authored-by: Carl Lin <carl@solana.com >
(cherry picked from commit f8d338c9cb
)
Co-authored-by: carllin <wumu727@gmail.com >
2020-10-28 08:07:28 +00:00
19b9839dfc
Use pico inflation for ledger-tool capitalization --enable-inflation ( #13215 ) ( #13222 )
...
* Use pico inflation for ledger-tool capitalization --enable-inflation
* rust fmt
(cherry picked from commit 7d2962135d
)
Co-authored-by: Ryo Onodera <ryoqun@gmail.com >
2020-10-28 07:40:21 +00:00
ad2bf3afa6
more portable install.sh ( #13114 ) ( #13220 )
...
(cherry picked from commit 4e0d1b1d4a
)
Co-authored-by: Jack May <jack@solana.com >
2020-10-28 06:45:32 +00:00
5c739ba236
Use zstd for create-snapshot ( #13214 ) ( #13218 )
...
(cherry picked from commit 6d4c69b7c3
)
Co-authored-by: Ryo Onodera <ryoqun@gmail.com >
2020-10-28 06:38:20 +00:00
9fac507606
Fix log ( #13207 ) ( #13211 )
...
Co-authored-by: Carl Lin <carl@solana.com >
(cherry picked from commit f96ab5a818
)
Co-authored-by: carllin <wumu727@gmail.com >
2020-10-28 03:21:01 +00:00
d5a37cb06e
Parse vote instructions ( #13202 ) ( #13209 )
...
(cherry picked from commit c4962af9eb
)
Co-authored-by: Tyera Eulberg <teulberg@gmail.com >
2020-10-28 01:19:29 +00:00
86eb0157c0
Account for forward delay in transaction simulation ( #13199 ) ( #13201 )
...
(cherry picked from commit 631f029fe9
)
Co-authored-by: Justin Starry <justin@solana.com >
2020-10-27 18:35:43 +00:00
072dab0948
Fix pr crossing for sysvar keyed-accounts ( #13189 ) ( #13191 )
...
(cherry picked from commit 26eba5ac7d
)
Co-authored-by: Jack May <jack@solana.com >
2020-10-27 08:33:13 +00:00
e20e79f412
ignore .so files ( #13188 ) ( #13192 )
...
(cherry picked from commit bb6ab3a62d
)
Co-authored-by: Jack May <jack@solana.com >
2020-10-27 07:23:50 +00:00
f118db81ce
check sysvar id for AccountInfo ( #13175 ) ( #13185 )
...
(cherry picked from commit 322c667655
)
Co-authored-by: Jack May <jack@solana.com >
2020-10-27 00:22:27 -07:00
4ecb78d303
Move KeyedAccount out of solana-program. Native programs are not supported by solana-program (bp #13159 ) ( #13181 )
...
* Move KeyedAccount out of solana-program. Native programs are not supported by solana-program
(cherry picked from commit 1b343665a1
)
# Conflicts:
# programs/bpf/benches/bpf_loader.rs
* rebase
Co-authored-by: Michael Vines <mvines@gmail.com >
2020-10-27 05:43:14 +00:00
0a28e40606
fix .gitignore ( #13177 ) ( #13190 )
...
(cherry picked from commit e3c0cc980b
)
Co-authored-by: Jack May <jack@solana.com >
2020-10-27 05:26:59 +00:00
4d7a5a9daf
macos portable rust-bpf ( #13176 ) ( #13187 )
...
(cherry picked from commit fc83a666fc
)
Co-authored-by: Jack May <jack@solana.com >
2020-10-27 04:51:14 +00:00
64cf6b4388
Add SSH key for buildkite-agent on achille ( #13183 )
...
(cherry picked from commit ff4b34202c
)
Co-authored-by: Trent Nelson <trent@solana.com >
2020-10-27 03:19:32 +00:00
f334c3b895
Add Bank::get_signature_status_with_blockhash() ( #13167 ) ( #13178 )
...
Get the signature status in O(1) time, instead of O(n) where
n is the number of blockhashes in the StatusCache.
(cherry picked from commit f58bc8589d
)
Co-authored-by: Greg Fitzgerald <greg@solana.com >
2020-10-27 01:29:16 +00:00
15a7bcd4fe
Delete .lib.rs.swo
2020-10-26 16:01:43 -07:00
8d6636d02a
CLI: Surface deploy transaction errors ( #13170 )
...
(cherry picked from commit a82971879f
)
Co-authored-by: Trent Nelson <trent@solana.com >
2020-10-26 22:43:32 +00:00
cf896dbeee
Use bank timestamp to populate Blockstore::blocktime_cf when correction active ( #13158 ) ( #13160 )
...
(cherry picked from commit 39686ef098
)
Co-authored-by: Tyera Eulberg <teulberg@gmail.com >
2020-10-26 20:34:15 +00:00
e5b60b75f8
Docs: Testnet has a faucet now ( #13165 )
...
(cherry picked from commit 8b1638f026
)
Co-authored-by: Trent Nelson <trent@solana.com >
2020-10-26 20:28:59 +00:00
0e155fdbd9
update call depth docs ( #13155 ) ( #13162 )
...
(cherry picked from commit 35f77ccc73
)
Co-authored-by: Jack May <jack@solana.com >
2020-10-26 19:58:55 +00:00
b79a337ddd
Don't reuse BPF target build artifacts
...
(cherry picked from commit 41a56e14fc
)
2020-10-26 12:01:38 -07:00
c4050f541d
Fix reward type encoding
...
(cherry picked from commit 0a89bb4d3c
)
2020-10-26 12:01:38 -07:00
f0b74a4ecf
marks pull request creation time only once per peer ( #13113 ) ( #13156 )
...
mark_pull_request_creation time requires an exclusive lock on gossip:
https://github.com/solana-labs/solana/blob/16944e218/core/src/cluster_info.rs#L1547-L1548
Current code is redundantly marking each peer once for each request.
There are at most only 2 unique peers, whereas there are hundreds of
requests per each. So the lock is acquired hundreds of time longer than
necessary.
(cherry picked from commit 4bfda3e766
)
Co-authored-by: behzad nouri <behzadnouri@gmail.com >
2020-10-26 18:27:26 +00:00
f7979378fd
Fix test_optimistic_confirmation_violation_without_tower() ( #13043 ) ( #13145 )
...
Co-authored-by: Carl Lin <carl@solana.com >
(cherry picked from commit dd6cccaf7e
)
Co-authored-by: carllin <wumu727@gmail.com >
2020-10-26 06:33:20 +00:00
d7c5607982
Hide noisy specialization warnings for frozen abi ( #13141 ) ( #13144 )
...
(cherry picked from commit 5caf81dbf8
)
Co-authored-by: Ryo Onodera <ryoqun@gmail.com >
2020-10-26 06:19:58 +00:00
91ab5ae990
Remove program feature from SPL builds
2020-10-25 21:08:53 -07:00
605e767259
Allow existence of vote on root in saved tower ( #13135 ) ( #13139 )
...
(cherry picked from commit 66c7a98009
)
Co-authored-by: Ryo Onodera <ryoqun@gmail.com >
2020-10-26 12:34:58 +09:00
597618846b
Bump version to v1.4.4
2020-10-24 22:10:32 +00:00
712267bf51
Rename "everything" feature to "full"
...
(cherry picked from commit 0cc9c94c43
)
v1.4.3
2020-10-24 13:21:11 -07:00
eb9cef0cd4
Separate the "program" feature of solana-sdk
into a new crate called solana-program
(bp #12989 ) ( #13131 )
...
* Add solana-program-sdk boilerplate
(cherry picked from commit 3718771ffb
)
# Conflicts:
# sdk/Cargo.toml
* Initial population of solana-program-sdk
(cherry picked from commit 63db324204
)
# Conflicts:
# Cargo.lock
* Port programs to solana-program-sdk
(cherry picked from commit fe68f7f786
)
# Conflicts:
# programs/bpf/Cargo.lock
# programs/bpf/rust/128bit/Cargo.toml
# programs/bpf/rust/128bit_dep/Cargo.toml
# programs/bpf/rust/alloc/Cargo.toml
# programs/bpf/rust/call_depth/Cargo.toml
# programs/bpf/rust/custom_heap/Cargo.toml
# programs/bpf/rust/dep_crate/Cargo.toml
# programs/bpf/rust/deprecated_loader/Cargo.toml
# programs/bpf/rust/dup_accounts/Cargo.toml
# programs/bpf/rust/error_handling/Cargo.toml
# programs/bpf/rust/external_spend/Cargo.toml
# programs/bpf/rust/instruction_introspection/Cargo.toml
# programs/bpf/rust/invoke/Cargo.toml
# programs/bpf/rust/invoked/Cargo.toml
# programs/bpf/rust/iter/Cargo.toml
# programs/bpf/rust/many_args/Cargo.toml
# programs/bpf/rust/many_args_dep/Cargo.toml
# programs/bpf/rust/noop/Cargo.toml
# programs/bpf/rust/panic/Cargo.toml
# programs/bpf/rust/param_passing/Cargo.toml
# programs/bpf/rust/param_passing_dep/Cargo.toml
# programs/bpf/rust/rand/Cargo.toml
# programs/bpf/rust/ristretto/Cargo.toml
# programs/bpf/rust/sanity/Cargo.toml
# programs/bpf/rust/sha256/Cargo.toml
# programs/bpf/rust/sysval/Cargo.toml
* Only activate legacy program feature for the solana-sdk crate
(cherry picked from commit 85c51f5787
)
* Run serum-dex unit tests
(cherry picked from commit 92ce381d60
)
* Rename solana-program-sdk to solana-program
(cherry picked from commit dd711ab5fb
)
# Conflicts:
# programs/bpf/rust/128bit/Cargo.toml
# programs/bpf/rust/128bit_dep/Cargo.toml
# programs/bpf/rust/alloc/Cargo.toml
# programs/bpf/rust/call_depth/Cargo.toml
# programs/bpf/rust/custom_heap/Cargo.toml
# programs/bpf/rust/dep_crate/Cargo.toml
# programs/bpf/rust/deprecated_loader/Cargo.toml
# programs/bpf/rust/dup_accounts/Cargo.toml
# programs/bpf/rust/error_handling/Cargo.toml
# programs/bpf/rust/external_spend/Cargo.toml
# programs/bpf/rust/instruction_introspection/Cargo.toml
# programs/bpf/rust/invoke/Cargo.toml
# programs/bpf/rust/invoked/Cargo.toml
# programs/bpf/rust/iter/Cargo.toml
# programs/bpf/rust/many_args/Cargo.toml
# programs/bpf/rust/many_args_dep/Cargo.toml
# programs/bpf/rust/noop/Cargo.toml
# programs/bpf/rust/panic/Cargo.toml
# programs/bpf/rust/param_passing/Cargo.toml
# programs/bpf/rust/param_passing_dep/Cargo.toml
# programs/bpf/rust/rand/Cargo.toml
# programs/bpf/rust/ristretto/Cargo.toml
# programs/bpf/rust/sanity/Cargo.toml
# programs/bpf/rust/sha256/Cargo.toml
# programs/bpf/rust/sysval/Cargo.toml
* Update frozen_abi hashes
The movement of files in sdk/ caused ABI hashes to change
(cherry picked from commit a4956844bd
)
* Resolve merge conflicts
Co-authored-by: Michael Vines <mvines@gmail.com >
2020-10-24 17:25:22 +00:00
62e0e19961
add precompile verification to simulate_transaction ( #13080 ) ( #13126 )
...
(cherry picked from commit 766406fd23
)
Co-authored-by: Josh <josh.hundley@gmail.com >
2020-10-24 05:02:41 +00:00
9aee9cb867
Clean up opt conf verifier and vote state tracker ( #13081 ) ( #13124 )
...
* Clean up opt conf verifier and vote state tracker
* Update test to follow new message and some knob
* Rename
(cherry picked from commit 0264147d42
)
Co-authored-by: Ryo Onodera <ryoqun@gmail.com >
2020-10-24 04:12:02 +00:00
2b11558b36
Shorten magic install URL ( #13122 )
...
(cherry picked from commit b5170b993e
)
Co-authored-by: Michael Vines <mvines@gmail.com >
2020-10-23 23:28:19 +00:00
18c4e1b023
ci: Add downstream project build testing (bp #13112 ) ( #13119 )
...
* Use local cargo for CI
(cherry picked from commit c7c50bd32c
)
* Add downstream project build testing
(cherry picked from commit c7f4f15e60
)
Co-authored-by: Michael Vines <mvines@gmail.com >
2020-10-23 22:13:51 +00:00
6bac44ed92
Move bpf sdk packaging from publish-tarball to cargo-install-all ( #13117 )
...
(cherry picked from commit 965ea97b56
)
Co-authored-by: Michael Vines <mvines@gmail.com >
2020-10-23 21:39:41 +00:00
8cb622084f
Cli: deploy programs via TPU ( #13090 ) ( #13111 )
...
* Deploy: send write transactions to leader tpu
* Less apparent stalling during confirmation
* Add EpochInfo mock
* Only get cluster nodes once
* Send deploy writes to next leader
(cherry picked from commit 16944e218f
)
Co-authored-by: Tyera Eulberg <teulberg@gmail.com >
2020-10-23 17:29:41 +00:00
38f7e9a979
shrink debug ( #13089 ) ( #13109 )
...
(cherry picked from commit 7d2729f6bd
)
Co-authored-by: sakridge <sakridge@gmail.com >
2020-10-23 17:02:00 +00:00
a536f779ee
scans crds table in parallel for finding old labels ( #13073 ) ( #13107 )
...
From runtime profiles, the majority time of ClusterInfo::handle_purge
https://github.com/solana-labs/solana/blob/0776fa05c/core/src/cluster_info.rs#L1605-L1626
is spent scanning crds table finding old labels:
https://github.com/solana-labs/solana/blob/0776fa05c/core/src/crds.rs#L175-L197
This can be done in parallel given that gossip thread-pool:
https://github.com/solana-labs/solana/blob/0776fa05c/core/src/cluster_info.rs#L1637-L1641
is idle when handle_purge is invoked:
https://github.com/solana-labs/solana/blob/0776fa05c/core/src/cluster_info.rs#L1681
(cherry picked from commit 37c8842bcb
)
Co-authored-by: behzad nouri <behzadnouri@gmail.com >
2020-10-23 15:36:06 +00:00