Michael Vines
636a455790
Create a random `-keypair.json` file alongside the program deploy artifact for easy upgrades
2020-12-16 19:51:16 +00:00
Michael Vines
9993d2c623
Use AsRef
2020-12-16 19:51:16 +00:00
Michael Vines
1e977ac025
Bump version to v1.6.0
2020-12-15 18:28:04 +00:00
Jack May
d513b0c4ca
Add Program loader/environment instruction errors ( #14120 )
2020-12-15 09:54:07 -08:00
Jack May
ab98c1f2d4
Add try_find_program_address syscall ( #14118 )
2020-12-15 08:15:01 -08:00
Jack May
9e90394583
Upgradeable loader ( #13689 )
2020-12-14 15:35:10 -08:00
Michael Vines
7143aaa89b
Clippy
2020-12-14 08:03:29 -08:00
Ryo Onodera
de9ac43ebf
Simple cap by including sysvars and native programs ( #13884 )
...
* Simpler cap by including sysvars and native programs
* Fix tests
* Add comment
* revert some unrelated code
* Update test_bank_update_sysvar_account for cap.
* Test cap. for add_native_program using new helper
* Improve the cap adjustment with new tests
* Fix typo...
* Adjust test for improved code coverage
* Rename simpler_capitalization => simple_capitalization
* More rename and bonus commenting
2020-12-14 21:03:24 +09:00
dependabot[bot]
88d950e5a8
chore: bump log from 0.4.8 to 0.4.11 ( #13691 )
...
* chore: bump log from 0.4.8 to 0.4.11
Bumps [log](https://github.com/rust-lang/log ) from 0.4.8 to 0.4.11.
- [Release notes](https://github.com/rust-lang/log/releases )
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/log/compare/0.4.8...0.4.11 )
Signed-off-by: dependabot[bot] <support@github.com>
* [auto-commit] Update all Cargo lock files
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2020-12-13 13:48:23 +09:00
Jack May
1d95b5476e
Add next_account_infos helper ( #14087 )
2020-12-12 20:12:56 -08:00
dependabot[bot]
a9185d4ea1
chore: bump rustversion from 1.0.3 to 1.0.4 ( #14022 )
...
* chore: bump rustversion from 1.0.3 to 1.0.4
Bumps [rustversion](https://github.com/dtolnay/rustversion ) from 1.0.3 to 1.0.4.
- [Release notes](https://github.com/dtolnay/rustversion/releases )
- [Commits](https://github.com/dtolnay/rustversion/compare/1.0.3...1.0.4 )
Signed-off-by: dependabot[bot] <support@github.com>
* [auto-commit] Update all Cargo lock files
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2020-12-13 03:56:27 +09:00
Trent Nelson
edff62af3d
Switch to memmap2 fork
2020-12-11 23:44:03 +00:00
Tyera Eulberg
d6eff3d62c
Filter out stake and vote accounts with incorrect owners ( #14062 )
...
* Add failing test
* Check stake/vote accounts for validity
* Feature gate change
* Add datapoint
* Add test realism
2020-12-11 12:21:25 -07:00
Michael Vines
0a9ff1dc9d
Initial solana-test-validator command-line program
2020-12-11 04:17:38 +00:00
Ryo Onodera
164b7895b3
Tiny add_native_program bug fixes with cleanups ( #14042 )
...
* Tiny add_native_program bug fixes with cleanups
* Fix typo
2020-12-11 11:03:31 +09:00
Jack May
d9655ea507
Add message helpers to get program info ( #14047 )
2020-12-10 16:39:43 -08:00
Jack May
7abd8084b6
Add get_minimum_balance_for_rent_excemption to Client ( #14048 )
2020-12-10 16:39:28 -08:00
Jack May
5ea80e673f
Fix priv escalation test ( #14046 )
2020-12-10 22:36:33 +00:00
Jack May
1dc71fb5aa
Bump criterion to v2.3.3 ( #14002 )
2020-12-07 21:53:28 +00:00
Jack May
20c0e8793e
Rent account passed to loader can be read-only ( #13997 )
2020-12-07 19:44:32 +00: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
Jack May
3f841df7cf
Cap number of program address seeds ( #13924 )
2020-12-02 22:25:06 +00:00
Trent Nelson
17defbff13
Make `Accounts::is_non_loader_key()` a method on `Message`
2020-12-02 20:10:08 +00:00
Trent Nelson
274312ebb5
sdk: Check owner when verifying nonce accounts
2020-12-02 20:10:08 +00:00
Alexander Meißner
aebc3a17ce
Fix undefined symbol "custom panic" in BPF test programs ( #13840 )
...
* Implements missing "custom_panic" symbol
2020-12-01 16:52:20 +01:00
Jack May
57dd60f671
Use msg! in program entrypoint ( #13889 )
2020-12-01 10:56:26 +00:00
Michael Vines
6705b5a98c
Add msg! macro for program logging, deprecate info! macro
2020-11-30 20:39:42 -08:00
behzad nouri
e1793e5a13
caches vote-state de-serialized from vote accounts ( #13795 )
...
Gossip and other places repeatedly de-serialize vote-state stored in
vote accounts. Ideally the first de-serialization should cache the
result.
This commit adds new VoteAccount type which lazily de-serializes
VoteState from Account data and caches the result internally.
Serialize and Deserialize traits are manually implemented to match
existing code. So, despite changes to frozen_abi, this commit should be
backward compatible.
2020-11-30 17:18:33 +00:00
Tyera Eulberg
c930f92411
Restore bank feature used to deprecate Rewards sysvar ( #13786 )
2020-11-24 10:22:31 -07: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
Tyera Eulberg
c75d97e3f2
Add new inflation feature-ids ( #13671 )
...
* Add new inflation feature-ids, and full_inflation default values
* Compute inflation start from full_inflation activation
* Include pico_inflation in inflation start computation
* Add full-inflation constructor
* Align inflation taper with rewards accrual start and catch overflow edge case
2020-11-20 09:54:41 -07:00
Ryo Onodera
43d5e47ea9
Rewrite stake accounts for clear migration ( #13461 )
...
* Reduce overage stake by rewritng stake accounts
* Write tests and finish implemention
* Create and use new feature gate
* Clean up logging
* Fix typo
* Simplify enable_rewrite_stake
* Fix typo...
* Even simplify gating
* Add metrics
2020-11-20 05:15:06 +09:00
Michael Vines
f25c969ad8
Disable publishing of cargo-build-bpf/cargo-test-bpf to crates.io
2020-11-18 19:09:04 +00:00
Michael Vines
baa6b3a261
Add stable program logging for BPF and native programs
2020-11-14 08:26:01 -08:00
Michael Vines
9f95704706
Add --offline flag
2020-11-12 20:03:12 -08:00
Jack May
48dd9f7efd
Move secp256k1 instruction helper to the sdk ( #13560 )
2020-11-12 16:58:40 -08:00
Jack May
e390c8cb7f
Add stubs and heap region definitions ( #13521 )
...
* Add stubs and heap region definitions
* nudge
2020-11-11 05:50:16 +00:00
Tyera Eulberg
91f4e99b4c
Fix parsing CreateAccountWithSeed instructions ( #13513 )
...
* Reduce required num_system_accounts and handle 2-account instructions properly
* Update CreateAccountWithSeed account docs to be correct
* Add CreateAccountWithSeed test
2020-11-10 23:51:53 +00:00
Jack May
9ca8e98525
Add printf declaration ( #13514 )
2020-11-10 23:40:48 +00:00
Jack May
23c558510a
add missing c logging stubs ( #13511 )
2020-11-10 22:19:54 +00:00
Jack May
c280d40b40
align cluster and sim logging as hex ( #13484 )
2020-11-10 02:43:20 +00:00
Tyera Eulberg
c0e2ef06dc
Fix Bank accounts hash mismatch related to Clock::unix_timestamp ( #13477 )
...
* Test for different ancestors with mismatch bank hash
* Test cleanup
* Remove nondeterministic ancestor check
* Update timestamp bounding feature key
* Update design doc
* Filter recent_timestamps to nodes voting within the last epoch
Co-authored-by: Stephen Akridge <sakridge@gmail.com>
2020-11-10 02:10:09 +00:00
Jack May
461ae40eea
provide full Rust panic messages in BPF and add memory optimizations ( #13455 )
2020-11-09 13:40:26 -08:00
behzad nouri
73ac104df2
propagates errors out of Packet::from_data ( #13445 )
...
Packet::from_data is ignoring serialization errors:
https://github.com/solana-labs/solana/blob/d08c3232e/sdk/src/packet.rs#L42-L48
This is likely never useful as the packet will be sent over the wire
taking bandwidth but at the receiving end will either fail to
deserialize or it will be invalid.
This commit will propagate the errors out of the function to the
call-site, allowing the call-site to handle the error.
2020-11-08 15:10:03 +00:00
Tyera Eulberg
4c5f345798
Fix stake split rent-exempt adjustment ( #13357 )
...
* Add failing tests
* Fix stake split
* Calculate split rent-exempt-reserve and use
* Add comment in rent.rs
* Add tests for edge cases when splitting to larger accounts, and reject overflow splits
* Reframe InsufficientFunds checks in terms of lamports var
* Test hardening review comments
2020-11-06 20:32:05 +00:00
Michael Vines
0ea795caa8
cargo-build-bpf/cargo-test-bpf now support --workspace/--all
2020-11-06 12:27:46 -08:00
Michael Vines
1a70a2a25b
cargo-test-bpf now sets the "test-bpf" feature for crate tests
...
The feature allows for tests to distinguish between `cargo test` and
`cargo test-bpf` primarily for the purpose of excluding CPI tests that
require the system program under `cargo test`, as the path to enabling
CPI in `cargo test`-based testing is unclear
2020-11-06 10:21:07 -08:00
Tyera Eulberg
1b1d9f6b0c
Feature-gate stake program ( #13394 )
...
* Add legacy stake-program handling
* Strip out duplicative legacy code
* Add feature for stake-program-fix
* Feature-deploy new stake program
* Expand comment
2020-11-06 08:08:11 +00:00
Michael Vines
b511e51415
Define BPF_OUT_DIR for program-test, also handle -- arguments better
2020-11-05 14:29:17 -08:00
Michael Vines
77d9d06a44
Search BPF_OUT_DIR for programs
2020-11-05 14:29:17 -08:00
Michael Vines
5a435a4342
Check file modification times before strip and dump
2020-11-05 14:29:17 -08:00
Michael Vines
6c36a2085f
Add cargo-test-bpf
2020-11-05 14:29:17 -08:00
Michael Vines
8c4995b22b
Improve invoke_signed() docs
2020-11-04 23:44:04 +00:00
Michael Vines
661a935075
Final program ELF is now placed in ./target/deploy/ instead of .
2020-11-04 23:03:55 +00:00
Jack May
f6a73098a4
Update sol_log_compute_units ( #13360 )
2020-11-03 08:16:31 -08:00
Tyera Eulberg
3a1e125ce3
Add Clock sysvar details, update struct docs
2020-10-31 21:30:42 -07:00
Tyera Eulberg
4260b3b416
Sample votes from ancestors back to root
2020-10-31 21:30:42 -07:00
Tyera Eulberg
90778615f6
Use bounded timestamp-correction when feature enabled
2020-10-31 21:30:42 -07:00
Tyera Eulberg
80db6c0980
Add bounded timestamp-estimation method
2020-10-31 21:30:42 -07:00
Tyera Eulberg
0049ab69fb
Repurpose unused as Clock::epoch_start_timestamp; add gated update
2020-10-31 21:30:42 -07:00
Tyera Eulberg
96b8aa8bd1
Add bounding feature
2020-10-31 21:30:42 -07:00
Michael Vines
8acc47ee1b
MockInvokeContext::get_programs() implementation
2020-10-31 18:12:24 -07:00
Michael Vines
4b65e32f22
Move Feature struct to solana-program
2020-10-30 17:57:51 -07:00
Ryo Onodera
1df15d85c3
Fix tower/blockstore unsync due to external causes ( #12671 )
...
* Fix tower/blockstore unsync due to external causes
* Add and clean up long comments
* Clean up test
* Comment about warped_slot_history
* Run test_future_tower with master-only/master-slave
* Update comments about false leader condition
2020-10-30 19:31:23 +09:00
Michael Vines
da9548fd12
de-mut some InvokeContext methods
2020-10-30 09:20:09 +00:00
Jack May
72d41e5801
Update AccountInfo comments ( #13302 )
2020-10-30 08:16:44 +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
66e51a7363
Add sol_log_compute_units syscall
2020-10-29 21:45:24 -07:00
Michael Vines
225bed11c7
Remove Entrypoint type
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
Jack May
b5c8b86e7c
clarify comment ( #13289 )
2020-10-29 21:16:01 +00:00
Jack May
c458d4b213
move Account to solana-sdk ( #13198 )
2020-10-28 22:01:07 -07:00
Michael Vines
92d6521a7f
Add try_find_program_address()
2020-10-28 19:34:51 -07:00
Ryo Onodera
7d2962135d
Use pico inflation for ledger-tool capitalization --enable-inflation ( #13215 )
...
* Use pico inflation for ledger-tool capitalization --enable-inflation
* rust fmt
2020-10-28 15:30:39 +09:00
Jack May
4e0d1b1d4a
more portable install.sh ( #13114 )
2020-10-27 22:43:34 -07:00
Jack May
26eba5ac7d
Fix pr crossing for sysvar keyed-accounts ( #13189 )
2020-10-26 21:59:32 -07:00
Jack May
322c667655
check sysvar id for AccountInfo ( #13175 )
2020-10-26 20:38:45 -07: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
Jack May
e3c0cc980b
fix .gitignore ( #13177 )
2020-10-27 00:42:26 +00:00
Jack May
fc83a666fc
macos portable rust-bpf ( #13176 )
2020-10-27 00:11:33 +00:00
Michael Vines
c4fb77f057
Delete .lib.rs.swo
2020-10-26 16:01:25 -07:00
Michael Vines
0cc9c94c43
Rename "everything" feature to "full"
2020-10-24 17:26:11 +00:00
Michael Vines
a4956844bd
Update frozen_abi hashes
...
The movement of files in sdk/ caused ABI hashes to change
2020-10-24 08:37:55 -07:00
Michael Vines
dd711ab5fb
Rename solana-program-sdk to solana-program
2020-10-24 08:37:55 -07:00
Michael Vines
85c51f5787
Only activate legacy program feature for the solana-sdk crate
2020-10-24 08:37:55 -07:00
Michael Vines
63db324204
Initial population of solana-program-sdk
2020-10-24 08:37:55 -07:00
Michael Vines
3718771ffb
Add solana-program-sdk boilerplate
2020-10-24 08:37:55 -07:00
Michael Vines
b169d9cfbe
Add --bpf-out-dir argument to control where the final build products land
2020-10-23 04:57:03 +00:00
Michael Vines
959880db60
Remove unused pubkey::Pubkey imports
2020-10-21 19:08:13 -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
Michael Vines
76f11c7dae
Add hash_new_rand(), mark Hash::new_rand() as deprecated
2020-10-21 19:08:13 -07:00
Michael Vines
0e68ed6a8d
Add pubkey_new_rand(), mark Pubkey::new_rand() deprecated
2020-10-21 19:08:13 -07:00
Michael Vines
61be155413
Remove do.sh
2020-10-21 18:56:40 -07:00
Michael Vines
07a853d6cc
Add cargo-build-bpf
2020-10-21 18:56:40 -07:00
Tyera Eulberg
46d0019955
Parse stake and system instructions ( #13035 )
...
* Fix token account check
* Add helper to check num accounts
* Add parse_stake
* Add parse_system
* Fix AuthorizeNonce docs
* Remove jsonParsed unstable markers
* Clippy
2020-10-20 21:02:17 -06:00
Michael Vines
6858950f76
Remove frozen ABI modules from solana-sdk
2020-10-20 16:11:30 -07:00
Jon Cinque
81d0c8ae7f
Force unset CARGO to use correct version of cargo ( #13027 )
2020-10-20 14:50:34 -07:00
sakridge
83c53ae4b5
Fix secp256k1 instruction indexing and add tests ( #13026 )
2020-10-20 14:13:24 -07:00
Michael Vines
c5e16383b0
Add everything feature
2020-10-19 17:21:52 -07:00