a4ca18a54d
add excutor creation trace timings
2022-01-08 05:25:37 -07:00
1f00926874
Add runtime support for address table lookups (backport #22223 ) ( #22354 )
2022-01-08 07:57:04 +08:00
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
4be6e52a4f
cache executors on failed transactions (backport #22308 ) ( #22328 )
...
* cache executors on failed transactions (#22308 )
(cherry picked from commit 12e160269e
)
# Conflicts:
# program-runtime/src/invoke_context.rs
# runtime/src/bank.rs
* resolve conflicts
Co-authored-by: Jack May <jack@solana.com >
2022-01-06 09:14:48 +00:00
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
840ec0686e
Fix broken build from bpf/tests/programs.rs ( #22312 )
...
These tests were broken due to PR #22289
2022-01-05 15:06:15 -06:00
ba0188a36d
Bump version to 1.9.4 ( #22304 )
2022-01-05 12:02:36 -06:00
8578429c4d
Refactor: Improve type safety and readability of transaction execution (backport #22215 ) ( #22289 )
...
* Refactor: Improve type safety and readability of transaction execution (#22215 )
* resolve conflicts
Co-authored-by: Justin Starry <justin@solana.com >
2022-01-05 23:01:15 +08:00
09dbf069e8
Add test to enforce that program id account info for CPI is optional ( #22069 ) ( #22103 )
...
* Update tests to demonstrate that program id account info for CPI is optional
* Clean up comments that say that program id account info is required
(cherry picked from commit ec7536faf6
)
Co-authored-by: Justin Starry <justin@solana.com >
2022-01-04 21:47:48 +00:00
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
3e4e2e9113
Prevent lookup tables from being closed during deactivation slot ( #22221 ) ( #22247 )
...
(cherry picked from commit bbe5b66324
)
Co-authored-by: Justin Starry <justin@solana.com >
2022-01-03 23:32:03 +00:00
264bb903a3
Bump rbpf to v0.2.21 ( #22216 ) ( #22217 )
...
(cherry picked from commit 9139be89b7
)
2022-01-01 20:42:53 +00:00
70d5b6aeaf
Bump solana_rbpf to version v0.2.20 ( #22164 ) ( #22207 )
...
(cherry picked from commit 8a43e2d889
)
Co-authored-by: Alexander Meißner <AlexanderMeissner@gmx.net >
2021-12-31 21:57:20 +00:00
113d261a2c
Count compute units even when transaction errors (backport #22182 ) ( #22199 )
...
* Count compute units even when transaction errors (#22182 )
(cherry picked from commit d06e6c7425
)
# Conflicts:
# program-runtime/src/invoke_context.rs
# runtime/src/cost_model.rs
# runtime/src/message_processor.rs
* Resolve conflicts
Co-authored-by: carllin <carl@solana.com >
2021-12-31 21:14:00 +00:00
7efd0391e9
Revert "Count compute units even when transaction errors (backport #22059 ) ( #22154 )" ( #22175 )
...
This reverts commit 401c542d2a
.
2021-12-30 02:39:25 -05:00
401c542d2a
Count compute units even when transaction errors (backport #22059 ) ( #22154 )
...
* Count compute units even when transaction errors (#22059 )
(cherry picked from commit eaa8c67bde
)
# Conflicts:
# program-runtime/src/invoke_context.rs
# runtime/src/bank.rs
# runtime/src/message_processor.rs
* Fix merge conflicts
Co-authored-by: carllin <carl@solana.com >
2021-12-29 08:04:12 +00:00
7d61935bf1
Bump bpf-tools to v1.21 ( #22083 )
...
(cherry picked from commit 7cc6262b5a
)
Co-authored-by: Dmitri Makarov <dmakarov@alumni.stanford.edu >
2021-12-23 03:38:04 +00:00
9fbaaa5102
Increment execution timings on errors as well ( #22053 ) ( #22072 )
...
(cherry picked from commit 37f6777ceb
)
Co-authored-by: carllin <carl@solana.com >
2021-12-22 22:50:19 +00:00
78e7913352
Bump version to 1.9.3 ( #22065 )
2021-12-22 11:41:03 -06:00
f58b87befe
v1.9: bump tarpc from 0.26.2 to 0.27.2 and add BanksClientError ( #22055 )
...
* chore: bump tarpc from 0.26.2 to 0.27.2
Bumps [tarpc](https://github.com/google/tarpc ) from 0.26.2 to 0.27.2.
- [Release notes](https://github.com/google/tarpc/releases )
- [Changelog](https://github.com/google/tarpc/blob/master/RELEASES.md )
- [Commits](https://github.com/google/tarpc/commits )
---
updated-dependencies:
- dependency-name: tarpc
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
* [auto-commit] Update all Cargo lock files
* Accommodate breaking changes
* Reword incorrect error message
* Add error module
* Revert client Error type to io::Error; easy transition to BanksClientError
* Bump tracing crates in programs
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com >
2021-12-22 03:41:16 +00:00
75fe0d3ecf
Fix #21986 ( #22035 ) ( #22049 )
...
* Partial revert "Updates documentation around what needs to be passed in CPI. (#21633 )"
* Enforces the program_id being passed explicitly by removing it from get_instruction_keyed_accounts().
* instruction_accounts => instructions_account
(cherry picked from commit ba8e15848e
)
Co-authored-by: Alexander Meißner <AlexanderMeissner@gmx.net >
2021-12-21 17:54:18 +00:00
57e5406476
Add deactivation cooldown before address lookup tables can be closed ( #22011 ) ( #22036 )
...
(cherry picked from commit f5d1115468
)
Co-authored-by: Justin Starry <justin@solana.com >
2021-12-21 02:10:14 +00:00
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
bfa6302985
Bump version to 1.9.2
2021-12-15 16:18:14 -08:00
9f173d3717
Add helper crate to generate syscalls.txt
2021-12-14 21:34:36 -08:00
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
c1f54c22ed
Remove the 5 integer msg! form
...
(cherry picked from commit c5c699a918
)
2021-12-11 12:47:43 -08:00
4b63d51e3e
Bump version to 1.9.1 ( #21802 )
2021-12-11 12:50:36 +00:00
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
2c4765e75a
Bump solana_rbpf to version v0.2.18 ( #21774 ) ( #21786 )
...
(cherry picked from commit a5a0dabe7b
)
Co-authored-by: Alexander Meißner <AlexanderMeissner@gmx.net >
2021-12-11 02:38:03 +00:00
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
a31660815f
rebase
2021-12-09 18:41:47 -08:00
85f601993f
Cargo.lock
...
(cherry picked from commit f4babb7566
)
# Conflicts:
# Cargo.lock
# programs/bpf/Cargo.lock
2021-12-09 18:41:47 -08:00
8836069719
Add wasm bindings for Pubkey
and Keypair
...
(cherry picked from commit 488dc37fec
)
2021-12-09 18:41:47 -08:00
ef970bb14a
- Implicitly fixes invoke_context.return_data not being reset between instructions in process_message. ( #21671 ) ( #21684 )
...
- Lets InvokeContext::process_cross_program_instruction() handle the first invocation depth too.
- Marks InvokeContext::verify(), InvokeContext::verify_and_update() and InvokeContext::process_executable_chain() private.
- Renames InvokeContext::process_cross_program_instruction() to InvokeContext::process_instruction().
- Removes InvokeContext::new_mock_with_sysvars().
(cherry picked from commit 1df88837c8
)
Co-authored-by: Alexander Meißner <AlexanderMeissner@gmx.net >
2021-12-08 10:48:49 +00:00
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
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
a433bb310d
Add ability to update entire vote state ( #20014 )
2021-12-03 16:01:21 -05:00
1430b58a6d
Remove deprecated slow epoch boundary methods ( #21568 )
2021-12-03 17:59:10 +00:00
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
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
a9d5ef2055
Cleanup: InvokeContext accessors ( #21574 )
...
* Removes blockhash accessors from InvokeContext.
* Removes lamports_per_signature accessors from InvokeContext.
* Removes return_data accessors from InvokeContext.
* Removes feature_set accessor from InvokeContext.
* Removes instruction_recorders and instruction_index accessors from InvokeContext.
* Moves get_sysvars() into InvokeContext.
* Removes compute_meter parameter from InvokeContext::new().
* Removes InvokeContext::new_mock_with_sysvars_and_features().
* Removes InvokeContext::update_timing().
2021-12-03 12:15:22 +01:00
18a16ad956
Support building solana-program on 32-bit architectures that do not ( #21577 )
...
have 64-bit atomics by using a Mutex<u64> on 32-bit architectures.
Currently the usage of atomics are only in functions that support
tests and benchmarks.
2021-12-03 01:18:21 +00:00
bfdb775ffc
Unifies ThisInvokeContext and dyn trait InvokeContext. ( #21563 )
2021-12-02 18:47:16 +01:00
c825b0a84d
Fixes invoke_context.get_return_data() shadowing program_id. ( #21562 )
2021-12-02 13:12:11 +01:00
6330cbcf33
Refactor: Use InvokeContext in all Syscalls ( #21545 )
...
* Adds ComputeMeter::mock_set_remaining().
* Adds InvokeContext::get_loader()
* Adds a LogCollector to InvokeContext::new_mock().
* Adds "invoke_context: Rc<RefCell<&'a mut dyn InvokeContext>>,"
to all SyscallObjects.
* Adds LogCollector::get_recorded_content().
* Removes loader_id parameter from bind_syscall_context_objects() and create_vm().
2021-12-02 08:58:02 +01:00
0212a71d3e
Remove unused bpfloader openssl dependency
2021-12-01 09:05:39 -08:00
cb368e6554
Pass Epoch by value in StakeHistory::get() ( #21523 )
2021-12-01 08:57:29 -06:00
3da914330d
Fix #21397 ( #21535 )
...
Adds InvokeContext::get_instruction_keyed_accounts() to skip first_instruction_account keyed_accounts in CPI.
2021-12-01 14:57:59 +01:00
b78f5b6032
Refactor: Cleanup InstructionProcessor ( #21404 )
...
* Moves create_message(), native_invoke() and process_cross_program_instruction()
from the InstructionProcessor to the InvokeContext so that they can have a useful "self" parameter.
* Moves InstructionProcessor into InvokeContext and Bank.
* Moves ExecuteDetailsTimings into its own file.
* Moves Executor into invoke_context.rs
* Moves PreAccount into its own file.
* impl AbiExample for BuiltinPrograms
2021-12-01 08:54:42 +01:00