Justin Starry
d922971ec6
Optimize stakes cache and rewards at epoch boundaries (backport #20432 ) ( #20472 )
...
* Optimize stakes cache and rewards at epoch boundaries (backport #20432 )
* fix conflicts
2021-10-06 16:15:27 +00:00
sakridge
257ddbeee1
Tpu vote 1.7 ( #20187 )
...
* Add separate vote processing tpu port
* Add feature to send to tpu vote port
* Add vote rejecting sigverify mode
* use packet.meta.is_simple_vote_tx in place of deserialization
* consolidate code that identifies vote tx atcommon path for cpu and gpu
* new key for feature set
* banking forward tpu vote
* add tpu vote port to dockerfile and other review changes
* Simplify thread id compare
* fix a test; updated cluster_info ABI change
Co-authored-by: Tao Zhu <tao@solana.com >
2021-09-29 18:12:58 +02:00
mergify[bot]
a005a6b816
Restore ability for programs to upgrade themselves (backport #20265 ) ( #20295 )
...
* Restore ability for programs to upgrade themselves (#20265 )
* Make helper associated fn
* Add feature definition
* Add handling to preserve program-id write lock when upgradeable loader is present; restore bpf upgrade-self test
* Use single feature
(cherry picked from commit 2cd9dc99b6
)
# Conflicts:
# runtime/src/accounts.rs
# sdk/program/src/message.rs
# sdk/program/src/message/mapped.rs
# sdk/program/src/message/sanitized.rs
# sdk/src/feature_set.rs
* Fix conflicts
Co-authored-by: Tyera Eulberg <teulberg@gmail.com >
Co-authored-by: Tyera Eulberg <tyera@solana.com >
2021-09-29 01:34:33 +00:00
mergify[bot]
597c504c27
generate deterministic seeds for shreds (backport #17950 ) ( #20172 )
...
* generate deterministic seeds for shreds (#17950 )
* generate shred seed from leader pubkey
* clippy
* clippy
* review
* review 2
* fmt
* review
* check
* review
* cleanup
* fmt
(cherry picked from commit a86ced0bac
)
# Conflicts:
# core/benches/cluster_info.rs
# core/src/broadcast_stage.rs
# core/src/broadcast_stage/fail_entry_verification_broadcast_run.rs
# core/src/broadcast_stage/standard_broadcast_run.rs
# ledger/src/shred.rs
# sdk/src/feature_set.rs
* removes backport merge conflicts
Co-authored-by: jbiseda <jbiseda@gmail.com >
Co-authored-by: behzad nouri <behzadnouri@gmail.com >
2021-09-25 19:09:49 +00:00
Tao Zhu
e757e51ddc
Port sigverify to identify and mark simple vote transaction to v1.7 ( #20147 )
...
* sigverify to identify and mark simple vote transaction (#20021 )
* check vote tx at get_packet_offsets to cover both cpu and gpu paths
* add pubkey_len to PacketOffsets to reduce the redundant bytes counting
* allow vote to have 1 or 2 sigs (#20082 )
2021-09-24 11:35:50 -05:00
Trent Nelson
7b4638aa0b
runtime: remove inactive delegation from stakes cache
2021-09-22 20:43:34 -06:00
mergify[bot]
03da3eaa81
Optimize RPC pubsub for multiple clients with the same subscription (backport #18943 ) ( #19987 )
...
* Optimize RPC pubsub for multiple clients with the same subscription (#18943 )
* reimplement rpc pubsub with a broadcast queue
* update tests for new pubsub implementation
* fix: fix review suggestions
* chore(rpc): add additional pubsub metrics
* integrate max subscriptions check into SubscriptionTracker to reduce locking
* separate subscription control from tracker
* limit memory usage of items in pubsub broadcast queue, improve error handling
* add more pubsub metrics
* add final count metrics to pubsub
* add metric for total number of subscriptions
* fix small review suggestions
* remove by_params from SubscriptionTracker and add node_progress_watchers map instead
* add subscription tracker tests
* add metrics for number of pubsub notifications as a counter
* ignore clippy lint in TokenCounter
* fix underflow in token counter
* reduce queue capacity in pubsub tests
* fix(rpc): fix test timeouts
* fix race in account subscription test
* Add RpcSubscriptions::new_for_tests
Co-authored-by: Pavel Strakhov <p.strakhov@iconic.vc >
Co-authored-by: Nikita Podoliako <n.podoliako@zubr.io >
Co-authored-by: Tyera Eulberg <tyera@solana.com >
(cherry picked from commit 65227f44dc
)
# Conflicts:
# Cargo.lock
# core/Cargo.toml
# core/src/replay_stage.rs
# core/src/validator.rs
# replica-node/src/replica_node.rs
# rpc/Cargo.toml
* Fix conflicts (and standardize naming to make future subscription backports easier
Co-authored-by: Pavel Strakhov <ri@idzaaus.org >
Co-authored-by: Tyera Eulberg <tyera@solana.com >
2021-09-20 06:00:08 +00:00
mergify[bot]
07b71329a7
Update feature switch for reduced required deploy balance (backport #19999 ) ( #20012 )
...
* Update feature switch for reduced required deploy balance (#19999 )
(cherry picked from commit ea34eb8a4b
)
# Conflicts:
# programs/bpf_loader/src/lib.rs
* fix conflict
Co-authored-by: Justin Starry <justin@solana.com >
2021-09-19 23:17:59 +00:00
mergify[bot]
54ad080bf2
Fix native invoke writable privileges (backport #19750 ) ( #19860 )
...
* Fix native invoke writable privileges (#19750 )
* Fix native invoke writable privileges
* build downstream spl bpf programs for tests
(cherry picked from commit 00d7981f64
)
# Conflicts:
# program-runtime/src/instruction_processor.rs
# runtime/src/message_processor.rs
# sdk/src/feature_set.rs
* resolve conflictds
Co-authored-by: Jack May <jack@solana.com >
2021-09-16 01:42:26 +00:00
mergify[bot]
b9a0156a93
Return error if Transaction contains writable executable or ProgramData accounts (backport #19629 ) ( #19730 )
...
* Return error if Transaction contains writable executable or ProgramData accounts (#19629 )
* Return error if Transaction locks an executable as writable
* Return error if a ProgramData account is writable but the upgradable loader isn't present
* Remove unreachable clause
* Fixup bpf tests
* Review comments
* Add new TransactionError
* Disallow writes to any upgradeable-loader account when loader not present; remove is_upgradeable_loader_present exception for all other executables
(cherry picked from commit 38bbb77989
)
# Conflicts:
# programs/bpf/tests/programs.rs
# runtime/src/accounts.rs
# runtime/src/bank.rs
# sdk/src/transaction.rs
# storage-proto/proto/transaction_by_addr.proto
# storage-proto/src/convert.rs
* Fix conflicts
Co-authored-by: Tyera Eulberg <teulberg@gmail.com >
Co-authored-by: Tyera Eulberg <tyera@solana.com >
2021-09-09 14:02:07 +00:00
mergify[bot]
ed4e7c0c87
Check seed length before trying to cal program address (backport #19699 ) ( #19708 )
...
* Check seed length before trying to cal program address (#19699 )
(cherry picked from commit 778b2adbea
)
* resolve conflicts
Co-authored-by: Jack May <jack@solana.com >
2021-09-08 08:26:07 +00:00
mergify[bot]
e9c3f11d24
Remove native id check in pda creation (backport #19595 ) ( #19689 )
...
* Remove native id check in pda creation (#19595 )
(cherry picked from commit 529fefc7cc
)
# Conflicts:
# programs/bpf/rust/invoke/src/lib.rs
# programs/bpf_loader/src/syscalls.rs
# sdk/src/feature_set.rs
* resolve conflicts
Co-authored-by: Jack May <jack@solana.com >
2021-09-07 23:26:08 -07:00
mergify[bot]
fcda5d4a7d
Demote write locks on transaction program ids (backport #19593 ) ( #19633 )
...
* Demote write locks on transaction program ids (#19593 )
* Add feature
* Demote write lock on program ids
* Fixup bpf tests
* Update MappedMessage::is_writable
* Comma nit
* Review comments
(cherry picked from commit decec3cd8b
)
# Conflicts:
# core/src/banking_stage.rs
# core/src/cost_model.rs
# core/src/cost_tracker.rs
# ledger-tool/src/main.rs
# program-runtime/src/instruction_processor.rs
# programs/bpf/tests/programs.rs
# programs/bpf_loader/src/syscalls.rs
# rpc/src/transaction_status_service.rs
# runtime/src/accounts.rs
# runtime/src/bank.rs
# runtime/src/message_processor.rs
# sdk/benches/serialize_instructions.rs
# sdk/program/src/message/mapped.rs
# sdk/program/src/message/sanitized.rs
# sdk/src/transaction/sanitized.rs
* Fix conflicts
Co-authored-by: Tyera Eulberg <teulberg@gmail.com >
Co-authored-by: Tyera Eulberg <tyera@solana.com >
2021-09-04 06:46:09 +00:00
mergify[bot]
c180f4c84e
stake: Advance credits_observed
on activation epoch (backport #19309 ) ( #19626 )
...
* stake: Advance `credits_observed` on activation epoch (#19309 )
* stake: Advance `credits_observed` on activation epoch
* Add test for merging stakes just after activation
(cherry picked from commit 2c3bdedea3
)
# Conflicts:
# runtime/src/bank.rs
* Fix merge issues
Co-authored-by: Jon Cinque <jon.cinque@gmail.com >
2021-09-04 01:29:00 +00:00
mergify[bot]
aa2098d115
Write helper for multithread update ( #18808 ) ( #19282 )
...
Co-authored-by: sakridge <sakridge@gmail.com >
2021-09-02 11:05:15 +00:00
mergify[bot]
58bef3a94b
Allow closing upgradeable program accounts (backport #19319 ) ( #19411 )
...
* Allow closing upgradeable program accounts (#19319 )
(cherry picked from commit a89f180145
)
# Conflicts:
# programs/bpf_loader/src/lib.rs
# programs/bpf_loader/src/syscalls.rs
# sdk/src/feature_set.rs
* resolve conflicts
Co-authored-by: Jack May <jack@solana.com >
Co-authored-by: Justin Starry <justin@solana.com >
2021-08-27 08:56:51 +00:00
Justin Starry
3b36e8e285
Add missing description for feature switch ( #19428 )
2021-08-25 18:24:28 +00:00
mergify[bot]
b5b1ed2a55
stake: Remove v2 program references (backport #19308 ) ( #19336 )
...
* stake: Remove v2 program references (#19308 )
* stake: Remove v2 program references
* Remove stake v2 feature, along with stake rewrite
(cherry picked from commit 73aa004c59
)
# Conflicts:
# runtime/src/bank.rs
* Fix merge conflict
* Fix uses of old `stake` function
Co-authored-by: Jon Cinque <jon.cinque@gmail.com >
2021-08-20 07:32:24 +00:00
mergify[bot]
6f31882260
Fix memoverlap check (backport #19232 ) ( #19259 )
...
* Fix memoverlap check (#19232 )
(cherry picked from commit 9be988db41
)
# Conflicts:
# programs/bpf_loader/src/syscalls.rs
# sdk/src/feature_set.rs
* Resolve conflicts
Co-authored-by: Jack May <jack@solana.com >
2021-08-18 18:07:36 +00:00
mergify[bot]
78086329be
Add more API documentation for Rust RpcClient ( #19021 ) ( #19091 )
...
* Add doc links to Transaction API docs
* Add more RpcClient API docs
* Reflow some rpc_client docs
* Update client/src/rpc_client.rs
Co-authored-by: Tyera Eulberg <teulberg@gmail.com >
* Update client/src/rpc_client.rs
Co-authored-by: Tyera Eulberg <teulberg@gmail.com >
* Update client/src/rpc_client.rs
Co-authored-by: Tyera Eulberg <teulberg@gmail.com >
* Update sdk/src/transaction.rs
Co-authored-by: Tyera Eulberg <teulberg@gmail.com >
* Update RpcClient docs per review
Co-authored-by: Tyera Eulberg <teulberg@gmail.com >
(cherry picked from commit b67ffab370
)
Co-authored-by: Brian Anderson <andersrb@gmail.com >
2021-08-05 23:42:56 +00:00
mergify[bot]
1a0146f21d
stake: Allow stakes with unmatched credits observed to merge (backport #18985 ) ( #19055 )
...
* stake: Allow stakes with unmatched credits observed to merge (#18985 )
* stake: Allow stakes with unmatched credits observed to merge
* Address feedback
* Remove branch by doing a ceiling in one calc
(cherry picked from commit 2b33c0c165
)
# Conflicts:
# Cargo.lock
# programs/stake/Cargo.toml
# sdk/src/feature_set.rs
* Fix merge conflicts
* Fix clippy lint
* Add back whitespace
Co-authored-by: Jon Cinque <jon.cinque@gmail.com >
2021-08-04 17:43:20 +00:00
mergify[bot]
7427dafc36
feature: add new token program feature (backport #18780 ) ( #18803 )
...
* feature: add new token program feature (#18780 )
* feature: add new token program feature
* Fixup test
* Update to spl-token v3.2.0
* Update Cargo.lock + fmt
* Update token program version in fetch-spl.sh
* Bump associated token program to 1.0.3
* Add aToken so
(cherry picked from commit 51f3b9aa7c
)
# Conflicts:
# Cargo.lock
# account-decoder/Cargo.toml
# accounts-cluster-bench/Cargo.toml
# programs/bpf/Cargo.lock
# rpc/Cargo.toml
# sdk/src/feature_set.rs
# tokens/Cargo.toml
# transaction-status/Cargo.toml
* Fix merge issues
* Re-generate lock files
Co-authored-by: Jon Cinque <jon.cinque@gmail.com >
2021-07-21 15:05:45 +00:00
Trent Nelson
336c1c1d37
nonce: Unify NonceError
with SystemError
2021-07-16 04:41:51 -06:00
mergify[bot]
c7c650fccc
Gate libsecp256k1 update (backport #18656 ) ( #18701 )
...
* hijack secp256k1 enablement feature plumbing for libsecp256k1 upgrade
* bump libsecp256k1 to v0.5.0
* gate libsecp256k1 upgrade to v0.5.0
* ci: allow clippy::inconsistent_struct_constructor
Co-authored-by: Trent Nelson <trent@solana.com >
2021-07-16 07:38:45 +00:00
Kirill Fomichev
e0e6e20e02
Add method id
to SysbarId trait ( #18604 )
...
(cherry picked from commit 5cea25ac3e
)
2021-07-14 17:51:54 -07:00
Ryo Onodera
c2320fceab
Remove sysvar special cases for rent and assign
2021-07-10 01:24:44 +09:00
mergify[bot]
8b87d86358
Bump compute budget for neon evm ( #17700 ) ( #18522 )
...
(cherry picked from commit 2867584985
)
Co-authored-by: Jack May <jack@solana.com >
2021-07-09 09:12:31 -07:00
mergify[bot]
8c328316ae
Add ecrecover syscall (backport #17720 ) ( #18500 )
...
* Add ecrecover syscall (#17720 )
Co-authored-by: Anton Lisanin <lisanin.anton@gmail.com >
(cherry picked from commit 1f288ce527
)
# Conflicts:
# Cargo.lock
# programs/bpf/Cargo.lock
# programs/bpf/tests/programs.rs
# programs/bpf_loader/Cargo.toml
# programs/bpf_loader/src/syscalls.rs
# sdk/program/Cargo.toml
* resolve conflicts
Co-authored-by: s-medvedev <40623263+s-medvedev@users.noreply.github.com >
Co-authored-by: Jack May <jack@solana.com >
2021-07-08 21:56:19 +00:00
mergify[bot]
c40e71dc03
featurize_policy_update ( #18492 ) ( #18502 )
...
(cherry picked from commit ccdf93e2b8
)
Co-authored-by: Jack May <jack@solana.com >
2021-07-07 22:31:05 +00:00
mergify[bot]
2f633cdfb7
Refactor verify_and_update write privileges check ( #18468 ) ( #18484 )
...
Co-authored-by: Justin Starry <justin@solana.com >
2021-07-07 21:46:07 +00:00
mergify[bot]
5321463892
Refactoring: Unify account_deps and accounts (backport #17898 ) ( #18486 )
...
* Refactoring: Unify account_deps and accounts (#17898 )
* Changes ThisInvokeContext::get_account() to use accounts instead of pre_accounts.
* Adds explicit keys to accounts to make them symmetric to account_deps.
* Appends account_deps to accounts in transaction loading and removes account_deps everywhere else.
(cherry picked from commit 7462c27d07
)
# Conflicts:
# program-test/src/lib.rs
# runtime/src/bank.rs
# runtime/src/message_processor.rs
* fix conflicts
Co-authored-by: Alexander Meißner <AlexanderMeissner@gmx.net >
Co-authored-by: Justin Starry <justin@solana.com >
2021-07-07 17:14:39 +00:00
mergify[bot]
0d0478c4a4
Add vote/stake checked instructions (backport #18345 ) ( #18457 )
...
* Add vote/stake checked instructions
(cherry picked from commit ee219ffa47
)
* Fix set-lockup custodian index
(cherry picked from commit 544f62c92f
)
* Add parsing for new stake instructions; clean up confusing test args
(cherry picked from commit 9b302ac0b5
)
* Add parsing for new vote instructions
(cherry picked from commit 39bac256ab
)
* Add VoteInstruction::AuthorizeChecked test
(cherry picked from commit b8ca2250fd
)
* Add Stake checked tests
(cherry picked from commit 74e89a3e3e
)
Co-authored-by: Michael Vines <mvines@gmail.com >
Co-authored-by: Tyera Eulberg <tyera@solana.com >
2021-07-07 03:17:21 +00:00
mergify[bot]
72ed4f28b1
Remove feature switch for demoting sysvar write locks ( #18373 ) ( #18454 )
...
Co-authored-by: Justin Starry <justin@solana.com >
2021-07-06 23:25:28 +00:00
mergify[bot]
30fa9cbee7
sdk: add is_interactive()
method Signer
trait ( #18407 )
...
(cherry picked from commit 2af5ec4f57
)
Co-authored-by: Trent Nelson <trent@solana.com >
2021-07-03 09:09:39 +00:00
mergify[bot]
03d213d764
Reject transactions with extra signatures ( #18306 ) ( #18370 )
...
* Reject transactions with extra signatures
* fix tests
* fix check
* fix check
* tx method
* fix checks
(cherry picked from commit d5961e9d9f
)
Co-authored-by: Justin Starry <justin@solana.com >
2021-07-01 20:07:43 +00:00
mergify[bot]
10bd14bca6
Remove feature switch for using message hash for already processed check ( #18340 ) ( #18367 )
...
(cherry picked from commit 5ca975383c
)
Co-authored-by: Justin Starry <justin@solana.com >
2021-07-01 17:39:22 +00:00
mergify[bot]
0cbf7bef1e
Move stake_weighted_timestamp module ( #18114 ) ( #18120 )
...
* Move timestamp module into runtime
* Less public
* Remove unused enum
(cherry picked from commit 19fe1dd463
)
Co-authored-by: Tyera Eulberg <teulberg@gmail.com >
2021-06-22 00:11:12 +00:00
mergify[bot]
0e7512a225
Fix Nightly Clippy Warnings (backport #18065 ) ( #18070 )
...
* chore: cargo +nightly clippy --fix -Z unstable-options
(cherry picked from commit 6514096a67
)
# Conflicts:
# core/src/banking_stage.rs
# core/src/cost_model.rs
# core/src/cost_tracker.rs
# core/src/execute_cost_table.rs
# core/src/replay_stage.rs
# core/src/tvu.rs
# ledger-tool/src/main.rs
# programs/bpf_loader/build.rs
# rbpf-cli/src/main.rs
# sdk/cargo-build-bpf/src/main.rs
# sdk/cargo-test-bpf/src/main.rs
# sdk/src/secp256k1_instruction.rs
* chore: cargo fmt
(cherry picked from commit 789f33e8db
)
* Updates BPF program assert_instruction_count tests.
(cherry picked from commit c1e03f3410
)
# Conflicts:
# programs/bpf/tests/programs.rs
* Resolve conflicts
Co-authored-by: Alexander Meißner <AlexanderMeissner@gmx.net >
Co-authored-by: Michael Vines <mvines@gmail.com >
2021-06-18 20:02:48 +00:00
Trent Nelson
98e34f07df
programs/config: Disallow duplicate signers
2021-06-10 06:54:18 +00:00
mergify[bot]
e5ea16fad8
system-program: Remove zero lamport check on transfers ( #17726 ) ( #17764 )
...
* system-program: Move lamports == 0 check on transfers
* Address feedback
* Update stake split to explicitly allocate + assign
* Update stake tests referring to split instruction
* Revert whitespace
* Update split instruction index in test
* Remove unnecessary `assign_with_seed` from `split_with_seed`
* Fix stake instruction parser
* Update test to allow splitting into account with lamports
(cherry picked from commit 8f5e773caf
)
Co-authored-by: Jon Cinque <jon.cinque@gmail.com >
2021-06-06 18:27:29 +00:00
mergify[bot]
893df9b277
Rename ValidatorExit and move to sdk ( #17728 ) ( #17729 )
...
(cherry picked from commit 3a647c4bea
)
Co-authored-by: Tyera Eulberg <teulberg@gmail.com >
2021-06-04 04:38:49 +00:00
mergify[bot]
498bf911eb
Add missing ProgramError to InstructionError mappings ( #16231 ) ( #17723 )
...
* Add missing ProgramError to InstructionError mappings
* add note
* Clarify process of adding new program error
(cherry picked from commit 83b9a046d1
)
Co-authored-by: Jack May <jack@solana.com >
2021-06-04 00:25:25 +00:00
mergify[bot]
e864bf4898
Fix CPI recursion depth ( #17659 ) ( #17670 )
...
* Fix CPI recursion depth
(cherry picked from commit 80e5b24b38
)
Co-authored-by: Jack May <jack@solana.com >
2021-06-02 11:06:50 +00:00
mergify[bot]
2798271da0
Add memory operation syscalls (backport #16447 ) ( #17648 )
...
* Add memory operation syscalls (#16447 )
(cherry picked from commit 2b50529265
)
# Conflicts:
# programs/bpf/Cargo.lock
* Resolve conflicts
Co-authored-by: Jack May <jack@solana.com >
2021-06-01 18:43:50 -07:00
mergify[bot]
2f7f243022
Always bail if program modifies a ro account (backport #17569 ) ( #17584 )
...
* Always bail if program modifies a ro account (#17569 )
(cherry picked from commit a3240aebde
)
* resolve conflicts
* nudge
Co-authored-by: Jack May <jack@solana.com >
2021-05-28 20:34:10 +00:00
sakridge
a8dca3976b
Refactor genesis download/load/check functions ( #17276 )
...
* Refactor genesis ingest functions
* Consolidate genesis.bin/genesis.tar.bz2 references
2021-05-24 16:45:36 +02:00
Michael Vines
2c99b23ad7
Add get_sysvar() helper to sdk
2021-05-21 01:30:12 +00:00
Michael Vines
a1a0d6f84b
Add stake_program_v4 feature
2021-05-20 21:15:18 +00:00
Tao Zhu
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
Tyera Eulberg
b437b0a49d
Add bip32 support to solana-keygen recover ( #17180 )
...
* Fix spelling
* Add validator for SignerSources
* Add helper to generate Keypair from supporting SignerSources
* Add bip32 support to solana-keygen recover
* Make SignerSourceKind const strs, use for Debug impl and URI schemes
2021-05-12 19:33:11 +00:00