Michael Vines
6f325d4594
`solana-validator --rpc-bind-address` argument now works as expected
2020-09-10 13:36:13 -07:00
Tyera Eulberg
05db41fe9c
Cache block time in Blockstore ( #11955 )
...
* Add blockstore column to cache block times
* Add method to cache block time
* Add service to cache block time
* Update rpc getBlockTime to use new method, and refactor blockstore slightly
* Return block_time with confirmed block, if available
* Add measure and warning to cache-block-time
2020-09-09 09:33:14 -06:00
anatoly yakovenko
c67f8bd821
Forward transactions to the expected leader instead of your own TPU port ( #12004 )
...
* Use PoHRecorder to send to the right leader
* cleanup
* fmt
* clippy
* Cleanup, fix bug
Co-authored-by: Carl <carl@solana.com>
2020-09-08 17:00:49 +08:00
carllin
1c1a3f979d
Detect and notify when deserializable shreds are available ( #11816 )
...
* Add logic to check for complete data ranges
* Add RPC signature notification
Co-authored-by: Carl <carl@solana.com>
2020-09-01 22:06:06 -07:00
carllin
c8d67aa8eb
Add option for repairing only from trusted validators ( #11752 )
...
Co-authored-by: Carl <carl@solana.com>
2020-08-21 00:35:11 -07:00
carllin
b7ed06b17a
Cleanup test utilities ( #11723 )
...
* Add voting utility
* Add blockstore utility
Co-authored-by: Carl <carl@solana.com>
2020-08-20 05:04:38 +00:00
Jack May
7c736f71fe
Make BPF Loader static ( #11516 )
2020-08-14 12:32:45 -07:00
Jack May
9290e561e1
Align host addresses ( #11384 )
...
* Align host addresses
* support new program abi
* update epoch rollout
* Enforce aligned pointers in cross-program invocations
2020-08-11 16:11:52 -07:00
Greg Fitzgerald
edadd5d6d5
Remove Budget from CLI ( #11451 )
...
* Remove support for Budget
Also:
* Make "pay" command a deprecated alias for the "transfer" command
* chore: remove budget from web3.js
* Drop Budget depedency from core
Validators no longer ship with builtin Budget
2020-08-07 16:01:51 -06:00
carllin
7e25130529
Send votes from banking stage to vote listener ( #11434 )
...
* Send votes from banking stage to vote listener
Co-authored-by: Carl <carl@solana.com>
2020-08-07 11:21:35 -07:00
Greg Fitzgerald
bad486823c
Add a client for BankForks ( #10728 )
...
Also:
* Use BanksClient in solana-tokens
2020-08-07 08:45:17 -06:00
carllin
bf18524368
Add hook for getting vote transactions on replay ( #11264 )
...
* Add hook for getting vote transactions on replay
Co-authored-by: Carl <carl@solana.com>
2020-07-29 23:17:40 -07:00
carllin
6578ad7d08
Speed up local cluster partitioning tests ( #11177 )
...
* Fix long local cluster partition tests by skipping slot warmup
Co-authored-by: Carl <carl@solana.com>
2020-07-23 18:50:42 -07:00
Tyera Eulberg
b5a6a2f461
Initialize BlockCommitmentCache slot and root on node boot ( #11178 )
...
* Initialize commitment-cache slot and root on node boot
* Ignore long tests
2020-07-23 11:44:57 -06:00
carllin
73f3d04798
Add replay votes to gossip vote tracking ( #11119 )
...
* Plumb replay vote channel for notifying vote listener of replay votes
* Keep gossip only notification for debugging gossip in the future
Co-authored-by: Carl <carl@solana.com>
2020-07-20 17:29:07 -07:00
sakridge
7fe870ba48
Make accounts file clean faster ( #11071 )
2020-07-15 09:37:40 -07:00
Tyera Eulberg
9a80e31bae
Expose tss to the other blockstore_processor path ( #11070 )
2020-07-14 21:14:48 -06:00
carllin
7a14e359d7
Switch to using weighted repair in RepairService ( #10735 )
...
* Plumb votes into repair service
* Remove refactoring
* Fix tests
* Switch to using RepairWeight for generating repairs
* Revert "Weight repair slots based on vote stake (#10741 )"
This reverts commit cabd0a09c3
.
* Update logging
Co-authored-by: Carl <carl@solana.com>
2020-07-10 05:52:54 +00:00
Greg Fitzgerald
2fdbb97244
Rename largest_confirmed_root to highest_confirmed_root ( #10947 )
2020-07-07 23:59:46 +00:00
sakridge
d492f4f15b
Clean accounts path on validator startup ( #10929 )
2020-07-07 09:41:45 -07:00
sakridge
58a475b789
Add db recovery methods ( #10838 )
2020-07-06 12:43:45 -07:00
Ryo Onodera
ecf6fb2cd2
Rename new_banks_from_blockstore => new_banks_from_ledger ( #10864 )
2020-07-01 06:19:40 +00:00
sakridge
1ffad2d051
More guard rails for restart with ledger procedure ( #10853 )
...
* Add expected_bank_hash required for supermajority
* Print snapshot hash in ledger-tool create-snapshot.
2020-06-30 12:43:48 -07:00
sakridge
583cec922b
Remove ledger purge batching ( #10830 )
2020-06-29 14:44:35 -07:00
Greg Fitzgerald
50b3fa83a0
Move BankCommitmentCache to solana_runtime ( #10816 )
...
* Remove Blockstore member variable from BlockCommitmentCache
* Hoist is_confirmed_rooted() to its only caller
BlockCommitmentCache no longer depends on Blockstore
* Move BlockCommitmentCache to solana_runtime
2020-06-25 22:06:58 -06:00
Ryo Onodera
4164c69683
Tiny cleanups in preparation for persistent tower ( #10805 )
2020-06-25 18:24:16 +09:00
sakridge
a1ef921b88
Rework backup and clear function ( #10751 )
2020-06-23 21:29:07 +00:00
sakridge
2ba8fc5243
Remove slots past wait-for-supermajority slot. ( #10720 )
2020-06-22 20:27:25 -07:00
Greg Fitzgerald
0550b893b0
Fix typos ( #10675 )
...
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2020-06-17 20:54:52 -07:00
Greg Fitzgerald
6ee222363e
Move BankForks to solana_runtime ( #10637 )
...
* Move BankForks to solana_runtime
* Update imports
2020-06-17 15:27:03 +00:00
sakridge
0de6c444d6
Simd poh ( #10604 )
...
* Simd poh
* Fix poh verify bench
2020-06-16 23:03:26 -07:00
Kristofer Peterson
e23340d89e
Clippy cleanup for all targets and nighly rust (also support 1.44.0) ( #10445 )
...
* address warnings from 'rustup run beta cargo clippy --workspace'
minor refactoring in:
- cli/src/cli.rs
- cli/src/offline/blockhash_query.rs
- logger/src/lib.rs
- runtime/src/accounts_db.rs
expect some performance improvement AccountsDB::clean_accounts()
* address warnings from 'rustup run beta cargo clippy --workspace --tests'
* address warnings from 'rustup run nightly cargo clippy --workspace --all-targets'
* rustfmt
* fix warning stragglers
* properly fix clippy warnings test_vote_subscribe()
replace ref-to-arc with ref parameters where arc not cloned
* Remove lock around JsonRpcRequestProcessor (#10417 )
automerge
* make ancestors parameter optional to avoid forcing construction of empty hash maps
Co-authored-by: Greg Fitzgerald <greg@solana.com>
2020-06-09 09:38:14 +09:00
Michael Vines
0442c45d5b
Feign RPC health while in a `--wait-for-supermajority` holding pattern ( #10295 )
2020-05-28 12:22:19 -07:00
Michael Vines
486168b796
Revert "Add AVX2 runtime checks ( #10033 )" ( #10167 )
...
This reverts commit cf8eb7700b
.
2020-05-21 13:13:52 -07:00
Tyera Eulberg
bac4aec16f
Trigger RPC notifications after block commitment cache update ( #10077 )
...
* Fixup commitment-aggregation metric
* Trigger notifications after commitment-cache update
* Fixup fn name
* Add single-confirmation commitment level
* Rename to highest_confirmed_slot
* Pass commitment-cache info directly to notifications
* Use match
* Update commitment docs
* Update out of date pubsub docs
2020-05-18 12:49:01 -06:00
Reisen
bfcfbab818
Add Vote PubSub endpoint for live gossip votes. ( #10045 )
...
* Add Vote PubSub endpoint for live gossip votes.
* Updated tests for Vote RPC and Vote Listener
* Add JSON RPC documentation for Vote RPC.
* Base58 encode hash in Vote RPC response.
2020-05-17 15:01:08 -06:00
Michael Vines
1da1667920
Forge a confirmed root before halting for RPC inspection ( #10061 )
2020-05-15 09:02:48 -07:00
Jack May
eb1acaf927
Remove archiver and storage program ( #9992 )
...
automerge
2020-05-14 18:22:47 -07:00
Trent Nelson
cf8eb7700b
Add AVX2 runtime checks ( #10033 )
...
automerge
2020-05-13 12:19:22 -07:00
sakridge
f98bfda6f9
Security changes ( #9923 )
...
* Move test-only functions to test modules
* Remove sigverify disable
* Remove chacha CTR code
2020-05-08 10:00:23 -07:00
Tyera Eulberg
754c65c066
Refactor RPC subscriptions account handling ( #9888 )
...
* Switch subscriptions to use commitment instead of confirmations
* Add bank method to return account and last-modified slot
* Add last_modified_slot to subscription data and use to filter account subscriptions
* Update tests to non-zero last_notified_slot
* Add accounts subscriptions to test; fails at higher tx load
* Pass BankForks to RpcSubscriptions
* Use BankForks on add_account_subscription to properly initialize last_notified_slot
* Bundle subscriptions
* Check for non-equality
* Use commitment to initialize last_notified_slot; revert context.slot chage
2020-05-07 00:23:06 -06:00
Michael Vines
09ae61651a
Eliminate BankForksInfo ( #9887 )
2020-05-06 08:24:59 -07:00
Ryo Onodera
a91236012d
Pass around --max-genesis-archive-unpacked-size ( #9161 )
...
automerge
2020-04-29 18:53:34 -07:00
Michael Vines
230df0ec0c
Upgrade to Rust 1.43.0 ( #9754 )
2020-04-29 18:02:05 -07:00
sakridge
fa20963b93
Revert shred fs ( #9712 )
...
* Revert "Untar is called for shred archives that do not exist. (#9565 )"
This reverts commit 729cb5eec6
.
* Revert "Dont insert shred payload into rocksdb (#9366 )"
This reverts commit 5ed39de8c5
.
2020-04-24 15:04:23 -07:00
Tyera Eulberg
d5abff82e0
Add largest_confirmed_root to BlockCommitmentCache ( #9640 )
...
* Add largest_confirmed_root to BlockCommitmentCache
* clippy
* Add blockstore to BlockCommitmentCache to check root
* Add rooted_stake helper fn and test
* Nodes that are behind should correctly id confirmed roots
* Simplify rooted_stake collector
2020-04-22 12:22:09 -06:00
carllin
bab3502260
Push down cluster_info lock ( #9594 )
...
* Push down cluster_info lock
* Rework budget decrement
Co-authored-by: Carl <carl@solana.com>
2020-04-21 12:54:45 -07:00
Michael Vines
a7aa7e172b
validator: Consider the activated stake of this node to be online again ( #9573 )
...
automerge
2020-04-18 10:16:19 -07:00
Michael Vines
8509dcb8a0
Report offline/wrong-shred nodes while waiting for a super majority in gossip
2020-04-17 13:32:19 -07:00
anatoly yakovenko
5ed39de8c5
Dont insert shred payload into rocksdb ( #9366 )
...
automerge
2020-04-16 18:20:55 -07:00
sakridge
66abe45ea1
Decouple accounts hash calculation from snapshot hash ( #9507 )
2020-04-16 15:12:20 -07:00
Jack May
241a05fc52
Add native loader entry points ( #9486 )
2020-04-15 09:41:29 -07:00
Michael Vines
40737e9efa
Add health check URI
2020-04-15 09:06:24 -07:00
Jack May
ad0482be73
Revert "Add native loader entry points ( #9275 )" Breaks genesis_config abi ( #9377 )
...
This reverts commit ed86d8d1fc
.
2020-04-08 14:36:18 -07:00
Tyera Eulberg
96c23110ae
Make TestValidator mint_lamports configurable ( #9337 )
...
automerge
2020-04-06 16:20:55 -07:00
Jack May
ed86d8d1fc
Add native loader entry points ( #9275 )
2020-04-03 17:40:59 -07:00
sakridge
a61ddb6f61
max_ledger_slots -> max_ledger_shreds ( #9198 )
...
automerge
2020-03-31 17:21:19 -07:00
Michael Vines
0e2722c638
solana-validator now supports multiple --authorized-voter arguments ( #9174 )
...
* Use Epoch type
* Vote account's authorized voter is now supported without a validator restart
2020-03-31 08:23:42 -07:00
Tyera Eulberg
50fa577af8
Use cluster confirmations in rpc and pubsub ( #9138 )
...
* Add runtime methods to simply get status and slot
* Add helper function to get slot confirmation_count from BlockCommitmentCache
* Return cluster confirmations in getSignatureStatus
* Remove use of invalid get_signature_confirmation_status
* Remove unused methods
* Update pubsub to use cluster confirmations
* Fix test_check_signature_subscribe failure
* Refactor confirmations to read commitment cache only once
* Review comments
* Use bank, root from BlockCommitmentCache
* Update docs
* Add metric for block-commitment aggregations
Co-authored-by: Justin Starry <justin@solana.com>
2020-03-30 17:53:25 -06:00
carllin
076fef5e57
Update Cluster Slots to support multiple threads ( #9071 )
...
Co-authored-by: Carl <carl@solana.com>
2020-03-25 18:09:19 -07:00
Ryo Onodera
f987c18a7e
Strictly validate the contents of snapshot/genesis ( #8959 )
...
automerge
2020-03-25 02:46:41 -07:00
Tyera Eulberg
1b8f9e75dd
Update getSignatureStatus: support multiple signatures, include slot in each response item ( #9022 )
...
* Rename enable-rpc-get-confirmed-block
* Rename RpcTransactionStatus -> RpcTransactionStatusMeta
* Return simplified RpcTransactionStatus; Add support for multiple transactions
* Update docs
* typo
2020-03-23 11:25:39 -06:00
sakridge
4d2b83d01f
Add option to disable rocks compaction ( #9011 )
2020-03-23 08:42:32 -07:00
Michael Vines
88ba8439fc
Add frozen account support ( #8989 )
...
automerge
2020-03-22 11:10:04 -07:00
Michael Vines
aa24181a53
Remove blockstream unix socket support. RPC or bust ( #9004 )
...
automerge
2020-03-21 20:17:11 -07:00
Michael Vines
18c1f0dfe9
Remove stub core/src/genesis_utils.rs ( #8999 )
2020-03-21 10:54:40 -07:00
carllin
dc1db33ec9
Add Capabilities to Signal BroadcastStage to Retransmit ( #8899 )
2020-03-19 23:35:01 -07:00
sakridge
dc347dd3d7
Add Accounts hash consistency halting ( #8772 )
...
* Accounts hash consistency halting
* Add option to inject account hash faults for testing.
Enable option in local cluster test to see that node halts.
2020-03-16 08:37:31 -07:00
Michael Vines
29fb79382c
Rework validator vote account defaults to half voting fees
2020-03-13 20:13:33 -07:00
carllin
9872430bd2
Add VoteTracker for tracking cluster's votes in gossip ( #8327 )
...
Track votes by slot in cluster_vote_listener
2020-03-09 22:03:09 -07:00
Michael Vines
36fa3a1a0a
Wait for 80% of the active stake instead of 75%
2020-03-09 20:31:09 -07:00
Michael Vines
f992ee3140
Remove unnecessary snapshot hash verification ( #8711 )
2020-03-07 09:04:52 -07:00
Michael Vines
cb6848aa80
Publish initial snapshot hash in gossip on validator startup ( #8679 )
...
automerge
2020-03-05 22:52:31 -08:00
Michael Vines
306783c661
Don't advertise the snapshot that the node was loaded from
...
snapshot_packager_service will remove this snapshot hash from gossip
when it starts
2020-03-02 18:58:53 -07:00
Michael Vines
13551885c2
--wait-for-supermajority now requires a SLOT
2020-03-02 12:59:35 -07:00
Michael Vines
1ca4913328
Avoid is_x86_feature_detected when not building for x86
2020-03-01 18:10:43 -07:00
Michael Vines
ae817722d8
Include validator version in log
2020-02-28 23:23:59 -07:00
Trent Nelson
90bedd7e06
Split signature throughput tracking out of `FeeCalculator` ( #8447 )
...
* SDK: Split new `FeeRateGovernor` out of `FeeCalculator`
Leaving `FeeCalculator` to *only* calculate transaction fees
* Replace `FeeCalculator` with `FeeRateGovernor` as appropriate
* Expose recent `FeeRateGovernor` to clients
* Move `burn()` back into `FeeCalculator`
Appease BPF tests
* Revert "Move `burn()` back into `FeeCalculator`"
This reverts commit f3035624307196722b62ff8b74c12cfcc13b1941.
* Adjust BPF `Fee` sysvar test to reflect removal of `burn()` from `FeeCalculator`
* Make `FeeRateGovernor`'s `lamports_per_signature` private
* rebase artifacts
* fmt
* Drop 'Recent'
* Drop _with_commitment variant
* Use a more portable integer for `target_signatures_per_slot`
* Add docs for `getReeRateCalculator` JSON RPC method
* Don't return `lamports_per_signature` in `getFeeRateGovernor` JSONRPC reply
2020-02-28 13:27:01 -07:00
carllin
7a2bf7e7eb
Limit leader schedule search space ( #8468 )
...
* Limit leader schedule search space
* Fix and add test
* Rename
2020-02-26 13:35:50 -08:00
Michael Vines
fbf78b83c4
Add retry mechanism when downloading genesis and snapshots
2020-02-26 14:21:37 -07:00
Justin Starry
8839dbfe5b
Use runtime executor to send pubsub notifications ( #8353 )
...
automerge
2020-02-25 20:23:54 -08:00
Michael Vines
2059af822d
Remove unnecessary new_banks_from_blockstore() argument ( #8433 )
...
automerge
2020-02-24 23:27:19 -08:00
carllin
39282be486
Determine vote_state ahead of time ( #8303 )
...
automerge
2020-02-24 19:27:04 -08:00
Michael Vines
73063544bd
Move shred_version module to sdk/
2020-02-24 14:46:12 -07:00
sakridge
b7386f9d84
Add --trusted-validator support for snapshot hash validation ( #8390 )
2020-02-21 18:42:24 -08:00
Michael Vines
18fd52367e
If the node was loaded from a snapshot, advertise it in gossip ( #8364 )
...
automerge
2020-02-20 18:53:26 -08:00
Tyera Eulberg
ab361a8073
Rename KeypairUtil to Signer ( #8360 )
...
automerge
2020-02-20 13:28:55 -08:00
anatoly yakovenko
17fb8258e5
Datapoints overwhelm the metrics queue and blow up ram usage. ( #8272 )
...
automerge
2020-02-14 11:11:55 -08:00
Michael Vines
c4fd81fc1c
The getConfirmedBlock RPC API is now disabled by default
...
The --enable-rpc-get-confirmed-block flag allows validators to opt-in to
the higher disk usage and IOPS.
2020-02-11 22:24:08 -07:00
Michael Vines
72b11081a4
Report validator rewards in getConfirmedBlock JSON RPC
2020-02-11 17:25:45 -07:00
carllin
d3712dd26d
Factor repair from gossip ( #8044 )
2020-02-11 13:11:48 -07:00
Michael Vines
60877f9ba4
Revert "Check for AVX512 at runtime to avoid invalid opcode trap ( #8166 )"
...
This reverts commit ef5fb6fa46
.
2020-02-11 12:56:02 -07:00
Trent Nelson
fc15f74c3c
CLI: Harden offline signing and tests ( #8052 )
...
* CLI: Don't sanity-check stake account when offline
* Add test helper returning vote pubkey with validator
* Delegate to the BSL. No need to force
* Be sure our offline ops are truly offline
* Specify our authorities correctly
* checks
2020-02-10 18:59:05 -07:00
Michael Vines
ef5fb6fa46
Check for AVX512 at runtime to avoid invalid opcode trap ( #8166 )
...
automerge
2020-02-07 15:01:45 -08:00
Michael Vines
8b5598fabd
Surface shred version more in tools ( #8163 )
...
automerge
2020-02-07 08:57:54 -08:00
Trent Nelson
5b070ad014
CLI: Support offline fee payers ( #8009 )
...
* CLI: Support offline fee-payer
* Add some knobs to test genesis/validator helpers
* Add tests
2020-02-07 09:14:26 -07:00
carllin
fe590da3b6
Revert "Factor repair from gossip ( #8044 )" ( #8143 )
...
This reverts commit e61257695f
.
2020-02-06 11:44:20 -08:00
carllin
e61257695f
Factor repair from gossip ( #8044 )
2020-01-31 14:23:50 -08:00
Michael Vines
a03d441e6f
Add rpc port sanity checks, fix tests
2020-01-30 20:57:58 -07:00
Michael Vines
e218f4e56e
Clean up Validator::new()
2020-01-30 20:57:58 -07:00