262 Commits

Author SHA1 Message Date
85bec37be4 Translate data length and owner as writable (#13914) 2020-12-02 09:05:42 -08:00
aebc3a17ce Fix undefined symbol "custom panic" in BPF test programs (#13840)
* Implements missing "custom_panic" symbol
2020-12-01 16:52:20 +01:00
733fcbaa6c Check that the program was granted access to program_id (#13890) 2020-12-01 07:35:07 -08:00
b47bd0a296 Add program id spoof tests (#13866) 2020-11-30 21:06:11 +00:00
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
461ae40eea provide full Rust panic messages in BPF and add memory optimizations (#13455) 2020-11-09 13:40:26 -08:00
84b139cc94 Add builtin mem tests (#13429) 2020-11-05 22:20:54 -08:00
c24fbb6f8b Fix duplicate records of inner instructions (#13380)
* Fix duplicate records of inner instructions

* fix tests

* fix clippy

* Remove bad_inner_instructions
2020-11-05 15:23:52 +08:00
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
da361afbb9 Revert "Updates rbpf to v0.2.0, (#12951)"
This reverts commit 6606590b81.
2020-10-29 21:45:24 -07:00
7d686b72a0 Add Bank::set_bpf_compute_budget() 2020-10-29 21:45:24 -07:00
225bed11c7 Remove Entrypoint type 2020-10-29 21:45:24 -07:00
df8dab9d2b Native/builtin programs now receive an InvokeContext 2020-10-29 21:45:24 -07:00
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
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
1b343665a1 Move KeyedAccount out of solana-program. Native programs are not supported by solana-program 2020-10-26 18:54:54 -07:00
b169d9cfbe Add --bpf-out-dir argument to control where the final build products land 2020-10-23 04:57:03 +00:00
7bc073defe Run codemod --extensions rs Pubkey::new_rand solana_sdk::pubkey::new_rand 2020-10-21 19:08:13 -07:00
969f7b015b Respect RefCell when calling invoke (#12858)
* Respect RefCell when calling invoke

* nudge
2020-10-15 01:06:41 +00:00
56211378d3 terminology update, nonce to bump seed (#12840) 2020-10-13 10:11:08 -07:00
c3907be623 Add adjustable stack size and call depth (#12728) 2020-10-09 13:07:09 -07:00
2cd7cd3149 Bump max invoke depth to 4 (#12742) 2020-10-09 10:33:12 -07:00
8f5431551e Store program logs in blockstore / bigtable (TransactionWithStatusMeta) (#12678)
* introduce store program logs in blockstore / bigtable

* fix test, transaction logs created for successful transactions

* fix test for legacy bincode implementation around log_messages

* only api nodes should record logs

* truncate transaction logs to 100KB

* refactor log truncate for improved coverage
2020-10-08 12:06:15 -07:00
973f0965e1 Add ristretto multiply syscall (#12699) 2020-10-06 23:52:13 -07:00
630eb3b907 Local program allocator (#12679) 2020-10-06 11:03:51 -07:00
d0aa8a6446 Fix zero-len slice translations (#12642) 2020-10-02 17:45:39 -07:00
adeb06e550 Check CPI program is executable (#12644) 2020-10-02 13:55:22 -07:00
058bca6632 add sha256 syscall (#12569) 2020-09-29 23:29:20 -07:00
777342a1ef Add rand dependency test (#12566)
* Add rand dependency test

* nudge
2020-09-30 00:25:51 +00:00
74fcb184b2 Pipe FeatureSet though InvokeContext (#12536)
* Pipe FeatureSet though InvokeContext

* gate program size cap

* nit
2020-09-29 21:36:30 +00:00
2ff983647f Move process_instruction defs to runtime (#12507) 2020-09-29 01:36:46 -07:00
aa5c008fa8 Add pico-inflation feature 2020-09-28 08:25:00 -07:00
7c4822efb1 Nit: bpf test cleanup (#12401) 2020-09-25 17:02:48 -07:00
d326512121 Add ComputeBudget tuner (#12476) 2020-09-25 09:01:22 -07:00
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
f561eb917f Add way to look at tx instructions (#11943) 2020-09-19 12:17:46 -07:00
3930cb865a Add keccak-secp256k1 instruction (#11839)
* Implement keccak-secp256k1 instruction

Verifies eth addreses with ecrecover function

* Move secp256k1 test
2020-09-15 18:23:21 -07:00
5ab4109b7e Add memory allocation support for C programs (#12254) 2020-09-15 16:42:20 -07:00
3278d78f08 Cache re-usable work performed by the loader (#12135) 2020-09-14 17:42:37 -07:00
ae7b15f062 Gate pointer alignment enforcement (#12176) 2020-09-11 11:07:03 -07:00
fab2d44abd Add BPF test program instruction monitoring (#11984) 2020-09-01 17:25:55 -07:00
ae0fd3043a Add support for deprecated loader (#11946) 2020-08-31 14:06:58 -07:00
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
e9b610b8df Add SystemInstruction::CreateAccount support to CPI (#11649) 2020-08-17 13:38:42 -07:00
7c736f71fe Make BPF Loader static (#11516) 2020-08-14 12:32:45 -07:00
03263c850a Force program address off the curve (#11323) 2020-08-05 16:35:54 -07:00
7ade330b23 Rename Client methods to match proposed BanksClient (#10793) 2020-06-25 03:35:38 +00:00
1c498369b5 Remove fee-payer guesswork from Message and Transaction (#10776)
* Make Message::new_with_payer the default constructor

* Remove Transaction::new_[un]signed_instructions

These guess the fee-payer instead of stating it explicitly
2020-06-24 14:52:38 -06:00
db4a18ada4 Add PubkeyError for ProgramError (#10748) 2020-06-23 11:19:27 -07:00
73586c1aad Use &[u8] for program address seeds rather then &str (#10744) 2020-06-22 16:51:43 -07:00