Commit Graph

105 Commits

Author SHA1 Message Date
Jack May
02432a548f Cleanup old features (#15391) 2021-02-18 09:56:11 -08:00
Trent Nelson
7f7370c306 Re-allow clippy::integer_arithmetic at crate-level 2021-02-17 13:55:08 -07:00
Jack May
d24d5fba0e Upgradeable loader max_data_len limit (#15039) 2021-02-03 09:16:25 -08:00
Jack May
07cef5a557 Buffer authority must match upgrade authority for deploys and upgrades (#14923) 2021-01-29 12:43:42 -08:00
Jack May
0b1015f7d3 Richer runtime failure logging (#14875) 2021-01-28 10:04:54 -08:00
Michael Vines
3c6dbd21d2 Add ic_msg()/ic_logger_msg() macros 2021-01-21 21:41:33 +00:00
Jack May
a480b63234 Bail on small deploy buffers (#14677) 2021-01-20 01:56:44 +00:00
Jack May
e3bd9e5300 Prevent the invoke and upgrade of programs in the same tx batch (#14653)
* Prevent the invoke and upgrade of programs in the same tx batch

* Pass program address as writable in the upgrade instruction
2021-01-19 16:24:44 -08:00
Jack May
9d53eca6e3 Report correct program id (#14486) 2021-01-08 14:43:24 -08:00
Jack May
58487c6360 Add buffer authority to upgradeable loader (#14482) 2021-01-08 09:37:57 -08:00
Jack May
0619805806 Upgradeable programs needs program account's address as program id (#14417) 2021-01-04 21:45:05 +00:00
Jack May
6c6095abe7 nit: clarify loader id (#14355) 2020-12-30 20:02:29 +00:00
Jack May
5524938a50 Limit CPI instruction size (#14317) 2020-12-29 01:14:17 +00:00
Jack May
ee0a80a092 Prevent bpf loader impersonators (#14278) 2020-12-24 03:04:48 +00:00
Jack May
ab205b682a Upgradeable programs called same as non-upgradeable (#14239)
* Upgradeable programs called same as non-upgradeable

* nudge
2020-12-22 09:26:55 -08:00
Jack May
593ad80954 Fix program account rent exemption (#14176) 2020-12-17 09:02:31 +00:00
Jack May
d513b0c4ca Add Program loader/environment instruction errors (#14120) 2020-12-15 09:54:07 -08:00
Jack May
9e90394583 Upgradeable loader (#13689) 2020-12-14 15:35:10 -08: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
Alexander Meißner
c833ede4af Rbpf v0.2.1 (#13732)
* Refactoring to match rbpf-v0.2.1 and add JIT compilation caching.

* Removes obsolete bpf-trace.py which has been replaced by the rbpf CLI tool.
2020-11-24 18:00:19 +01:00
Jack May
3a9dca0c67 Add back BPF error logging (#13633)
* Add back BPF error logging

* Update programs/bpf_loader/src/lib.rs

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-11-17 08:10:14 +00:00
Michael Vines
baa6b3a261 Add stable program logging for BPF and native programs 2020-11-14 08:26:01 -08:00
Jack May
30ef53cb13 fix bpf lddw check (#13554) 2020-11-12 13:13:42 -08:00
Alexander Meißner
4999fe298b Rbpf v0.2.0 (#13365)
* Updates rbpf to v0.2.0,
which unifies the interfaces of the interpreter and the JIT.
However, the JIT is not enabled yet.
2020-11-04 18:46:26 +01:00
Michael Vines
da9548fd12 de-mut some InvokeContext methods 2020-10-30 09:20:09 +00:00
Michael Vines
da361afbb9 Revert "Updates rbpf to v0.2.0, (#12951)"
This reverts commit 6606590b81.
2020-10-29 21:45:24 -07:00
Michael Vines
7d686b72a0 Add Bank::set_bpf_compute_budget() 2020-10-29 21:45:24 -07:00
Michael Vines
33884d847a Remove programs clone() 2020-10-29 21:45:24 -07:00
Michael Vines
2664a1f7ef Remove MessageProcessor::loaders 2020-10-29 21:45:24 -07:00
Michael Vines
df8dab9d2b Native/builtin programs now receive an InvokeContext 2020-10-29 21:45:24 -07:00
Alexander Meißner
6606590b81 Updates rbpf to v0.2.0, (#12951)
which unifies the interfaces of the interpreter and the JIT.
However, the JIT is not enabled yet.
2020-10-29 11:34:52 -07:00
Alexander Meißner
65ee3a6bdd Refactors the common code of test and bench targets into the solana_runtime::bpf_test_utils module. (#13203) 2020-10-29 10:04:47 +01:00
Michael Vines
1b343665a1 Move KeyedAccount out of solana-program. Native programs are not supported by solana-program 2020-10-26 18:54:54 -07:00
Michael Vines
7bc073defe Run codemod --extensions rs Pubkey::new_rand solana_sdk::pubkey::new_rand 2020-10-21 19:08:13 -07:00
Ryo Onodera
c0675968b1 Support Debug Bank (#13017) 2020-10-21 01:05:45 +09:00
Jack May
b510474dcb Report compute budget usage (#12931) 2020-10-15 15:55:37 -07:00
Jack May
3f9e6a600b program log pubkey as base58 (#12901) 2020-10-15 09:11:54 -07:00
Jack May
c3907be623 Add adjustable stack size and call depth (#12728) 2020-10-09 13:07:09 -07:00
Jack May
2cd7cd3149 Bump max invoke depth to 4 (#12742) 2020-10-09 10:33:12 -07:00
Jack May
058bca6632 add sha256 syscall (#12569) 2020-09-29 23:29:20 -07:00
Jack May
74fcb184b2 Pipe FeatureSet though InvokeContext (#12536)
* Pipe FeatureSet though InvokeContext

* gate program size cap

* nit
2020-09-29 21:36:30 +00:00
Jack May
2ff983647f Move process_instruction defs to runtime (#12507) 2020-09-29 01:36:46 -07:00
Jack May
d00453f747 Drain the entire compute budget (#12478) 2020-09-25 18:08:10 +00:00
Justin Starry
6601ec8f26 Record and store invoked instructions in transaction meta (#12311)
* Record invoked instructions and store in transaction meta

* Enable cpi recording if transaction sender is some

* Rename invoked to innerInstructions
2020-09-24 22:36:22 +08:00
Jack May
3278d78f08 Cache re-usable work performed by the loader (#12135) 2020-09-14 17:42:37 -07:00
Jack May
ae7b15f062 Gate pointer alignment enforcement (#12176) 2020-09-11 11:07:03 -07:00
Jack May
ea179ad762 Bump compute budget (#11864)
* Bump compute budget

* nudge
2020-08-26 21:48:51 +00:00
Jack May
c2e5dae7ba Gate aligned program heap (#11808) 2020-08-24 13:21:34 -07:00
Jack May
8d362f682b The constraints on compute power a program can consume is limited only to its instruction count (#11717) 2020-08-21 15:31:19 -07:00
Jack May
7c736f71fe Make BPF Loader static (#11516) 2020-08-14 12:32:45 -07:00