Commit Graph

14291 Commits

Author SHA1 Message Date
019bccab51 stake: merge accounts with mismatched, but expired lockups 2021-05-21 10:50:27 -06:00
74ac6ab80f stake: plumb can_merge_expired_lockups feature flag 2021-05-21 10:50:27 -06:00
8c073b2c94 Update getrandom bpf dependency 2021-05-21 08:55:47 -07:00
2adce67260 extends crds values timeouts if stakes are unknown (#17261)
If stakes are unknown, then timeouts will be short, resulting in values
being purged from the crds table, and consequently higher pull-response
load when they are obtained again from gossip. In particular, this slows
down validator start where almost all values obtained from entrypoint
are immediately discarded.
2021-05-21 15:55:22 +00:00
44831c18d2 reuse work in is_non_loader_key (#16521) 2021-05-21 10:07:04 -05:00
8143ee5502 add AccountsIndex AccountMapsReadLock type (#17365) 2021-05-21 10:02:14 -05:00
2f55547d37 remove flatten in storage scan (#17354)
* remove flatten in storage scan

* fix tests
2021-05-21 09:26:46 -05:00
5e6b00fe98 prioritizes more recent values in pull responses (#17238)
On the receiving end, the outdated values are discarded, and they will
only waste bandwidth:
https://github.com/solana-labs/solana/blob/3f0480d06/core/src/crds_gossip_pull.rs#L385-L400

This is also exacerbating validator start, since the entrypoint is
returning old values in pull responses, and the validator immediately
discards those; resulting in huge delay until the validator obtains
contact-info of the entrypoint and is able to adopt shred-version and
fully start.
2021-05-21 14:07:46 +00:00
e8b35a4f7b bumps up min number of bloom items in gossip pull requests (#17236)
When a validator starts, it has an (almost) empty crds table and it only
sends one pull-request to the entrypoint. The bloom filter in the
pull-request targets 10% false rate given the number of items. So, if
the `num_items` is very wrong, it makes a very small bloom filter with a
very high false rate:
https://github.com/solana-labs/solana/blob/2ae57c172/runtime/src/bloom.rs#L70-L80
https://github.com/solana-labs/solana/blob/2ae57c172/core/src/crds_gossip_pull.rs#L48

As a result, it is very unlikely that the validator obtains entrypoint's
contact-info in response. This exacerbates how long the validator will
loop on:
    > Waiting to adopt entrypoint shred version
https://github.com/solana-labs/solana/blob/ed51cde37/validator/src/main.rs#L390-L412

This commit increases the min number of bloom items when making gossip
pull requests. Effectively this will break the entrypoint crds table
into 64 shards, one pull-request for each, a larger bloom filter for
each shard, and increases the chances that the response will include
entrypoint's contact-info, which is needed for adopting shred version
and validator start.
2021-05-21 13:59:26 +00:00
662c2aaeec programs/stake: cancel deactivate (#17344)
fix: remove stray println

add error for inconsistent input.

fix: lamports don't need to match when redelegating to same vote account

Improve comments

bump

Apply suggestions from code review


Add assert in test

Use stake_program_v4

Co-Authored-By: Trent Nelson <trent.a.b.nelson@gmail.com>

Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>
2021-05-21 05:31:55 +00:00
e320af99a0 clap-utils: Fix signer resolution on Windows 2021-05-21 02:12:57 +00:00
91f2b6185e Prevent withrawing Initialized stake account to zero stake (#17366) 2021-05-21 02:01:08 +00:00
2c99b23ad7 Add get_sysvar() helper to sdk 2021-05-21 01:30:12 +00:00
45552d271a take mutex once in process_dead_slots (#17357) 2021-05-20 19:50:58 -05:00
a1a0d6f84b Add stake_program_v4 feature 2021-05-20 21:15:18 +00:00
741f99ebb6 Explorer: introduce rewards tab for stake/vote accounts (#16851)
* feat: introduce staking rewards tab

* feat: take into consideration stake activation

* fix: report fetch errors

* fix: find rewards all the way to epoch 0

* fix: find rewards all the way to epoch 0

* fix: autocomplete error

* fix: load one page at a time
2021-05-20 14:00:48 -07:00
0486df02ba don't limit to thread pool when cleaning on startup (#17317) 2021-05-20 14:36:35 -05:00
dd13a31a5a restore Serum in CI downstream job (#17346) 2021-05-20 15:33:19 +00:00
33ab9c4e8d batch insert account_index items in generate_index (#17290) 2021-05-20 10:29:13 -05:00
9b74988fc6 calculate_accounts_hash does not throttle threads on startup (#17338) 2021-05-20 10:25:54 -05:00
a9aa533684 replace Ancestors HashMap for performance (#16477)
* replace Ancestors HashMap for performance

* add ancestors module
2021-05-20 10:11:56 -05:00
ddfc15b9f2 docs: Update transaction expiration time (#17347) 2021-05-20 14:55:34 +00:00
2ae57c172a Bump bpf-tools version to 1.9
- upgrade rustc to 1.52.1 and clang to 12.0
2021-05-20 11:35:37 +02:00
a544010b03 don't log shrink metrics on first call (#17328)
* don't log shrink metrics on first call

* simplify logic
2021-05-20 00:15:35 +00:00
32ec8341f9 generate_index inserts ideal initial data (#17247)
* improve insert into map initially

* rework towards single code path

* rename

* update test
2021-05-19 16:21:24 -05:00
13b032b2d4 removes manual trait impl for contact-info (#17332)
The current implementations use only the id and disregard other fields,
in particular wallclock. This can lead to bugs where an outdated
contact-info shadows or overrides a current one because they compare
equal.
2021-05-19 20:56:10 +00:00
477898f682 Optimize aligned memory used by the runtime (#17324) 2021-05-19 13:43:59 -07:00
e7073ecab1 adds gossip metrics for number of staked nodes (#17330) 2021-05-19 19:25:21 +00:00
b5302e7619 add calc_stored_meta_us metric (#17318) 2021-05-19 12:29:41 -05:00
f1b4a0a2e0 Fix typo (#17326) 2021-05-19 11:24:08 -06:00
c20b27bc8f shink all in parallel on startup (#17308) 2021-05-19 12:15:24 -05:00
ed9cbd50f0 move Ancestors to its own module (#17316) 2021-05-19 11:50:34 -05:00
0781fe1b4f Upgrade Rust to 1.52.0 (#17096)
* Upgrade Rust to 1.52.0
update nightly_version to newly pushed docker image
fix clippy lint errors
1.52 comes with grcov 0.8.0, include this version to script

* upgrade to Rust 1.52.1

* disabling Serum from downstream projects until it is upgraded to Rust 1.52.1
2021-05-19 09:31:47 -05:00
4788976517 rework slot list update (#17232) 2021-05-19 08:48:46 -05:00
7fe24c455c simplify generate_index (#17292) 2021-05-19 08:11:41 -05:00
305d9dd3f4 Validator progress bars are now rendered when stdout is not a terminal 2021-05-19 07:32:39 +00:00
827355a6b1 Create solana-rpc crate and move subscriptions (#17320)
* Move non_circulating_supply to runtime

* Add solana-rpc crate and move max_slots

* Move subscriptions to solana-rpc

* Single use statements
2021-05-19 00:54:28 -06:00
a3c0833a1c tests: cleanup test (#17305)
* tests: cleanup test

* 2 more replacements
2021-05-18 18:08:37 -05:00
63b97729e6 get_program_accounts_with_config() now correctly defaults to RpcClient's commitment level 2021-05-18 19:57:40 +00:00
cfcae50022 fix test (#17310) 2021-05-18 11:46:42 -07:00
00e198d169 feat: add borsh utilities and public key support (#17239)
* feat: add borsh utilities and public key support

* fix: make bn internal for flow

* fix: add Buffer import in borsh file
2021-05-18 19:33:06 +02:00
75335b4f58 datapoint for verify_snapshot_bank (#17306) 2021-05-18 12:14:43 -05:00
6cba53421e Disallow bad combination of arguments in keygen grind (#17251)
* Use constant for outfile sentinel value

* Require --use-mnemonic flag when --no-outfile flag passed to keygen grind
2021-05-18 10:35:07 -05:00
f7b0184f81 patches flaky test_new_mark_creation_time (#17288) 2021-05-18 13:39:35 +00:00
2175fc0625 calculate account infos before lock (#17245) 2021-05-18 08:06:19 -05:00
ab871ed4b7 Bump bpf-tools version to 1.8 2021-05-18 08:10:57 +02:00
c65c4475f6 Add Contextual Search (#17299)
* this should prevent other language results appearing in the search area
2021-05-18 05:47:19 +00:00
3a56a56d69 StoredMetaWriteVersion (#17293) 2021-05-17 23:58:36 +00:00
f15dd1b4ef Add C Serialization Tests for #17217 (#17294) 2021-05-17 16:33:58 -07:00
7ea1131090 Clear release cache for stable-perf (#17287) 2021-05-17 17:28:52 -06:00