Commit Graph

1985 Commits

Author SHA1 Message Date
491b059755 broadcasts duplicate shreds through gossip (#14699) 2021-01-24 15:47:43 +00:00
cbffab7850 Upgrade to Rust v1.49.0 2021-01-23 19:16:36 -08:00
bf1943e489 Add solana-test-validator --warp-slot argument 2021-01-22 21:17:02 -08:00
cbb9ac19b9 Add ability to clone accounts from an RPC endpoint 2021-01-22 13:29:36 -08:00
71e9958e06 Rpc: Add custom error for BigTable data not found (#14762)
* Expose not-found bigtable error

* Add custom rpc error for bigtable data not found

* Return custom rpc error when bigtable block is not found

* Generalize long-term storage
2021-01-22 04:40:47 +00:00
e4da6761a7 fixes test_filter_current flakiness (#14749) 2021-01-21 21:53:10 +00:00
8e581601d6 patches crds vote-index assignment bug (#14438)
If tower is full, old votes are evicted from the front of the deque:
https://github.com/solana-labs/solana/blob/2074e407c/programs/vote/src/vote_state/mod.rs#L367-L373
whereas recent votes if expire are evicted from the back:
https://github.com/solana-labs/solana/blob/2074e407c/programs/vote/src/vote_state/mod.rs#L529-L537

As a result, from a single tower_index scalar, we cannot infer which crds-vote
should be overwritten:
https://github.com/solana-labs/solana/blob/2074e407c/core/src/crds_value.rs#L576

In addition there is an off by one bug in the existing code. tower_index is
bounded by MAX_LOCKOUT_HISTORY - 1:
https://github.com/solana-labs/solana/blob/2074e407c/core/src/consensus.rs#L382
So, it is at most 30, whereas MAX_VOTES is 32:
https://github.com/solana-labs/solana/blob/2074e407c/core/src/crds_value.rs#L29
Which means that this branch is never taken:
https://github.com/solana-labs/solana/blob/2074e407c/core/src/crds_value.rs#L590-L593
so crds table alwasys keeps 29 **oldest** votes by wallclock, and then
only overrides the 30st one each time. (i.e a tally of only two most
recent votes).
2021-01-21 13:08:07 +00:00
04ce33a04e Ensure sanitary transactions 2021-01-20 23:59:32 -08:00
dcaa025822 Configure Bigtable's timeout, enabling by default (#14657)
* Configure bigtable's timeout when read-only

* Review comments

* Apply nits (thanks!)

Co-authored-by: Michael Vines <mvines@gmail.com>

* Timeout in the streamed decoding as well

Co-authored-by: Michael Vines <mvines@gmail.com>
2021-01-19 13:57:16 +00:00
b5fd0ed859 rewrites turbine retransmit peers computation (#14584) 2021-01-19 04:18:47 +00:00
c6ae0667e6 feature gates turbine retransmit peers patch (#14631) 2021-01-19 04:16:19 +00:00
5d9dc609b1 Rename RpcNodeUnhealthy error to NodeUnhealthy, generalize getHealth RPC error object for the future 2021-01-18 19:57:25 -08:00
cbf8ef7480 Make Bigtable::get_confirmed_blocks inclusive of requested start_slot and end_slot (#14651)
* Fix off-by-one error

* Filter out blocks greater than end slot
2021-01-18 19:14:10 -07:00
5f14f45282 More generic accounts purge functions (#14595)
Co-authored-by: Carl Lin <carl@solana.com>
2021-01-17 20:31:03 -08:00
8d4ab1bab1 Clean up and add comment 2021-01-17 19:59:59 -08:00
5cf9094bb9 WIP fix the occasional stuck RPC request 2021-01-17 19:59:59 -08:00
4003f86f04 Add getSnapshotSlot RPC method 2021-01-16 19:31:21 +00:00
dacb95083d Add getHealth RPC method 2021-01-16 10:10:48 -08:00
9a89689ad3 Use optimistic confirmation in getSignatureStatuses, and various downstream client methods (#14430)
* Add optimistically_confirmed field to TransactionStatus

* Update docs

* Convert new field to confirmation_status

* Update docs to confirmationStatus

* Update variants

* Update docs

* Just Confirmed
2021-01-15 16:05:05 +00:00
1c2ae15b1d Improve solana-test-validator output 2021-01-14 23:07:24 -08:00
907f518f6d Add load/execute/store timings (#14561) 2021-01-14 14:14:16 -08:00
cfcca1cd3c patches bug in turbine's neighbors computation (#14565)
Removing local node's index early from the set here:
https://github.com/solana-labs/solana/blob/e1b59ded4/core/src/retransmit_stage.rs#L346
distorts the order of nodes depending on which node is computing the
turbine fan-out tree, and results in incorrect neighbors computation.
2021-01-13 22:25:29 +00:00
11daaadc93 Add --rpc-threads argument 2021-01-13 13:34:46 -08:00
e1b59ded4b Use leader_forward_count for tx retries too (#14547) 2021-01-13 11:14:22 -07:00
935dfdf0f6 fill in timing gaps in replay_stage (#14550)
* fill in timing gaps in replay_stage

* add replay_stage bank_count metric

* formatting

* handle another gap

* cleanup wait_receive_time to be more straightforward
2021-01-13 10:08:53 -06:00
6dfad0652f Cache account stores, flush from AccountsBackgroundService (#13140) 2021-01-11 17:00:23 -08:00
b0e6e29527 Update timestamp max allowable drift to 50% of PoH (#14531)
* Repurpose warp-timestamp feature for general bump

* Change max_allowable_drift to 50%

* Fill in PR#

* Fix rpc test setup
2021-01-11 23:27:30 +00:00
a95675a7ce Avoid tmp snapshot backlog in SnapshotPackagerService under high load (#14516) 2021-01-11 10:21:15 -08:00
7be6770808 Rename CompressionType to ArchiveFormat 2021-01-09 09:07:49 -08:00
141e6706e6 Rename AccountsPackage::root to AccountsPackage::slot 2021-01-09 09:07:49 -08:00
766195dded limits number of crds values associated with a pubkey (#14467) 2021-01-08 18:54:40 +00:00
773b21b34e consolidate DEFAULT_HASHES_PER_TICK (#14463) 2021-01-07 09:49:42 -06:00
c282586753 Add fixed tick rate adjustment (#14447) 2021-01-05 19:25:44 -08:00
ce1766d798 Enable program-id account index for supply calculations (#14444)
* Enable program-id account index for supply calculations

* Fixup comments
2021-01-06 02:42:33 +00:00
5affd8aa72 Add secondary indexes (#14212) 2020-12-31 18:06:03 -08:00
4a3d217839 Only initialize BigTable upload service when requested 2020-12-31 17:40:51 -08:00
0b23abd479 Bind RPC and faucet to 0.0.0.0 2020-12-31 07:55:26 +00:00
3d077fb656 Revert "Upgrade in-tree tokio 0.2 usage to tokio 0.3"
This reverts commit 444ed768dc.
2020-12-31 06:26:53 +00:00
fb6c660cfd Port ip-echo-server to tokio 0.3 2020-12-30 09:29:16 -08:00
fe667db910 validator: Add experimental flag to select PoH pinned core 2020-12-29 19:15:44 -07:00
82f61c0c4a core: Update stale error message 2020-12-29 19:15:44 -07:00
f8a4afc7c1 Fix flaky broadcast test (#14329) 2020-12-29 12:35:04 -08:00
2074e407cd Add poh speed check and tick speed calibration (#14292) 2020-12-29 09:35:57 -08:00
444ed768dc Upgrade in-tree tokio 0.2 usage to tokio 0.3 2020-12-29 09:23:23 -08:00
3f10fb993b Retry durable-nonce transactions (#14308)
* Retry durable-nonce transactions

* Add metric to track durable-nonce txs in queue

* Populate send-tx-service initial addresses with tpu_address if empty (primarily for testing)

* Reinstate last_valid_slot check for durable-nonce txs; use arbitrary future slot
2020-12-29 09:48:43 -07:00
9ddd6f08e8 Persist gossip contact info 2020-12-27 20:46:54 -08:00
c693ffaa08 Fix subtraction overflow in metrics (#14290) 2020-12-27 16:26:22 -08:00
2fd38d9912 indexes votes in crds table (#14272) 2020-12-27 13:31:05 +00:00
49019c6613 obtains staked-nodes from the root-bank (#14257)
... as opposed to the working bank
2020-12-27 13:28:05 +00:00
5b903318b2 vote: Add helper for creating current-versioned states 2020-12-22 19:37:26 -07:00