carllin
c1ba265dd9
Wallclock BankingStage Throttle ( #15731 )
2021-03-15 17:11:15 -07:00
Michael Vines
0c9ca5522c
Bump version to v1.7.0
2021-03-13 09:01:21 +00:00
Tyera Eulberg
5b2da19c93
Rpc: support extended config for getConfirmedBlock ( #15827 )
...
* Add rpc confirmed-block config wrapper to support struct of extended config
* Update docs
* Make config wrapper generic and use in getConfirmedTransaction as well
* Update/clean confirmed-tx docs
2021-03-12 22:19:45 +00:00
behzad nouri
f2865dfd63
requires stakes for propagating crds values through gossip ( #15561 )
2021-03-12 15:50:14 +00:00
Justin Starry
918d04e3f0
Add more slot update notifications ( #15734 )
...
* Add more slot update notifications
* fix merge
* Address feedback and add integration test
* switch to datapoint
* remove unused shred method
* fix clippy
* new thread for rpc completed slots
* remove extra constant
* fixes
* rely on channel closing
* fix check
2021-03-12 21:44:06 +08:00
Ryo Onodera
4bbeb9c033
Remove old feature: simple_capitalization ( #15763 )
...
* Remove old feature: simple_capitalization
* Fix another failing test in core
* Finish up test cleanup
* Further clean up a bit
2021-03-12 11:12:40 +09:00
Jeff Washington (jwash)
952c3bcbb7
AccountSharedData construction ( #15790 )
2021-03-11 18:09:04 -06:00
Trent Nelson
24d18b3cf2
docs: add docs links for crates published to crates.io
2021-03-11 08:38:18 +00:00
Jeff Washington (jwash)
1135ffd595
mut data refs as slice ( #15782 )
2021-03-10 15:28:03 -06:00
behzad nouri
56923c91bf
limits number of unique pubkeys in the crds table ( #15539 )
2021-03-10 20:46:05 +00:00
Jeff Washington (jwash)
52e54e1100
account.data -> data() ( #15778 )
2021-03-09 22:31:33 +00:00
Jeff Washington (jwash)
8a3135d17b
Account->AccountSharedData ( #15691 )
2021-03-09 15:06:07 -06:00
carllin
2bee9435f3
Add tracer key for tracing transaction path through the network ( #15732 )
2021-03-08 19:31:00 -08:00
carllin
331c45decf
Report datapoint on number of retransmit shreds ( #15694 )
2021-03-08 17:54:53 -08:00
sakridge
d09112fa6d
PoH batch size calibration ( #15717 )
2021-03-05 16:01:21 -08:00
Michael Vines
4a3ab77baf
Remove unused id field
2021-03-05 19:07:59 +00:00
Michael Vines
66b781eec3
Add 'unknown' health check state
2021-03-05 17:46:50 +00:00
Tyera Eulberg
7e65289729
Convert blockstore TransactionStatus column family to protobufs ( #15733 )
...
* Prevent panic if TransactionStatus can't be deserialized
* Convert Blockstore TransactionStatus column to protobuf
* Add compatability test
2021-03-05 09:05:35 -07:00
Michael Vines
bd13262b42
Add validator startup process reporting before RPC is available
2021-03-05 08:03:36 -08:00
Michael Vines
24ab84936e
Break up RPC API into three categories: minimal, full and admin
2021-03-04 16:39:44 -08:00
Jeff Washington (jwash)
34bebb7d09
report execution details in replay time ( #15693 )
2021-03-04 11:38:12 -06:00
Jeff Washington (jwash)
be35c1c1b7
add execute detail timings ( #15638 )
2021-03-03 17:07:45 -06:00
behzad nouri
658951e680
sends only the latest vote of each validator to the banking stage ( #15629 )
2021-03-03 19:07:16 +00:00
carllin
aacb28c453
Only report metrics every second ( #15652 )
2021-03-03 10:58:47 -08:00
sakridge
830be855dc
Forward and hold packets ( #15634 )
2021-03-03 10:23:05 -08:00
Tyera Eulberg
19ac79b5cc
Deprecate UiTokenAmount::ui_amount ( #15616 )
...
* Add TokenAmount::ui_amount_string
* Fixup solana-tokens
* Update docs
2021-03-02 22:51:41 -07:00
Tyera Eulberg
a4f0033bd7
Remove ValidatorConfig derive Clone, and fix local-cluster tests ( #15647 )
...
* Remove ValidatorConfig derive Clone
* Add local-cluster ValidatorConfig helpers
* Fix benches
2021-03-03 04:21:30 +00:00
behzad nouri
0bd0084b0d
adds more metrics for tx counts and batch sizes ( #15642 )
2021-03-03 01:28:15 +00:00
behzad nouri
416ea38028
adds metrics for the size and number of batches in bank_send_loop ( #15627 )
2021-03-02 15:44:35 +00:00
Greg Fitzgerald
2463cc1e6a
Fix typos ( #15610 )
2021-03-02 06:36:49 -08:00
Michael Vines
640e36287e
Move ValidatorExit into ValidatorConfig, making it accessible from the solana-validator crate
2021-03-01 16:49:56 -08:00
sakridge
f1223fb783
Lower blockstore processor error severity ( #15578 )
2021-03-01 14:57:37 -08:00
Trent Nelson
ef63ffce7d
Bump ed25519-dalek to 1.0.1
2021-03-01 21:10:46 +00:00
carllin
ae96ba3459
Plumb slot update pubsub notifications ( #15488 )
2021-02-28 23:29:11 -08:00
behzad nouri
f7a049f87f
coalesces vote packets into one Packets ( #15566 )
2021-02-26 23:23:08 +00:00
sakridge
05409e51ce
Increase tpu coalescing and add parameter ( #15536 )
...
Should create larger entries on average
2021-02-26 09:15:45 -08:00
behzad nouri
5a9896706c
indexes epoch slots in crds table ( #15459 )
...
ClusterInfo::get_epoch_slots_since scans the entire crds table to obtain
epoch-slots inserted since a timestamp:
https://github.com/solana-labs/solana/blob/013daa8f4/core/src/cluster_info.rs#L1245-L1262
The alternative is to index epoch-slots in crds table ordered by their
insert timestamp.
2021-02-26 14:12:04 +00:00
Tyera Eulberg
1ad2c9f741
Revert "Make UiTokenAmount::ui_amount a String ( #15447 )" ( #15542 )
...
This reverts commit d14374bc9f
.
2021-02-25 21:53:40 +00:00
Michael Vines
5b54aed1c0
Speed up getLeaderSchedule
2021-02-24 11:17:25 -08:00
Justin Starry
61ed980ac0
Fix received notifications for gossip signature subscriptions ( #15506 )
2021-02-24 16:59:22 +08:00
carllin
c2e8814dce
Add limit and shrink policy for recycler ( #15320 )
2021-02-24 00:15:58 -08:00
Tyera Eulberg
52f2d425e5
Count if optimistically confirmed slot is already rooted ( #15492 )
2021-02-23 22:03:22 +00:00
sakridge
1b59b163dd
Add max retransmit and shred insert slot ( #15475 )
2021-02-23 13:06:33 -08:00
Michael Vines
4b0114b991
Limit the number of getProgramAccounts filters
2021-02-23 18:43:22 +00:00
Tyera Eulberg
d14374bc9f
Make UiTokenAmount::ui_amount a String ( #15447 )
...
* Make UiTokenAmount::ui_amount a String
* Fixup solana-tokens
* Ignore spl downstream-project
2021-02-22 13:05:45 -07:00
Ryo Onodera
5ccaa6336a
Print original error from accounts dir remove ( #15458 )
2021-02-22 21:24:09 +09:00
Ivan Mironov
013daa8f47
RPC: Improve snapshot path sanitization
2021-02-20 13:06:07 -08:00
Michael Vines
5df36aec7d
Pacify clippy
2021-02-19 20:08:41 -08:00
Michael Vines
fd3b71a2c6
cargo fmt
2021-02-19 20:08:41 -08:00
behzad nouri
aa3aac766f
adds metrics for inbound/outbound gossip packets counts ( #15407 )
2021-02-19 22:49:35 +00:00
Justin Starry
15bbe6436d
Bump SPL token version to v3.1.0 ( #15429 )
...
* Bump SPL token version to v3.1.0
* Cargo.lock
2021-02-19 09:15:41 +00:00
Tyera Eulberg
170cb792eb
Return blockstore error if previous_blockhash cannot be determined ( #15382 )
...
* Return blockstore error if previous_blockhash cannot be determined
* Add require_previous_blockshash flag
2021-02-18 01:04:52 +00:00
Trent Nelson
7f7370c306
Re-allow clippy::integer_arithmetic at crate-level
2021-02-17 13:55:08 -07:00
Michael Vines
9ba69a7381
Adapt to fs_extra 1.2.0
2021-02-17 12:44:58 -08:00
sakridge
b24cb9840e
Speedup ledger cleanup test ( #15304 )
...
Just clone to produce shreds and use a separate insert thread.
2021-02-17 08:59:25 -08:00
Tyera Eulberg
98e3e570d2
Add --force arg for bigtable upload
2021-02-16 17:24:07 -08:00
Jeff Washington (jwash)
ba02452d75
add validator flag no-accounts-db-index-hashing ( #15350 )
...
* add validator flag no_accounts_db_index_hashing
* add validator flag no_accounts_db_index_hashing
2021-02-16 21:13:48 +00:00
behzad nouri
f79c9d4094
adds an upper bound on cluster-slots size ( #15300 )
...
https://github.com/solana-labs/solana/issues/14366#issuecomment-769096305
2021-02-16 21:12:13 +00:00
behzad nouri
076c20f1ca
checks that prune-messages have the same inner/outer pubkey ( #15352 )
2021-02-16 21:06:18 +00:00
Trent Nelson
b3256aa722
Bump rand_core to 0.6.2
...
https://rustsec.org/advisories/RUSTSEC-2021-0023
2021-02-15 22:51:35 +00:00
sakridge
5b8f046c67
More configurable rocksdb compaction ( #15213 )
...
rocksdb compaction can cause long stalls, so
make it more configurable to try and reduce those stalls
and also to coordinate between multiple nodes to not induce
stall at the same time.
2021-02-14 10:16:30 -08:00
carllin
629dcd0f39
Cleanup buffered packets ( #15210 )
2021-02-12 03:27:37 -08:00
carllin
990bb426a9
Fix flaky test test_concurrent_snapshot_packaging ( #15252 )
2021-02-11 16:03:51 -08:00
Josh
4013f91dbe
RPC: add caching to getLargestAccounts ( #15154 )
...
* introduce get largest accounts cache
* remove cache size and change hash key
* remove eq and hash derivation from commitment config
* add slot to the cache
2021-02-11 11:32:46 -08:00
Tyera Eulberg
948819dfa8
Use spl-token-mint secondary index for relevant getProgramAccounts requests ( #15219 )
2021-02-09 15:49:13 -07:00
Tyera Eulberg
da6753b8c0
Warp timestamp and extend max-allowable-drift for accommodate slow blocks ( #15204 )
...
* Remove timestamp_correction feature gating
* Remove timestamp_bounding feature gating
* Remove unused deprecated ledger code
* Remove unused deprecated unbounded-timestamp code
* Enable independent adjustment of fast/slow timestamp bounding
* Update timestamp bounds to 25% fast, 80% slow; warp timestamp
* Update bank hash test
* Add PR number to feature
Co-authored-by: Michael Vines <mvines@gmail.com>
Co-authored-by: Michael Vines <mvines@gmail.com>
2021-02-09 15:49:00 -07:00
behzad nouri
2758588ddd
uses btree-map instead of hash-map for cluster-slots ( #15194 )
...
retain traverses all values in the hashmap which is slow:
https://github.com/solana-labs/solana/blob/88f22c360/core/src/cluster_slots.rs#L45
btree-map instead allows more efficient prunning there.
In addition there is potential race condition here:
https://github.com/solana-labs/solana/blob/88f22c360/core/src/cluster_slots.rs#L68-L74
If another thread inserts a value at the same slot key between the read
and write lock, current thread will discard the inserted value.
2021-02-09 22:04:41 +00:00
Michael Vines
f063f02c41
solana-test-validator now uses the BPF JIT by default, `--no-bpf-jit` to disable
2021-02-09 20:24:14 +00:00
Michael Vines
2caed6bd4c
Complete --rpc-pubsub-max-in-buffer-capacity/--rpc-pubsub-max-out-buffer-capacity plumbing
2021-02-09 07:24:30 +00:00
behzad nouri
b6f231b60e
removes locked pubkey references ( #15152 )
2021-02-08 02:07:00 +00:00
sakridge
bbae23358c
ledger-tool cleanup and additions ( #15179 )
...
* Plumb allow-dead-slots to ledger-tool verify
* ledger-tool cleanup and add some useful missing args
Print root slots and how many unrooted past last root.
2021-02-06 17:26:42 -08:00
Jeff Washington (jwash)
fbf9dc47e9
Threadpool2 ( #15151 )
...
* rework thread pool for hash calculation
* rename
2021-02-05 18:48:16 -06:00
Jeff Washington (jwash)
fabecdc86c
use thread pool for non-index hash calculations ( #15149 )
2021-02-05 19:48:55 +00:00
behzad nouri
6fd5ec0e4c
caches descendants in bank forks ( #15107 )
2021-02-05 18:00:45 +00:00
Ryo Onodera
c69027e5aa
chore: bump serde from 1.0.118 to 1.0.122 ( #15126 )
...
* chore: bump serde from 1.0.118 to 1.0.122
* Update programs/bpf/Cargo.lock
2021-02-05 19:23:24 +09:00
Tyera Eulberg
d1563f0ccd
Bump tonic, prost, tarpc, tokio ( #15013 )
...
* Update tonic & prost, and regenerate proto
* Reignore doc code
* Revert pull #14367 , but pin tokio to v0.2 for jsonrpc
* Bump backoff and goauth -> and therefore tokio
* Bump tokio in faucet, net-utils
* Bump remaining tokio, plus tarpc
2021-02-05 00:21:53 -07:00
Jeff Washington (jwash)
600ff0d915
calculate hash from store instead of index ( #15034 )
...
* calculate hash from store instead of index
* restore update hash in abs
2021-02-04 09:00:33 -06:00
behzad nouri
86467d825a
removes pubkey references ( #15050 )
2021-02-03 23:02:11 +00:00
behzad nouri
0ad063f4e9
adds flag to disable duplicate instance check ( #15006 )
2021-02-03 16:26:17 +00:00
Tyera Eulberg
98aa1fa4ea
Upgrade jsonrpc crates to v17.0.0 ( #15018 )
...
* Upgrade to jsonrpc 17.0.0
* Fix test
* tree
Co-authored-by: Michael Vines <mvines@gmail.com>
2021-02-02 19:53:08 -07:00
dependabot[bot]
1df93fa2be
chore: bump serde from 1.0.112 to 1.0.118 ( #14828 )
...
* chore: bump serde from 1.0.112 to 1.0.122
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.112 to 1.0.122.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.112...v1.0.122 )
Signed-off-by: dependabot[bot] <support@github.com>
* [auto-commit] Update all Cargo lock files
* Update frozen_abi digest following serde update
* Revert "chore: bump serde from 1.0.112 to 1.0.122"
This reverts commit a3ef4442a4c985144ae2bd7ceaf8899a7ab8d7c0.
* Revert "[auto-commit] Update all Cargo lock files"
This reverts commit c41c3b005fb1ccade55155302c52cd5736c4b55f.
* chore: bump serde from 1.0.112 to 1.0.118
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.112 to 1.0.118.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.112...v1.0.118 )
Signed-off-by: dependabot[bot] <support@github.com>
* [auto-commit] Update all Cargo lock files
* Remove serum-dex pinning
* blind commit!
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2021-02-02 23:28:16 +09:00
Tyera Eulberg
cbb8b79a60
Add validator flag to opt in to cpi and logs storage ( #14922 )
...
* Add validator flag to opt in to cpi and logs storage
* Default TestValidator to opt-in; allow using in multinode-demo
* No clone
Co-authored-by: Carl Lin <carl@solana.com>
2021-02-01 14:00:51 -07:00
Tom Parker-Shemilt
01230a0105
Remove serial_test_derive dependency ( #14891 )
2021-01-28 22:35:31 -07:00
Ryo Onodera
d6873b82ab
Remove potentially too costly Packets::default() ( #14821 )
...
* Remove potentially too costly Packets::default()
* Fix test...
* Restore Packets::default()
* Restore Packets::default() more
2021-01-29 09:32:38 +09:00
Michael Vines
119e2c75dd
cli now supports a custodian for stake authorize operations
2021-01-26 11:48:28 -08:00
Tyera Eulberg
ffa5c7dcc8
Deprecate commitment variants ( #14797 )
...
* Deprecate commitment variants
* Add new CommitmentConfig builders
* Add helpers to avoid allowing deprecated variants
* Remove deprecated transaction-status code
* Include new commitment variants in runtime commitment; allow deprecated as long as old variants persist
* Remove deprecated banks code
* Remove deprecated variants in core; allow deprecated in rpc/rpc-subscriptions for now
* Heavier hand with rpc/rpc-subscription commitment
* Remove deprecated variants from local-cluster
* Remove deprecated variants from various tools
* Remove deprecated variants from validator
* Update docs
* Remove deprecated client code
* Add new variants to cli; remove deprecated variants as possible
* Don't send new commitment variants to old clusters
* Retain deprecated method in test_validator_saves_tower
* Fix clippy matches! suggestion for BPF solana-sdk legacy compile test
* Refactor node version check to handle commitment variants and transaction encoding
* Hide deprecated variants from cli help
* Add cli App comments
2021-01-26 19:23:07 +00:00
behzad nouri
d1df9da7d3
fixes test_filter_current flakiness ( #14816 )
2021-01-25 15:57:46 +00:00
Ryo Onodera
bd0433c373
Clean up VerifiedVotePackets ( #14822 )
2021-01-25 09:01:47 +00:00
behzad nouri
e1021d9f83
removes redundant epoch stakes cache in retransmit ( #14781 )
...
Following d6d76219b
, staked nodes computed from vote accounts are
already cached in runtime::Stakes, so the caching in retransmit_stage is
redundant.
2021-01-24 21:15:09 +00:00
behzad nouri
491b059755
broadcasts duplicate shreds through gossip ( #14699 )
2021-01-24 15:47:43 +00:00
Michael Vines
cbffab7850
Upgrade to Rust v1.49.0
2021-01-23 19:16:36 -08:00
Michael Vines
bf1943e489
Add solana-test-validator --warp-slot argument
2021-01-22 21:17:02 -08:00
Michael Vines
cbb9ac19b9
Add ability to clone accounts from an RPC endpoint
2021-01-22 13:29:36 -08:00
Tyera Eulberg
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
behzad nouri
e4da6761a7
fixes test_filter_current flakiness ( #14749 )
2021-01-21 21:53:10 +00:00
behzad nouri
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
Michael Vines
04ce33a04e
Ensure sanitary transactions
2021-01-20 23:59:32 -08:00
Ryo Onodera
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
behzad nouri
b5fd0ed859
rewrites turbine retransmit peers computation ( #14584 )
2021-01-19 04:18:47 +00:00
behzad nouri
c6ae0667e6
feature gates turbine retransmit peers patch ( #14631 )
2021-01-19 04:16:19 +00:00
Michael Vines
5d9dc609b1
Rename RpcNodeUnhealthy error to NodeUnhealthy, generalize `getHealth` RPC error object for the future
2021-01-18 19:57:25 -08:00
Tyera Eulberg
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
carllin
5f14f45282
More generic accounts purge functions ( #14595 )
...
Co-authored-by: Carl Lin <carl@solana.com>
2021-01-17 20:31:03 -08:00
Ryo Onodera
8d4ab1bab1
Clean up and add comment
2021-01-17 19:59:59 -08:00
Ryo Onodera
5cf9094bb9
WIP fix the occasional stuck RPC request
2021-01-17 19:59:59 -08:00
Michael Vines
4003f86f04
Add `getSnapshotSlot` RPC method
2021-01-16 19:31:21 +00:00
Michael Vines
dacb95083d
Add `getHealth` RPC method
2021-01-16 10:10:48 -08:00
Tyera Eulberg
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
dependabot[bot]
4ecc0f4fa6
chore: bump rayon from 1.4.1 to 1.5.0 ( #14177 )
...
* chore: bump rayon from 1.4.1 to 1.5.0
Bumps [rayon](https://github.com/rayon-rs/rayon ) from 1.4.1 to 1.5.0.
- [Release notes](https://github.com/rayon-rs/rayon/releases )
- [Changelog](https://github.com/rayon-rs/rayon/blob/master/RELEASES.md )
- [Commits](https://github.com/rayon-rs/rayon/compare/rayon-core-v1.4.1...rayon-core-v1.5.0 )
Signed-off-by: dependabot[bot] <support@github.com>
* [auto-commit] Update all Cargo lock files
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2021-01-15 18:07:35 +09:00
Michael Vines
1c2ae15b1d
Improve solana-test-validator output
2021-01-14 23:07:24 -08:00
sakridge
907f518f6d
Add load/execute/store timings ( #14561 )
2021-01-14 14:14:16 -08:00
behzad nouri
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
Michael Vines
11daaadc93
Add --rpc-threads argument
2021-01-13 13:34:46 -08:00
Tyera Eulberg
e1b59ded4b
Use leader_forward_count for tx retries too ( #14547 )
2021-01-13 11:14:22 -07:00
Jeff Washington (jwash)
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
carllin
6dfad0652f
Cache account stores, flush from AccountsBackgroundService ( #13140 )
2021-01-11 17:00:23 -08:00
Tyera Eulberg
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
Michael Vines
a95675a7ce
Avoid tmp snapshot backlog in SnapshotPackagerService under high load ( #14516 )
2021-01-11 10:21:15 -08:00
Michael Vines
7be6770808
Rename CompressionType to ArchiveFormat
2021-01-09 09:07:49 -08:00
Michael Vines
141e6706e6
Rename AccountsPackage::root to AccountsPackage::slot
2021-01-09 09:07:49 -08:00
behzad nouri
766195dded
limits number of crds values associated with a pubkey ( #14467 )
2021-01-08 18:54:40 +00:00
Jeff Washington (jwash)
773b21b34e
consolidate DEFAULT_HASHES_PER_TICK ( #14463 )
2021-01-07 09:49:42 -06:00
sakridge
c282586753
Add fixed tick rate adjustment ( #14447 )
2021-01-05 19:25:44 -08:00
Tyera Eulberg
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
carllin
5affd8aa72
Add secondary indexes ( #14212 )
2020-12-31 18:06:03 -08:00
Michael Vines
4a3d217839
Only initialize BigTable upload service when requested
2020-12-31 17:40:51 -08:00
Michael Vines
0b23abd479
Bind RPC and faucet to 0.0.0.0
2020-12-31 07:55:26 +00:00
Michael Vines
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
Michael Vines
fb6c660cfd
Port ip-echo-server to tokio 0.3
2020-12-30 09:29:16 -08:00
Trent Nelson
fe667db910
validator: Add experimental flag to select PoH pinned core
2020-12-29 19:15:44 -07:00
Trent Nelson
82f61c0c4a
core: Update stale error message
2020-12-29 19:15:44 -07:00
sakridge
f8a4afc7c1
Fix flaky broadcast test ( #14329 )
2020-12-29 12:35:04 -08:00
sakridge
2074e407cd
Add poh speed check and tick speed calibration ( #14292 )
2020-12-29 09:35:57 -08:00
Michael Vines
444ed768dc
Upgrade in-tree tokio 0.2 usage to tokio 0.3
2020-12-29 09:23:23 -08:00
Tyera Eulberg
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
Michael Vines
9ddd6f08e8
Persist gossip contact info
2020-12-27 20:46:54 -08:00
sakridge
c693ffaa08
Fix subtraction overflow in metrics ( #14290 )
2020-12-27 16:26:22 -08:00
behzad nouri
2fd38d9912
indexes votes in crds table ( #14272 )
2020-12-27 13:31:05 +00:00
behzad nouri
49019c6613
obtains staked-nodes from the root-bank ( #14257 )
...
... as opposed to the working bank
2020-12-27 13:28:05 +00:00
Trent Nelson
5b903318b2
vote: Add helper for creating current-versioned states
2020-12-22 19:37:26 -07:00
Michael Vines
ace360ade2
Multiple entrypoint support
2020-12-22 18:35:31 -08:00
Michael Vines
3373082ffa
Update entrypoint contact info even when shred version adoption is not requested
2020-12-22 18:35:31 -08:00
behzad nouri
a14cfd660a
removes &Arc<Self> receivers ( #14234 )
2020-12-22 23:51:53 +00:00
sakridge
baa9602411
Add shrink paths ( #14238 )
2020-12-21 21:33:37 -08:00
behzad nouri
7b08cb1f0d
improves performance in replay-stage ( #14217 )
...
bank::vote_accounts returns a hash-map which is slow to iterate, but all uses
only require an iterator:
https://github.com/solana-labs/solana/blob/b3dc98856/runtime/src/bank.rs#L4300-L4306
Similarly, calculate_stake_weighted_timestamp takes a hash-map whereas it only
requires an iterator:
https://github.com/solana-labs/solana/blob/b3dc98856/sdk/src/stake_weighted_timestamp.rs#L21-L28
2020-12-21 19:18:19 +00:00
Michael Vines
57b03c5bc1
Restore Content-Length header for streaming snapshot download
2020-12-20 23:22:26 -08:00
Michael Vines
b3dc988564
Stream RPC snapshot downloads
2020-12-19 15:54:23 -08:00
Michael Vines
0090106f60
getBlockTime RPC method now falls back to BigTable in all cases
2020-12-18 20:51:49 +00:00
behzad nouri
691031fefd
limits number of crds values returned when responding to pull requests ( #13739 )
...
Crds values buffered when responding to pull-requests can be very large taking a lot of memory.
Added a limit for number of buffered crds values based on outbound data budget.
2020-12-18 18:45:12 +00:00
behzad nouri
6a3797e164
adds crds-value for broadcasting duplicate shreds through gossip ( #14133 )
...
In gossip, the header overhead we get from:
https://github.com/solana-labs/solana/blob/de9ac43eb/core/src/cluster_info.rs#L434-L435
https://github.com/solana-labs/solana/blob/de9ac43eb/core/src/crds_value.rs#L31-L36
https://github.com/solana-labs/solana/blob/de9ac43eb/core/src/crds_value.rs#L73
already exceeds SIZE_OF_NONCE in shreds. We also need aditional
meta-data (wallclock, source pubkey, ...). Which means that given the
SHRED_PAYLOAD_SIZE, we cannot fit all these in PACKET_DATA_SIZE:
https://github.com/solana-labs/solana/blob/de9ac43eb/ledger/src/shred.rs#L80
On top of that, we need 2 shred payloads as the proof of duplicate. So
each DuplicateShred crds value includes only a chunk of the payload,
along with the meta-data to reconstruct the full payload from the chunks
on the receiving end.
2020-12-18 14:32:43 +00:00
sakridge
a5db6399ad
Fix test_max_hashes ( #14189 )
2020-12-17 15:12:18 -08:00
sakridge
da7d1e2302
Improved Transaction Forwarding ( #13944 )
...
* Forwarding
* Dedupe leaders
* Use consistent commitment for last_valid_slot in rpc send_transaction
* Plumb rpc send_transaction options into solana-validator
* Extend num slots banking-stage holds forwarded txs
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2020-12-17 15:37:22 -07:00
behzad nouri
d6d76219b6
caches staked nodes computed from vote-accounts ( #13929 )
2020-12-17 21:22:50 +00:00
Michael Vines
0b92720fdb
Don't require increased open file limit in solana-test-validator
...
Travis CI in particular does not allow the open file limit to be
increased.
2020-12-16 20:43:08 -08:00
Trent Nelson
6875113d82
Bump SPL crates
2020-12-17 01:54:22 +00:00
Tyera Eulberg
ac0d32bc7e
Add blockstore skipped api ( #14145 )
...
* Add blockstore api to determine if a slot was skipped
* Return custom rpc error if slot is skipped
2020-12-16 13:40:36 -07:00
sakridge
d4a174fb7c
Partial shred deserialize cleanup and shred type differentiation ( #14094 )
...
* Partial shred deserialize cleanup and shred type differentiation in retransmit
* consolidate packet hashing logic
2020-12-15 16:50:40 -08:00
carllin
75e9e321de
Fix race between setting tick height and calculating accounts hash ( #14101 )
...
Co-authored-by: Carl Lin <carl@solana.com>
2020-12-15 12:45:40 -08:00
Michael Vines
1e977ac025
Bump version to v1.6.0
2020-12-15 18:28:04 +00:00
behzad nouri
c2b7115031
indexes crds values associated with a pubkey ( #14088 )
...
record_labels returns all the possible labels for a record identified by
a pubkey, used in updating timestamp of crds values:
https://github.com/solana-labs/solana/blob/1792100e2/core/src/crds_value.rs#L560-L577
https://github.com/solana-labs/solana/blob/1792100e2/core/src/crds.rs#L240-L251
The code relies on CrdsValueLabel to be limited to a small deterministic
set of possible values for a fixed pubkey. As we expand crds values to
include duplicate shreds, this limits what the duplicate proofs can be
keyed by in the table.
In addition the computation of these labels is inefficient and will
become more so as duplicate shreds and more types of crds values are
added. An alternative is to maintain an index of all crds values
associated with a pubkey.
2020-12-15 01:49:22 +00:00
sakridge
5294f70189
Remove some non-warnings ( #14115 )
2020-12-14 16:26:17 -08:00
Michael Vines
7143aaa89b
Clippy
2020-12-14 08:03:29 -08:00
Michael Vines
cdd3e7d856
Remove solana-vote-signer ( #14099 )
2020-12-13 19:12:20 -08:00
Michael Vines
9f2d154588
Rework TestValidator API to be more like ProgramTest
2020-12-13 07:45:55 +00:00
dependabot[bot]
88d950e5a8
chore: bump log from 0.4.8 to 0.4.11 ( #13691 )
...
* chore: bump log from 0.4.8 to 0.4.11
Bumps [log](https://github.com/rust-lang/log ) from 0.4.8 to 0.4.11.
- [Release notes](https://github.com/rust-lang/log/releases )
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/log/compare/0.4.8...0.4.11 )
Signed-off-by: dependabot[bot] <support@github.com>
* [auto-commit] Update all Cargo lock files
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2020-12-13 13:48:23 +09:00
carllin
55fc963595
Move slot cleanup to AccountsBackgroundService ( #13911 )
...
* Move bank drop to AccountsBackgroundService
* Send to ABS on drop instead, protects against other places banks are dropped
* Fix Abi
* test
Co-authored-by: Carl Lin <carl@solana.com>
2020-12-13 01:22:34 +00:00
Tyera Eulberg
8541ffa328
Add subscription cap ( #14011 )
...
* Add subscription cap
* Elide unwraps
2020-12-12 01:57:40 +00:00
Trent Nelson
546c6a4531
Override yanked miow crate to 0.2.2
2020-12-11 23:44:03 +00:00
Trent Nelson
277b6790c7
Override yanked net2 0.2.37
2020-12-11 23:44:03 +00:00
Ryo Onodera
09bd412b13
Wrong rpc inflation rate ( #14063 )
...
* Fix wrong inflation calculation in rpc
* Reorder
* Fix test
2020-12-11 07:42:39 +00:00
Michael Vines
4fba7e6865
Move validator_block_0_fee_workaround into TestValidator
2020-12-11 04:17:38 +00:00
Michael Vines
bbad3fe501
TestValidator now implements Drop, no need to close() it
2020-12-11 04:17:38 +00:00
Michael Vines
0a9ff1dc9d
Initial solana-test-validator command-line program
2020-12-11 04:17:38 +00:00
Josh
13db3eca9f
SPL token balance in transaction metadata ( #13673 )
...
* feat: store pre / post token balances
* move helper functions into separate include
* move token balance functionality to transaction-status crate
* fix blockstore processor test
* fix bigtable legacy test
* add caching to decimals
2020-12-10 19:25:07 -08:00
sakridge
aa2751e614
Check shred type in is_duplicate ( #14050 )
2020-12-10 18:20:08 -08:00
behzad nouri
409fe3bca1
adds the instance token to crds-labels for node-instance crds-values ( #14037 )
...
If a node "a" receives instance-info from node "b1" it will override any
instance-info associated with "b1" pubkey in its crds table. This makes
it less likely that when "b1" receives crds values from "a" (either
through pull or push), it sees other instances of itself (because node
"a" discarded them when it received "b1" instance info).
In order for the crds table to contain all instance-info associated with
the same pubkey at the same time, we need to add the instance tokens to
the keys in the crds table (i.e. the CrdsValueLabel).
2020-12-10 17:01:55 +00:00
sakridge
5c95d8e963
Shred filter ( #14030 )
2020-12-10 07:54:15 -08:00
sakridge
c5fe076432
Better dupe detection ( #13992 )
2020-12-09 23:14:31 -08:00
behzad nouri
1d267eae6b
std::process::exit to kill all threads
2020-12-09 10:24:23 -08:00
behzad nouri
895d7d6a65
removes RwLock on ClusterInfo.instance
2020-12-09 10:24:23 -08:00
behzad nouri
542198180a
pushes node-instance along with version early in gossip
2020-12-09 10:24:23 -08:00
behzad nouri
8cd5eb9863
checks for duplicate validator instances using gossip
2020-12-09 10:24:23 -08:00
sakridge
f6600810d7
Use LRU cache and blake3 hash of shreds to filter duplicates ( #13976 )
2020-12-07 16:42:39 -08:00
Michael Vines
6e9dbb4f6e
Add --rpc-max-multiple-accounts to override the getMultipleAccounts JSON RPC maximum
2020-12-07 16:31:01 -08:00
carllin
239a191612
Remove unneeded BankWeight fork choice ( #13978 )
...
Co-authored-by: Carl Lin <carl@solana.com>
2020-12-07 13:47:14 -08:00
Tyera Eulberg
6ae4d2e5cb
Fix logsSubscribe ( #13996 )
2020-12-07 19:00:52 +00:00
Ryo Onodera
3d9d7557c8
core/validator: Wrap std::process:exit(1) for easier testing ( #13990 )
2020-12-07 16:43:03 +00:00
Alexander Meißner
a706706572
Validator CLI option to enable just-in-time compilation of BPF ( #13789 )
...
* Adds a CLI option to the validator to enable just-in-time compilation of BPF.
* Refactoring to use bpf_loader_program instead of feature_set to pass JIT flag from the validator CLI to the executor.
2020-12-07 09:49:55 +01:00
behzad nouri
6706f2b3bb
removes recursive read-locks on gossip ( #13973 )
...
ClusterInfo::tvu_peers acquires a read-lock on gossip:
https://github.com/solana-labs/solana/blob/f0e934145/core/src/cluster_info.rs#L1171-L1185
and so, ClusterInfo::repair_peers is recursively locking gossip for
read twice:
https://github.com/solana-labs/solana/blob/f0e934145/core/src/cluster_info.rs#L1202-L1223
But std::sync::RwLock is not re-entrant (recursive).
2020-12-06 15:14:49 +00:00
Tyera Eulberg
ca35bb3ac8
Report highest_confirmed_root and _slot in commitment metric ( #13964 )
2020-12-05 00:50:00 +00:00
carllin
34b68288c8
Fix propagation skip check ( #13933 )
...
Co-authored-by: Carl Lin <carl@solana.com>
2020-12-03 12:31:38 -08:00
behzad nouri
c3048b451d
samples repair peers using WeightedIndex ( #13919 )
...
To output one random sample, weighted_best generates n random numbers:
https://github.com/solana-labs/solana/blob/f751a5d4e/core/src/weighted_shuffle.rs#L38-L63
WeightedIndex does so with only one random number:
https://github.com/rust-random/rand/blob/eb02f0e46/src/distributions/weighted_index.rs#L223-L240
Additionally, if the index is already constructed, it only does a total
of O(log(n)) amount of work; which can be achieved if RepairCache,
caches the weighted index:
https://github.com/solana-labs/solana/blob/f751a5d4e/core/src/serve_repair.rs#L83
Also, the repair-peers code can be reorganized to have fewer redundant
unlock-then-lock code.
2020-12-03 14:26:07 +00:00
Trent Nelson
404fc1570d
runtime: Replace `HashAgeKind` with `NonceRollbackInfo`
2020-12-02 20:10:08 +00:00
Tyera Eulberg
10c81a2448
Remove rpc_banks from validator ( #13882 )
...
* Remove rpc_banks from validator
* Bump abi-digest
2020-12-02 03:25:09 +00:00
Michael Vines
0a8bc347a1
Restore discover_cluster to avoid test panics
2020-12-01 17:58:28 -08:00
Michael Vines
3eece38ffa
Add expects() to improve error logs on join failures
2020-12-01 17:58:28 -08:00
Michael Vines
73111b005f
Reduce the number of snapshots
2020-12-01 11:13:37 -08:00
Tyera Eulberg
8fd1e55805
Add logging in check_blockstore_max_root ( #13887 )
2020-12-01 07:44:18 +00:00
Michael Vines
90d557d916
Strengthen EpochSlots sanitization
2020-11-30 14:40:25 -08:00
behzad nouri
e1793e5a13
caches vote-state de-serialized from vote accounts ( #13795 )
...
Gossip and other places repeatedly de-serialize vote-state stored in
vote accounts. Ideally the first de-serialization should cache the
result.
This commit adds new VoteAccount type which lazily de-serializes
VoteState from Account data and caches the result internally.
Serialize and Deserialize traits are manually implemented to match
existing code. So, despite changes to frozen_abi, this commit should be
backward compatible.
2020-11-30 17:18:33 +00:00