1812 Commits

Author SHA1 Message Date
f8d338c9cb Switch accounts storage lock to DashMap (#12126)
Co-authored-by: Carl Lin <carl@solana.com>
2020-10-13 18:29:50 -07:00
e4f45bfd3b Bpf speed debug and tuner program (#12845) 2020-10-13 12:16:27 -07:00
56211378d3 terminology update, nonce to bump seed (#12840) 2020-10-13 10:11:08 -07:00
859eb606da Cargo.lock 2020-10-11 18:51:09 +00: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
11df2e2236 Bump version to v1.5.0 2020-10-08 04:51:36 +00:00
dd7fae4afb Fix syscall featurization (#12714)
* Fix syscall featurization

* nudge
2020-10-07 18:38:38 -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
d00453f747 Drain the entire compute budget (#12478) 2020-09-25 18:08:10 +00:00
d326512121 Add ComputeBudget tuner (#12476) 2020-09-25 09:01:22 -07:00
b8c4b88188 Cleanup names, fix line dependent test (#12477) 2020-09-25 09:00:06 -07:00
018cb5035a chore: bump num-derive from 0.3.0 to 0.3.2
Bumps [num-derive](https://github.com/rust-num/num-derive) from 0.3.0 to 0.3.2.
- [Release notes](https://github.com/rust-num/num-derive/releases)
- [Changelog](https://github.com/rust-num/num-derive/blob/master/RELEASES.md)
- [Commits](https://github.com/rust-num/num-derive/compare/num-derive-0.3.0...num-derive-0.3.2)

Signed-off-by: dependabot[bot] <support@github.com>
2020-09-24 16:56:12 -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
586501bb5e Allow publishing of secp256k1 program 2020-09-24 00:15:44 -06:00
22d8b3c3f8 Cleanup and feature gate instruction processing (#12359) 2020-09-20 10:58:12 -07:00
f561eb917f Add way to look at tx instructions (#11943) 2020-09-19 12:17:46 -07:00
cb8661bd49 Persistent tower (#10718)
* Save/restore Tower

* Avoid unwrap()

* Rebase cleanups

* Forcibly pass test

* Correct reconcilation of votes after validator resume

* d b g

* Add more tests

* fsync and fix test

* Add test

* Fix fmt

* Debug

* Fix tests...

* save

* Clarify error message and code cleaning around it

* Move most of code out of tower save hot codepath

* Proper comment for the lack of fsync on tower

* Clean up

* Clean up

* Simpler type alias

* Manage tower-restored ancestor slots without banks

* Add comment

* Extract long code blocks...

* Add comment

* Simplify returned tuple...

* Tweak too aggresive log

* Fix typo...

* Add test

* Update comment

* Improve test to require non-empty stray restored slots

* Measure tower save and dump all tower contents

* Log adjust and add threshold related assertions

* cleanup adjust

* Properly lower stray restored slots priority...

* Rust fmt

* Fix test....

* Clarify comments a bit and add TowerError::TooNew

* Further clean-up arround TowerError

* Truly create ancestors by excluding last vote slot

* Add comment for stray_restored_slots

* Add comment for stray_restored_slots

* Use BTreeSet

* Consider root_slot into post-replay adjustment

* Tweak logging

* Add test for stray_restored_ancestors

* Reorder some code

* Better names for unit tests

* Add frozen_abi to SavedTower

* Fold long lines

* Tweak stray ancestors and too old slot history

* Re-adjust error conditon of too old slot history

* Test normal ancestors is checked before stray ones

* Fix conflict, update tests, adjust behavior a bit

* Fix test

* Address review comments

* Last touch!

* Immediately after creating cleaning pr

* Revert stray slots

* Revert comment...

* Report error as metrics

* Revert not to panic! and ignore unfixable test...

* Normalize lockouts.root_slot more strictly

* Add comments for panic! and more assertions

* Proper initialize root without vote account

* Clarify code and comments based on review feedback

* Fix rebase

* Further simplify based on assured tower root

* Reorder code for more readability

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-19 14:03:54 +09: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
555252f435 Make noop a real noop (#12196)
* Make noop a real noop

* nudge
2020-09-12 01:49:00 +00:00
ae7b15f062 Gate pointer alignment enforcement (#12176) 2020-09-11 11:07:03 -07:00
fd47d38e59 Calc size ahead of time to alloc once (#12154) 2020-09-10 11:13:35 -07:00
af08221aec Switch account hashing to blake3 (#11969)
* Switch account hashing to blake3

Co-authored-by: Carl <carl@solana.com>
2020-09-02 00:37:36 -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
c4253dc0f9 Update to rayon 1.4.0 (#11898) 2020-08-28 21:00:11 -07:00
ea179ad762 Bump compute budget (#11864)
* Bump compute budget

* nudge
2020-08-26 21:48:51 +00:00
c2e5dae7ba Gate aligned program heap (#11808) 2020-08-24 13:21:34 -07:00
9a366281d3 sdk: Make PubKey::create_program_address available in program unit tests (#11745)
* sdk: Make PubKey::create_program_address available in program unit tests

This finishes the work started in #11604 to have
`create_program_address` available when `target_arch` is not `bpf` and
`program` is enabled.  Otherwise, there is an undefined reference error
to `sol_create_program_address`, which is only defined in `bpf`.

A small test to simply call the function has been added in order to catch
the problem in the future.

The default dependency to `solana-sdk/default` doesn't cause a problem with
existing programs since `build.sh` always specifies
`--no-default-features`, and programs in `solana-program-library` all
use it too.

* Add `default-features = false` for inter-program dependencies

Fix the build error found during CI.  The `--no-default-features` flag
only applies to the top-level package, and not to dependencies.  A program that
depends on another program, i.e. `128bit` which depends on `128bit_dep`,
must specify `default-features = false` when including that package,
otherwise the `bpf` build will try to pull in default packages, which
includes `std`.
2020-08-24 19:28:36 +02: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
f02a78d8ff Add StakeInstruction::AuthorizeWithSeed (#11700)
* Add StakeInstruction::AuthorizeWithSeed

* chore: add authorize-with-seed to web.js

* fix: add address_owner

* Add SystemInstruction::TransferWithSeed

* Update ABI hash

* chore: better variable names

* Add AuthorizeWithSeedArgs

* Reorder and rename arguments for clarity
2020-08-21 18:28:01 +00:00
247f27af37 Submit a vote timestamp every vote (#10630)
* Submit a timestamp for every vote

* Submit at most one vote timestamp per second

* Submit a timestamp for every new vote

Co-authored-by: Tyera Eulberg <tyera@solana.com>
2020-08-21 11:10:51 -06:00
b1bc901a66 Allow votes to timestamp subsequent slots with the same timestamp (#11715) 2020-08-19 23:19:24 +00:00
46830124f8 CPI support for bpf_loader_deprecated (#11695) 2020-08-18 11:26:29 -07:00
d15173ad9d Address latest nightly clippy lints, but globally disable stable_sort_primitive 2020-08-17 22:36:10 -07:00
e9b610b8df Add SystemInstruction::CreateAccount support to CPI (#11649) 2020-08-17 13:38:42 -07:00
f1ba2387d3 More efficient padding (#11656) 2020-08-17 10:24:34 -07:00
750e5344f1 Return an error from create_program_address syscall (#11658) 2020-08-17 09:49:40 -07:00