Dmitri Makarov
4d891043d1
Update syscall base costs
2022-01-27 13:36:16 -08:00
mergify[bot]
15e9cedc0d
test_ed25519 fails if we randomly select index 1 ( #22780 )
...
(cherry picked from commit c1b543c74d )
Co-authored-by: Sean Young <sean@mess.org >
2022-01-27 12:50:01 +00:00
Jon Cinque
bc412d51d6
Fix stable-bpf job by referencing Signature directly ( #22721 )
2022-01-25 02:41:36 +00:00
mergify[bot]
87c3e71bb8
spl-associated-token-account: Add feature for new program ( #22648 ) ( #22719 )
...
* spl-associated-token-account: Add feature for new program
* Address feedback
(cherry picked from commit fc21af4e6e )
Co-authored-by: Jon Cinque <jon.cinque@gmail.com >
2022-01-24 19:20:30 -07:00
mergify[bot]
af7ed83285
Document transaction module (backport #22440 ) ( #22664 )
...
* Document transaction module (#22440 )
* Document transaction module
* example_mocks is only for feature = full
(cherry picked from commit 8dd62854fa )
# Conflicts:
# sdk/src/transaction/mod.rs
* Fix conflicts
Co-authored-by: Brian Anderson <andersrb@gmail.com >
Co-authored-by: Tyera Eulberg <tyera@solana.com >
2022-01-21 22:58:44 -07:00
mergify[bot]
7f10fd6a21
Refactor: move compute budget runtime logic into solana-program-runtime (backport #22543 ) ( #22545 )
...
* Refactor: move compute budget runtime logic into solana-program-runtime (#22543 )
(cherry picked from commit cc76a73c49 )
# Conflicts:
# programs/bpf/tests/programs.rs
# sdk/src/compute_budget.rs
* resolve conflicts
Co-authored-by: Justin Starry <justin@solana.com >
2022-01-21 13:45:01 +08:00
mergify[bot]
59f406d78a
Refactor: move simple vote parsing to runtime (backport #22537 ) ( #22587 )
...
* Refactor: move simple vote parsing to runtime (#22537 )
(cherry picked from commit 7f20c6149e )
# Conflicts:
# core/src/cluster_info_vote_listener.rs
# core/src/verified_vote_packets.rs
# programs/vote/src/vote_transaction.rs
# rpc/src/rpc_subscriptions.rs
# runtime/src/bank.rs
# runtime/src/bank_utils.rs
# runtime/src/vote_sender_types.rs
* resolve conflicts
Co-authored-by: Justin Starry <justin@solana.com >
2022-01-20 04:51:50 +00:00
Michael Vines
9bddb4e437
vote account withdraw authority may change the authorized voter
2022-01-15 23:46:10 -08:00
mergify[bot]
a7623ad18c
Fetch sysvars from invoke context for vote program (backport #22444 ) ( #22469 )
...
* Fetch sysvars from invoke context for vote program (#22444 )
* resolve conflicts
Co-authored-by: Justin Starry <justin@solana.com >
2022-01-15 03:56:00 +00:00
Tao Zhu
7a421fe602
Port counting vote CUs to block cost to v1.9
2022-01-14 10:49:43 -06:00
mergify[bot]
9d69f2b324
Bank::get_fee_for_message is now nonce aware (backport #22494 ) ( #22499 )
...
* `Bank::get_fee_for_message` is now nonce aware
(cherry picked from commit 4c577d7f8c )
# Conflicts:
# runtime/src/bank.rs
# sdk/program/src/message/sanitized.rs
* Resolve conflicts
Co-authored-by: Michael Vines <mvines@gmail.com >
2022-01-14 03:25:10 +00:00
mergify[bot]
58dcc451a9
Prevent rent-paying account creation (backport #22292 ) ( #22428 )
...
* Prevent rent-paying account creation (#22292 )
* Fixup typo
* Add new feature
* Add new TransactionError
* Add framework for checking account state before and after transaction processing
* Fail transactions that leave new rent-paying accounts
* Only check rent-state of writable tx accounts
* Review comments: combine process_result success behavior; log and metrics before feature activation
* Fix tests that assume rent-exempt accounts are okay
* Remove test no longer relevant
* Remove native/sysvar special case
* Move metrics submission to report legacy->legacy rent paying transitions as well
(cherry picked from commit 637e366b18 )
# Conflicts:
# runtime/src/bank.rs
# runtime/src/lib.rs
* Fix conflicts and rework for TransactionRefCells
Co-authored-by: Tyera Eulberg <teulberg@gmail.com >
Co-authored-by: Tyera Eulberg <tyera@solana.com >
2022-01-11 23:17:03 +00:00
Justin Starry
1f00926874
Add runtime support for address table lookups (backport #22223 ) ( #22354 )
2022-01-08 07:57:04 +08:00
mergify[bot]
7b1da62763
Add execute metrics (backport #22296 ) ( #22335 )
...
* move `ExecuteTimings` from `runtime::bank` to `program_runtime::timings`
(cherry picked from commit 7d32909e17 )
# Conflicts:
# core/Cargo.toml
# ledger/Cargo.toml
# programs/bpf/Cargo.lock
* Add execute metrics
(cherry picked from commit b25e4a200b )
* Add metrics for executor creation
(cherry picked from commit 848b6dfbdd )
* Add helper macro for `AddAssign`ing with saturating arithmetic
(cherry picked from commit deb9344e49 )
* Use saturating_add_assign macro
(cherry picked from commit 72fc6096a0 )
* Consolidate process instruction execution timings to own struct
(cherry picked from commit 390ef0fbcd )
Co-authored-by: Trent Nelson <trent@solana.com >
Co-authored-by: Carl Lin <carl@solana.com >
2022-01-07 09:11:18 +00:00
mergify[bot]
687cd4779e
Add AccountsDataMeter to InvokeContext ( #21813 ) ( #22299 )
...
(cherry picked from commit 800472ddf5 )
Co-authored-by: Brooks Prumo <brooks@solana.com >
2022-01-06 01:31:11 +00:00
mergify[bot]
d84b994451
shrinks size of Packet.Meta (backport #22224 ) ( #22273 )
...
* removes seed and slot fields from Packet.Meta
507367e6ac
updated window-service to send shreds (as opposed to packets) to
retransmit-stage and so seed and slot fields in Packet.Meta are unused:
https://github.com/solana-labs/solana/blob/d6ec103be/sdk/src/packet.rs#L27-L28
(cherry picked from commit aa9f7ed7e8 )
* uses std::net::IpAddr type for Packet.Meta.addr
(cherry picked from commit 73a7741c49 )
# Conflicts:
# streamer/src/streamer.rs
* adds bitflags to Packet.Meta
Instead of a separate bool type for each flag, all the flags can be
encoded in a type-safe bitflags encoded in a single u8:
https://github.com/solana-labs/solana/blob/d6ec103be/sdk/src/packet.rs#L19-L31
(cherry picked from commit 01a096adc8 )
# Conflicts:
# sdk/Cargo.toml
* removes backport merge conflicts
Co-authored-by: behzad nouri <behzadnouri@gmail.com >
2022-01-04 17:38:29 +00:00
mergify[bot]
3b59f67562
Limit number of accounts that a transaction can lock (backport #22201 ) ( #22263 )
...
* Limit number of accounts that a transaction can lock (#22201 )
(cherry picked from commit 2b5e00d36d )
# Conflicts:
# accountsdb-plugin-postgres/src/postgres_client/postgres_client_transaction.rs
# runtime/src/accounts.rs
# runtime/src/bank.rs
# sdk/src/feature_set.rs
# sdk/src/transaction/error.rs
# storage-proto/proto/transaction_by_addr.proto
# storage-proto/src/convert.rs
* resolve conflicts
Co-authored-by: Justin Starry <justin@solana.com >
2022-01-04 11:34:34 +00:00
mergify[bot]
531f36c571
Don't forward packets received from TPU forwards port ( #22078 ) ( #22171 )
...
* Don't forward packets received from TPU forwards port
* Add banking stage test
(cherry picked from commit b1d9a2e60e )
Co-authored-by: Justin Starry <justin@solana.com >
2021-12-30 10:42:28 +08:00
mergify[bot]
adc584ee22
Add (preflight) simulation to BanksClient ( #22084 ) ( #22149 )
...
* Add more-legitimate conversion from legacy Transaction to SanitizedTransaction
* Add Banks method with preflight checks
* Expose BanksClient method with preflight checks
* Unwrap simulation err
* Add Bank simulation method that works on unfrozen Banks
* Add simpler api
* Better name: BanksTransactionResultWithSimulation
(cherry picked from commit 422a095647 )
Co-authored-by: Tyera Eulberg <teulberg@gmail.com >
2021-12-28 22:04:27 +00:00
mergify[bot]
f4521002b9
Clean up demote program write lock feature (backport #21949 ) ( #21969 )
...
* Clean up demote program write lock feature (#21949 )
* Clean up demote program write lock feature
* fix test
(cherry picked from commit 6ff0be6a82 )
# Conflicts:
# programs/bpf_loader/src/syscalls.rs
# runtime/src/accounts.rs
* resolve conflicts
Co-authored-by: Justin Starry <justin@solana.com >
2021-12-17 04:45:22 +00:00
mergify[bot]
2cd2f3ba7b
Bump rbpf to v0.2.19 ( #21880 ) ( #21891 )
...
* Bump rbpf to v0.2.19
Co-authored-by: Alexander Meißner <AlexanderMeissner@gmx.net >
(cherry picked from commit 509bcd2e74 )
Co-authored-by: Jack May <jack@solana.com >
2021-12-14 20:30:31 +00:00
Michael Vines
c1f54c22ed
Remove the 5 integer msg! form
...
(cherry picked from commit c5c699a918 )
2021-12-11 12:47:43 -08:00
mergify[bot]
5bf4445ae6
Add address lookup table program (backport #21616 ) ( #21789 )
...
* Add address lookup table program (#21616 )
* Add address lookup table program
* feedback
(cherry picked from commit 9b41ddd9ba )
# Conflicts:
# runtime/Cargo.toml
* resolve conflicts
Co-authored-by: Justin Starry <justin@solana.com >
2021-12-11 05:26:46 +00:00
mergify[bot]
68fc72a7f4
Add more reporting for invalid stake cache members and prune them ( #21654 ) ( #21741 )
...
* Add more reporting for invalid stake cache members
* feedback
(cherry picked from commit 6fc329180b )
Co-authored-by: Justin Starry <justin@solana.com >
2021-12-10 18:30:16 +00:00
mergify[bot]
2a6bb2b954
Migrate from address maps to address lookup tables ( #21634 ) ( #21773 )
...
* Migrate from address maps to address lookup tables
* update sanitize error
* cargo fmt
* update abi
(cherry picked from commit 6c108c8fc3 )
Co-authored-by: Justin Starry <justin@solana.com >
2021-12-10 18:10:37 +00:00
Michael Vines
b0754cc575
Add initial wasm bindings for Instruction, SystemProgram and Transaction
...
(cherry picked from commit a35df1cb02 )
2021-12-09 18:41:47 -08:00
Michael Vines
8836069719
Add wasm bindings for Pubkey and Keypair
...
(cherry picked from commit 488dc37fec )
2021-12-09 18:41:47 -08:00
mergify[bot]
2d2ef59550
Ensure we have keys to activate these features ( #21669 ) ( #21674 )
...
(cherry picked from commit 45e56c599d )
Co-authored-by: Sean Young <sean@mess.org >
2021-12-07 23:24:11 +00:00
mergify[bot]
89d2f34a03
Reject vote withdraws that create non-rent-exempt accounts (backport #21639 ) ( #21645 )
...
* Reject vote withdraws that create non-rent-exempt accounts (#21639 )
* Reject vote withdraws that create non-rent-exempt accounts
* fix mocked instruction test
(cherry picked from commit e123883b26 )
# Conflicts:
# sdk/src/feature_set.rs
* resolve conflicts
Co-authored-by: Justin Starry <justin@solana.com >
2021-12-07 00:42:01 +00:00
mergify[bot]
b3fa1e4550
Move transaction error code into new module ( #21635 ) ( #21638 )
...
(cherry picked from commit 3dab1e711d )
Co-authored-by: Justin Starry <justin@solana.com >
2021-12-06 20:11:20 +00:00
fee1-dead
c4a9c8b5e9
Remove dependency on hex ( #21567 )
...
* Remove dependency on `hex`
* Update lock file
* Use `debug_struct` instead of own format
* Share code, add test, and fix rent_epoch spelling
Co-authored-by: Tyera Eulberg <tyera@solana.com >
2021-12-03 20:53:35 -07:00
Michael Vines
b8837c04ec
Reformat imports to a consistent style for imports
...
rustfmt.toml configuration:
imports_granularity = "One"
group_imports = "One"
2021-12-03 09:19:13 -08:00
Alexander Meißner
1a4a039913
Adds feature reject_empty_instruction_without_program. ( #21591 )
2021-12-03 15:47:18 +01:00
Alexander Meißner
015250f96c
Feature gates for rbpf v0.2.16 ( #21590 )
...
- Adds feature reject_section_virtual_address_file_offset_mismatch.
- Adds feature start_verify_shift32_imm.
- Enables enable_symbol_and_section_labels only in the rbpf-cli.
2021-12-03 15:45:25 +01:00
Jack May
976eb81d4f
Cleanup the bank's use of nonces ( #21246 )
2021-12-02 09:57:05 -08:00
ryleung-solana
8cf36e5cb0
Add GPU sigverify for verify path ( #20851 )
...
Allows the use of GPU acceleration in verifying the signatures in Entry's after deserialization in the replay stage
Co-authored-by: Stephen Akridge <sakridge@gmail.com >
Co-authored-by: Ryan Leung <ryan.leung@solana.com >
2021-11-30 21:16:13 -05:00
Jon Cinque
02bc4e3fc1
spl-token: New program feature flag ( #21354 )
...
* spl-token: Add feature flag for new release
* Remove all spl token version declarations
2021-11-21 14:27:03 +01:00
carllin
b30c94ce55
ClusterInfoVoteListener send only missing votes to BankingStage ( #20873 )
2021-11-18 15:20:41 -08:00
Alexander Meißner
e540b1cf3c
Refactor: Move sdk::process_instruction in program-runtime-crate ( #21180 )
...
* Moves the Executor dyn Trait to instruction_processor.rs
* Moves the Logger dyn Trait as well as the ic_msg and ic_logger_msg macros to log_collector.rs,
and moves the stable_log to stable_log.rs
* Moves the ComputeMeter dyn Trait to invoke_context.rs
* Moves the InvokeContext dyn Trait and the ProcessInstructionWithContext type to invoke_context.rs
* Updates cargo files.
* Re-export InvokeContext in program-test
Co-authored-by: Jon Cinque <jon.cinque@gmail.com >
2021-11-17 19:35:07 +01:00
Jack May
cb0bb5bd1e
Nonce accounts must be writeable ( #21260 )
...
* Nonce accounts must be writeable
* feedback
* feedback
2021-11-16 23:01:00 +00:00
Alexander Meißner
0661aa67ed
Adds a feature gate to reject the deployment of programs with unresolved syscall symbols. ( #21298 )
2021-11-16 18:21:16 +01:00
Kirill Fomichev
d8a392c20b
add new macro: pubkey! ( #21245 )
...
* add new macro: `pubkey!`
* fmt
2021-11-15 11:22:51 -08:00
Jeff Washington (jwash)
f8dcb2f38b
report mem stats ( #21258 )
2021-11-13 00:59:41 +00:00
Tao Zhu
11153e1f87
refactor cost calculation ( #21062 )
...
* - cache calculated transaction cost to allow sharing;
- atomic cost tracking op;
- only lock accounts for transactions eligible for current block;
- moved qos service and stats reporting to its own model;
- add cost_weight default to neutral (as 1), vote has zero weight;
Co-authored-by: Tyera Eulberg <teulberg@gmail.com >
* Update core/src/qos_service.rs
Co-authored-by: Tyera Eulberg <teulberg@gmail.com >
* Update core/src/qos_service.rs
Co-authored-by: Tyera Eulberg <teulberg@gmail.com >
Co-authored-by: Tyera Eulberg <teulberg@gmail.com >
2021-11-12 01:04:53 -06:00
Jack May
131c0d78c4
Fix compute budget bump ( #21238 )
2021-11-11 14:09:28 -08:00
Alexander Meißner
6704fa011f
Removes native loader entrypoints from the SDK and thus from the public interface. ( #21185 )
2021-11-05 12:49:04 +01:00
Alexander Meißner
7200c5106e
Replaces MockInvokeContext by ThisInvokeContext in tests ( #20881 )
...
* Replaces MockInvokeContext by ThisInvokeContext in BpfLoader, SystemInstructionProcessor, CLIs, ConfigProcessor, StakeProcessor and VoteProcessor.
* Finally, removes MockInvokeContext, MockComputeMeter and MockLogger.
* Adjusts assert_instruction_count test.
* Moves ThisInvokeContext to the program-runtime crate.
2021-11-04 21:47:32 +01:00
Alexander Meißner
29ad081555
Stop caching sysvars, instead load them ahead of time. ( #21108 )
2021-11-04 09:48:34 +01:00
Justin Starry
140a5f633d
Simplify replay vote tracking by using packet metadata ( #21112 )
2021-11-03 09:02:48 +00:00
Jack May
1adf255e3a
Deprecate more Fee/Blockhash APIs ( #21140 )
2021-11-02 16:38:23 -07:00