428cacff88
scans crds table in parallel for finding old labels (bp #13073 ) ( #13277 )
...
* scans crds table in parallel for finding old labels (#13073 )
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
)
# Conflicts:
# core/tests/crds_gossip.rs
* resolves mergify merge conflict
Co-authored-by: behzad nouri <behzadnouri@gmail.com >
2020-10-29 15:33:59 +00:00
6a4f89b193
excludes origin from prune set ( #13204 ) ( #13278 )
...
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 15:22:47 +00:00
65ad72cd64
improves threads' utilization in processing gossip packets ( #12962 ) ( #13251 )
...
ClusterInfo::process_packets handles incoming packets in a thread_pool:
https://github.com/solana-labs/solana/blob/87311cce7/core/src/cluster_info.rs#L2118-L2134
However, profiling runtime shows that threads are not well utilized and
a lot of the processing is done sequentially.
This commit redistributes the work done in parallel. Testing on a gce
cluster shows 20%+ improvement in processing gossip packets with much
smaller variations.
(cherry picked from commit 75d62ca095
)
Co-authored-by: behzad nouri <behzadnouri@gmail.com >
2020-10-29 13:59:12 +00:00
0ddf684376
marks pull request creation time only once per peer ( #13113 ) ( #13252 )
...
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-29 13:54:39 +00:00
1376c325b6
Improve final report of ledger-tool capitalization ( #13232 ) ( #13235 )
...
(cherry picked from commit 4698ee5e4a
)
Co-authored-by: Ryo Onodera <ryoqun@gmail.com >
2020-10-28 18:28:23 +00:00
e29a49f107
Use pico inflation for ledger-tool capitalization --enable-inflation ( #13215 ) ( #13221 )
...
* 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 20:54:56 +09:00
4e7c096177
Use zstd for create-snapshot ( #13214 ) ( #13217 )
...
(cherry picked from commit 6d4c69b7c3
)
Co-authored-by: Ryo Onodera <ryoqun@gmail.com >
2020-10-28 06:37:28 +00:00
b18fa8deac
Fix log ( #13207 ) ( #13210 )
...
Co-authored-by: Carl Lin <carl@solana.com >
(cherry picked from commit f96ab5a818
)
Co-authored-by: carllin <wumu727@gmail.com >
2020-10-28 03:11:21 +00:00
bba4f3006f
Parse vote instructions ( #13202 ) ( #13208 )
...
(cherry picked from commit c4962af9eb
)
Co-authored-by: Tyera Eulberg <teulberg@gmail.com >
2020-10-28 01:53:13 +00:00
802a2cc985
passes through feature-set to gossip requests handling ( #12878 ) ( #13205 )
...
* passes through feature-set to down to gossip requests handling
* takes the feature-set from root_bank instead of working_bank
(cherry picked from commit 48283161c3
)
Co-authored-by: behzad nouri <behzadnouri@gmail.com >
2020-10-27 23:46:12 +00:00
ad5ef9cc48
Account for forward delay in transaction simulation ( #13199 ) ( #13200 )
...
(cherry picked from commit 631f029fe9
)
Co-authored-by: Justin Starry <justin@solana.com >
2020-10-27 18:34:41 +00:00
cf1c7c8c00
macos portable rust-bpf ( #13176 ) ( #13186 )
...
(cherry picked from commit fc83a666fc
)
Co-authored-by: Jack May <jack@solana.com >
2020-10-27 04:45:41 +00:00
a28fb586b0
Add SSH key for buildkite-agent on achille ( #13182 )
...
(cherry picked from commit ff4b34202c
)
# Conflicts:
# net/scripts/solana-user-authorized_keys.sh
Co-authored-by: Trent Nelson <trent@solana.com >
2020-10-27 04:25:53 +00:00
5737ea448e
CLI: Surface deploy transaction errors ( #13169 )
...
(cherry picked from commit a82971879f
)
Co-authored-by: Trent Nelson <trent@solana.com >
2020-10-26 22:26:02 +00:00
e54a537015
update call depth docs ( #13155 ) ( #13161 )
...
(cherry picked from commit 35f77ccc73
)
Co-authored-by: Jack May <jack@solana.com >
2020-10-26 19:45:02 +00:00
39eae50024
implements DataBudget using atomics ( #12856 ) ( #13157 )
...
(cherry picked from commit 05cf15a382
)
Co-authored-by: behzad nouri <behzadnouri@gmail.com >
2020-10-26 18:27:45 +00:00
736e5c3ec7
Fix BigTable reward type encoding (bp #13142 ) ( #13146 )
...
* Fix reward type encoding
(cherry picked from commit 0a89bb4d3c
)
* Don't reuse BPF target build artifacts
(cherry picked from commit 41a56e14fc
)
Co-authored-by: Michael Vines <mvines@gmail.com >
2020-10-26 08:18:05 +00:00
f8e310d99d
Hide noisy specialization warnings for frozen abi ( #13141 ) ( #13143 )
...
(cherry picked from commit 5caf81dbf8
)
Co-authored-by: Ryo Onodera <ryoqun@gmail.com >
2020-10-26 05:11:12 +00:00
fd7bcfdb4d
add precompile verification to simulate_transaction ( #13080 ) ( #13125 )
...
(cherry picked from commit 766406fd23
)
Co-authored-by: Josh <josh.hundley@gmail.com >
2020-10-24 04:57:12 +00:00
e553c8bb45
Clean up opt conf verifier and vote state tracker ( #13081 ) ( #13123 )
...
* 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 02:39:33 +00:00
1c5f8f51ee
Shorten magic install URL ( #13121 )
...
(cherry picked from commit b5170b993e
)
Co-authored-by: Michael Vines <mvines@gmail.com >
2020-10-23 23:20:03 +00:00
5084871e27
Cli: deploy programs via TPU ( #13090 ) ( #13110 )
...
* 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:14:37 +00:00
184a56aae7
shrink debug ( #13089 ) ( #13108 )
...
(cherry picked from commit 7d2729f6bd
)
Co-authored-by: sakridge <sakridge@gmail.com >
2020-10-23 16:14:09 +00:00
7d66cba7f4
Remove spammy invalid rpc log ( #13100 ) ( #13101 )
...
(cherry picked from commit c95f6c4b83
)
Co-authored-by: Justin Starry <justin@solana.com >
2020-10-23 08:21:33 +00:00
8f615278d2
Add deploy err if program-account balance is too high ( #13091 ) ( #13097 )
...
* Add deploy err if program-account balance is too high
* Review comments
* Add system-program check
* Rename and unhide flag
(cherry picked from commit 4669fa0f98
)
Co-authored-by: Tyera Eulberg <teulberg@gmail.com >
2020-10-23 05:50:21 +00:00
884d68ddcf
Add Pubkey::new_unique()/Hash::new_unique()
2020-10-23 03:19:38 +00:00
b095a52027
Add programming-faq to sidebar ( #12586 ) ( #13087 )
...
* Add programming-faq to sidebar
* nudge
* fix path
(cherry picked from commit 22d16c69b7
)
Co-authored-by: Jack May <jack@solana.com >
2020-10-22 12:34:22 +00:00
1f5861e107
Add programming faq ( #12545 ) ( #13086 )
...
* Add programming faq
* feedback and new content
* nudge
(cherry picked from commit b51c0f3095
)
Co-authored-by: Jack May <jack@solana.com >
2020-10-22 12:33:29 +00:00
b90b46fee1
Allow nodes to advertise a different rpc address over gossip ( #13053 ) ( #13077 )
...
* Allow nodes to advertise a different rpc address over gossip
* Feedback
(cherry picked from commit 8b0242a5d8
)
Co-authored-by: Justin Starry <justin@solana.com >
2020-10-22 04:44:41 +00:00
bff820d549
Remove unused pubkey::Pubkey imports
2020-10-21 20:27:57 -07:00
5ad0ccdfe1
cargo fmt
2020-10-21 20:27:57 -07:00
d8c7d06737
Run codemod --extensions rs Hash::new_rand solana_sdk:
#️⃣ :new_rand
2020-10-21 20:27:57 -07:00
422bb3c526
Run codemod --extensions rs Pubkey::new_rand solana_sdk::pubkey::new_rand
2020-10-21 20:27:57 -07:00
048a2b982c
Add pubkey_new_rand(), mark Pubkey::new_rand() deprecated
2020-10-21 20:27:57 -07:00
76f0557462
Add hash_new_rand(), mark Hash::new_rand() as deprecated
2020-10-21 20:27:57 -07:00
6ebb933302
Bump version to 1.3.20
2020-10-22 00:08:28 +00:00
15a49d7508
RPC: Don't send base64 TXs to old clusters ( #13062 )
...
Co-authored-by: Trent Nelson <trent@solana.com >
v1.3.19
2020-10-21 21:07:08 +00:00
a86a781fd5
CLI: Print address ephemeral keypair seed phrase to stderr on deploy failure (bp #13046 ) ( #13054 )
...
* CLI: Print address ephemeral keypair seed phrase to stderr on deploy failure
(cherry picked from commit 2905ccc7ec
)
# Conflicts:
# cli/Cargo.toml
# cli/src/cli.rs
* Fix conflicts
Co-authored-by: Trent Nelson <trent@solana.com >
Co-authored-by: Tyera Eulberg <tyera@solana.com >
2020-10-21 21:03:00 +00:00
57d8d0ab6e
Add ledger-tool dead-slots and improve purge a lot ( #13070 )
2020-10-21 18:38:37 +00:00
63fe350900
Port various rent fixes to runtime feature (bp #12842 ) ( #13067 )
...
* Port various rent fixes to runtime feature (#12842 )
* Port various rent fixes to runtime feature
* Fix CI
* Use more consistent naming...
(cherry picked from commit 608b81b412
)
# Conflicts:
# runtime/src/bank.rs
* Fix conflict
Co-authored-by: Ryo Onodera <ryoqun@gmail.com >
2020-10-21 14:47:59 +00:00
b384ce9e03
Skip 'Stake by Feature Set' output when showing status of a single feature ( #13051 )
...
(cherry picked from commit ad65d4785e
)
Co-authored-by: Michael Vines <mvines@gmail.com >
2020-10-21 07:01:20 +00:00
d81d4ad8a1
Improve vote-account "Recent Timestamp" output ( #12970 )
...
(cherry picked from commit 2cc3d7511a
)
Co-authored-by: Michael Vines <mvines@gmail.com >
2020-10-21 05:09:58 +00:00
9ed1d2337b
Parse stake and system instructions (bp #13035 ) ( #13044 )
...
* Parse stake and system instructions (#13035 )
* Fix token account check
* Add helper to check num accounts
* Add parse_stake
* Add parse_system
* Fix AuthorizeNonce docs
* Remove jsonParsed unstable markers
* Clippy
(cherry picked from commit 46d0019955
)
* Fix for older clippy
Co-authored-by: Tyera Eulberg <teulberg@gmail.com >
Co-authored-by: Tyera Eulberg <tyera@solana.com >
2020-10-21 04:20:02 +00:00
14aaae3485
Support Debug Bank ( #13017 ) ( #13042 )
...
(cherry picked from commit c0675968b1
)
Co-authored-by: Ryo Onodera <ryoqun@gmail.com >
2020-10-21 02:50:12 +00:00
caac786a38
validator: Activate RPC before halting on slot ( #13001 )
...
(cherry picked from commit 3b3f7341fa
)
Co-authored-by: Trent Nelson <trent@solana.com >
2020-10-20 23:50:11 +00:00
218a76ed1b
Force unset CARGO to use correct version of cargo ( #13027 ) ( #13033 )
...
(cherry picked from commit 81d0c8ae7f
)
Co-authored-by: Jon Cinque <jon.cinque@gmail.com >
2020-10-20 22:52:06 +00:00
964f05afa8
Fix secp256k1 instruction indexing and add tests ( #13026 ) ( #13031 )
...
(cherry picked from commit 83c53ae4b5
)
Co-authored-by: sakridge <sakridge@gmail.com >
2020-10-20 22:24:20 +00:00
a0e2f49263
Remove unsupported metrics tarball from release artifacts
...
(cherry picked from commit 62f20bc170
)
2020-10-20 13:14:46 -07:00
25078d46ba
filters out inactive nodes from push options ( #12674 ) ( #13022 )
...
* filters out inactive nodes from push options
https://github.com/solana-labs/solana/pull/12620
patched the DDOS issue with nodes which go offline:
https://github.com/solana-labs/solana/issues/12409
However, offline nodes still see (much lesser) traffic spike, likely
because no origins are pruned from their bloom filter in active set:
https://github.com/solana-labs/solana/blob/aaf3790d8/core/src/crds_gossip_push.rs#L276-L286
and so multiple nodes push redundant duplicate messages to them
simultaneously:
https://github.com/solana-labs/solana/blob/aaf3790d8/core/src/crds_gossip_push.rs#L254-L255
This commit will filter out inactive peers from potential push targets
entirely. To mitigate eclipse attacks, staked nodes are retried
periodically.
* uses current timestamp in test/crds_gossip
(cherry picked from commit a5c6a78f6d
)
Co-authored-by: behzad nouri <behzadnouri@gmail.com >
2020-10-20 19:44:52 +00:00
840ea326db
Remove errant print
2020-10-20 08:58:54 -06:00