Dmitri Makarov
812b2fff04
Adjust expected instruction counts in assert_instruction_count test ( #22927 )
2022-02-04 01:39:24 +00:00
Alexander Meißner
660f6981c6
Cleanup: TransactionContext ( #22910 )
...
* Adds BorrowedAccount::check_sysvar().
* Adds BorrowedAccount::get_data_mut().
* Implements account resizing in BorrowedAccount.
* Exposes is_signer() and is_writable() in InstructionContext.
* Removes AccountMeta and get_instruction_accounts_metas().
* Makes throwing errors in BorrowedAccount optional.
* Removes result return values from BorrowedAccount.
2022-02-03 17:19:42 +01:00
Alexander Meißner
c16cf9cf8a
Refactor: Use `SysvarCache` in all builtin programs ( #22864 )
...
* Replaces from_keyed_account() by SysvarCache in stake instruction.
* Replaces from_keyed_account() by SysvarCache in system instruction processor.
* Removes from_keyed_account().
Moves check_sysvar_keyed_account() into sysvar_cache.rs
* Removes tests which test for incorrectly serialized sysvars.
2022-02-03 13:03:50 +01:00
Jack May
cc94a93b56
Safer invoke context ( #22898 )
...
* Safer invoke context
* feedback and rebase with master
2022-02-03 02:34:51 -08:00
Jack May
ab02dba96f
Add get_processed_sibling_instruction syscall ( #22859 )
2022-02-02 16:45:57 -08:00
Will Hickey
75563f6c7b
Reject close of active vote accounts ( #22651 )
...
* 10461 Reject close of vote accounts unless it earned no credits in the previous epoch. This is checked by comparing current epoch (from clock sysvar) with the most recent epoch with credits in vote state.
2022-02-02 14:16:24 -06:00
Ryo Onodera
545c97f903
Clean up before credits_auto_rewind ( #22839 )
...
* Clean up before credits_auto_rewind
* Use `=` intead of `|=` for mutable bool
2022-02-01 22:42:02 +09:00
Jack May
551c24da57
nit: consistent name ( #22857 )
2022-02-01 07:46:04 +00:00
Alexander Meißner
bc800a8d5a
Refactor: Unify `SysvarCache` ( #22843 )
...
* Unifies SysvarCache filling in the runtime and tests.
Removes new_mock_with_sysvars_and_features()
Removes mock_process_instruction_with_sysvars().
Replaces from_keyed_account() by SysvarCache in vote processor.
* Replaces from_keyed_account() by SysvarCache in BPF loader.
2022-01-31 17:53:50 +01:00
dependabot[bot]
cc74693176
chore: bump serde from 1.0.134 to 1.0.136 ( #22817 )
...
* chore: bump serde from 1.0.134 to 1.0.136
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.134 to 1.0.136.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.134...v1.0.136 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
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>
2022-01-28 12:20:37 -07:00
dependabot[bot]
5b1d9739ce
chore: bump socket2 from 0.4.2 to 0.4.4 ( #22799 )
...
* chore: bump socket2 from 0.4.2 to 0.4.4
Bumps [socket2](https://github.com/rust-lang/socket2 ) from 0.4.2 to 0.4.4.
- [Release notes](https://github.com/rust-lang/socket2/releases )
- [Changelog](https://github.com/rust-lang/socket2/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/socket2/compare/v0.4.2...v0.4.4 )
---
updated-dependencies:
- dependency-name: socket2
dependency-type: direct:production
update-type: version-update:semver-patch
...
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>
2022-01-28 02:26:08 -07:00
Alexander Meißner
a71f05f86c
Fix CPI duplicate account privilege escalation ( #22752 )
...
* Adds TEST_DUPLICATE_PRIVILEGE_ESCALATION_SIGNER and TEST_DUPLICATE_PRIVILEGE_ESCALATION_WRITABLE.
* Moves CPI privilege verification out of deduplication loop.
2022-01-28 00:52:02 +01:00
dependabot[bot]
7376efe8ea
chore: bump libc from 0.2.112 to 0.2.115 ( #22796 )
...
* chore: bump libc from 0.2.112 to 0.2.115
Bumps [libc](https://github.com/rust-lang/libc ) from 0.2.112 to 0.2.115.
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.112...0.2.115 )
---
updated-dependencies:
- dependency-name: libc
dependency-type: direct:production
update-type: version-update:semver-patch
...
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>
2022-01-27 21:54:13 +00:00
dependabot[bot]
e3570a060a
chore: bump borsh from 0.9.1 to 0.9.2 ( #22765 )
...
* chore: bump borsh from 0.9.1 to 0.9.2
Bumps [borsh](https://github.com/near/borsh-rs ) from 0.9.1 to 0.9.2.
- [Release notes](https://github.com/near/borsh-rs/releases )
- [Changelog](https://github.com/near/borsh-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/near/borsh-rs/compare/v0.9.1...v0.9.2 )
---
updated-dependencies:
- dependency-name: borsh
dependency-type: direct:production
update-type: version-update:semver-patch
...
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>
2022-01-27 12:45:09 -07:00
Michael Vines
3fab5a3b14
Cargo.lock
2022-01-27 08:19:03 -08:00
Michael Vines
85e8bece2e
Add solana_client::nonblocking::RpcClient
2022-01-26 17:58:00 -08:00
dependabot[bot]
db481e1799
chore: bump serde_json from 1.0.75 to 1.0.78 ( #22748 )
...
* chore: bump serde_json from 1.0.75 to 1.0.78
Bumps [serde_json](https://github.com/serde-rs/json ) from 1.0.75 to 1.0.78.
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.75...v1.0.78 )
---
updated-dependencies:
- dependency-name: serde_json
dependency-type: direct:production
update-type: version-update:semver-patch
...
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>
2022-01-26 18:01:02 -07:00
Brooks Prumo
3993cd765c
Remove rewrite_rent_exempt_reserve() ( #22741 )
2022-01-26 18:42:44 -05:00
dependabot[bot]
aea8f0df16
chore: bump anyhow from 1.0.52 to 1.0.53 ( #22743 )
...
* chore: bump anyhow from 1.0.52 to 1.0.53
Bumps [anyhow](https://github.com/dtolnay/anyhow ) from 1.0.52 to 1.0.53.
- [Release notes](https://github.com/dtolnay/anyhow/releases )
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.52...1.0.53 )
---
updated-dependencies:
- dependency-name: anyhow
dependency-type: direct:production
update-type: version-update:semver-patch
...
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>
2022-01-25 21:10:34 -07:00
carllin
1cf6c97779
Add checks to vote state updates to handle updates outside of SlotHash history ( #22358 )
2022-01-25 13:47:31 -05:00
Tyera Eulberg
1c10677f82
Bump thread_local ( #22711 )
2022-01-24 11:08:30 -07:00
mooori
9666f4a8be
Update expected instruction count in test ( #22702 )
2022-01-24 12:12:29 +01:00
anatoly yakovenko
d6011ba14d
Dedup bloom filter is too slow ( #22607 )
...
* Faster dedup
* use ahash
* fixup
* single threaded
* use duration type
* remove the count
* fixup
2022-01-21 20:23:48 -07:00
samkim-crypto
d8cbb2a952
Elgamal pass ( #22632 )
...
* zk-token-sdk: change G and H to static and optimize pedersen arithmetic
* zk-token-sdk: remove unnecessary copy in elgamal arithmetic
* zk-token-sdk: fix elgamal tests for new syntax
* zk-token-sdk: use lazy-static for pedersen base
* zk-token-sdk: add dlog test for elgamal decryption
* zk-token-sdk: reflect changes in elgamal in the rest of the sdk
* zk-token-sdk: rustfmt and clippy
* zk-token-sdk: some documentation for elgamal and pedersen
* zk-token-sdk: minor remove whitespace
* zk-token-sdk: update lock files
* zk-token-sdk: change random() to new_rand()
* zk-token-sdk: add explanation for suppressing clippy::op_ref
2022-01-21 20:56:27 -05:00
Brooks Prumo
a7f2fff219
Remove active features stake program v3 and v4 ( #22612 )
...
Co-authored-by: Jon Cinque <jon.cinque@gmail.com>
2022-01-21 19:27:53 -06:00
dependabot[bot]
0cf886302d
chore: bump serde from 1.0.133 to 1.0.134 ( #22650 )
...
* chore: bump serde from 1.0.133 to 1.0.134
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.133 to 1.0.134.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.133...v1.0.134 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
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>
2022-01-21 17:14:02 -07:00
dependabot[bot]
d137acf74d
chore: bump libloading from 0.7.2 to 0.7.3 ( #22540 )
...
* chore: bump libloading from 0.7.2 to 0.7.3
Bumps [libloading](https://github.com/nagisa/rust_libloading ) from 0.7.2 to 0.7.3.
- [Release notes](https://github.com/nagisa/rust_libloading/releases )
- [Commits](https://github.com/nagisa/rust_libloading/commits/0.7.3 )
---
updated-dependencies:
- dependency-name: libloading
dependency-type: direct:production
update-type: version-update:semver-patch
...
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>
2022-01-21 20:00:16 +00:00
dependabot[bot]
95bbb70c91
chore: bump serde_json from 1.0.74 to 1.0.75 ( #22541 )
...
* chore: bump serde_json from 1.0.74 to 1.0.75
Bumps [serde_json](https://github.com/serde-rs/json ) from 1.0.74 to 1.0.75.
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.74...v1.0.75 )
---
updated-dependencies:
- dependency-name: serde_json
dependency-type: direct:production
update-type: version-update:semver-patch
...
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>
2022-01-21 12:26:51 -07:00
Justin Starry
7f20c6149e
Refactor: move simple vote parsing to runtime ( #22537 )
2022-01-20 10:39:21 +08:00
anatoly yakovenko
d343713f61
Optimize packet dedup ( #22571 )
...
* Use bloom filter to dedup packets
* dedup first
* Update bloom/src/bloom.rs
Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>
* Update core/src/sigverify_stage.rs
Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>
* Update core/src/sigverify_stage.rs
Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>
* Update core/src/sigverify_stage.rs
Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>
* fixup
* fixup
* fixup
Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>
2022-01-19 13:58:20 -08:00
Alexander Meißner
b448472037
Refactor: Move `InstructionRecorder` into `TransactionContext` ( #22578 )
...
* Moves InstructionRecorder into TransactionContext.
* Adds assertions for number_of_instructions_at_transaction_level.
2022-01-19 22:40:09 +01:00
Justin Starry
cc76a73c49
Refactor: move compute budget runtime logic into solana-program-runtime ( #22543 )
2022-01-17 20:48:00 +08:00
Michael Vines
65f1e0fcc2
vote account withdraw authority may change the authorized voter
2022-01-15 21:47:08 -08:00
Jack May
2aa113fd8c
Update syscall base costs
2022-01-14 16:15:14 -08:00
Brooks Prumo
56ac26f90e
Fix build: s/vote_instruction/vote_processor/ ( #22511 )
2022-01-14 11:35:14 -06:00
Justin Starry
ae6c511f13
Refactor: Split vote_instruction.rs into multiple files ( #22502 )
2022-01-14 17:25:15 +08:00
Justin Starry
93a7b94507
Add benchmark for vote processing ( #22486 )
2022-01-14 17:10:17 +08:00
Justin Starry
f804ccdece
Store address table lookups in blockstore and bigtable ( #22402 )
2022-01-14 15:24:41 +08:00
carllin
4ab7d6c23e
Filter out outdated slots ( #22450 )
...
* Filter out outdated slots
* Fixup error
2022-01-13 19:51:00 -05:00
Eric Warehime
b635073829
Add hidapi feature in remote-wallet
2022-01-13 14:12:54 -07:00
Jeff Washington (jwash)
e291342c4a
Revert "chore: bump dashmap from 4.0.2 to 5.0.0 ( #21824 )" ( #22488 )
...
This reverts commit 8aa3d690b5
.
2022-01-13 13:06:39 -06:00
Justin Starry
2370e61431
Perf: Store deserialized sysvars in the sysvars cache ( #22455 )
...
* Perf: Store deserialized sysvars in sysvars cache
* add bench
2022-01-13 05:36:21 +00:00
Justin Starry
b211f839cb
Fetch sysvars from invoke context for vote program ( #22444 )
2022-01-13 08:41:48 +08:00
Brooks Prumo
eaae2f3538
Use modular_bitfield to bitpack IndexEntry ( #22447 )
2022-01-12 14:37:34 -06:00
Justin Starry
7171c95bdd
Refactor: move sysvar cache to new module
2022-01-12 12:35:28 -07:00
dependabot[bot]
157f165a3d
Bump memmap2 from 0.5.1 to 0.5.2 ( #22414 )
...
* Bump memmap2 from 0.5.1 to 0.5.2
Bumps [memmap2](https://github.com/RazrFalcon/memmap2-rs ) from 0.5.1 to 0.5.2.
- [Release notes](https://github.com/RazrFalcon/memmap2-rs/releases )
- [Changelog](https://github.com/RazrFalcon/memmap2-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/RazrFalcon/memmap2-rs/compare/v0.5.1...v0.5.2 )
---
updated-dependencies:
- dependency-name: memmap2
dependency-type: direct:production
update-type: version-update:semver-patch
...
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>
2022-01-11 15:08:13 -07:00
Tyera Eulberg
637e366b18
Prevent rent-paying account creation ( #22292 )
...
* Fixup typo
* Add new feature
* Add new TransactionError
* Add framework for checking account state before and after transaction processing
* Fail transactions that leave new rent-paying accounts
* Only check rent-state of writable tx accounts
* Review comments: combine process_result success behavior; log and metrics before feature activation
* Fix tests that assume rent-exempt accounts are okay
* Remove test no longer relevant
* Remove native/sysvar special case
* Move metrics submission to report legacy->legacy rent paying transitions as well
2022-01-11 11:32:25 -07:00
behzad nouri
a49ef49f87
optimizes ReadOnlyAccountsCache LRU eviction implementation ( #22403 )
...
ReadOnlyAccountsCache is using a background thread, table scan and sort
to implement LRU eviction policy:
https://github.com/solana-labs/solana/blob/eaa52bc93/runtime/src/read_only_accounts_cache.rs#L66-L73
https://github.com/solana-labs/solana/blob/eaa52bc93/runtime/src/read_only_accounts_cache.rs#L186-L191
https://github.com/solana-labs/solana/blob/eaa52bc93/runtime/src/read_only_accounts_cache.rs#L222
DashMap internally locks each shard when accessed; so a table scan in
the background thread can create a lot of lock contention.
This commit adds an index-list queue containing cached keys in the order
that they are accessed. Each hash-map entry also includes its index into
this queue.
When an item is first entered into the cache, it is added to the end of
the queue. Also each time an entry is looked up from the cache it is
moved to the end of queue. As a result, items in the queue are always
sorted in the order that they have last been accessed. When doing LRU
eviction, cache entries are evicted from the front of the queue.
Using index-list, all queue operations above are O(1) with low overhead
and so above achieves an efficient implementation of LRU cache eviction
policy.
2022-01-11 17:25:28 +00:00
Jeff Biseda
8b66625c95
convert std::sync::mpsc to crossbeam_channel ( #22264 )
2022-01-11 02:44:46 -08:00
dependabot[bot]
0869f644fc
Bump merlin from 2.0.1 to 3.0.0 ( #22331 )
...
* Bump merlin from 2.0.1 to 3.0.0
Bumps [merlin](https://github.com/zkcrypto/merlin ) from 2.0.1 to 3.0.0.
- [Release notes](https://github.com/zkcrypto/merlin/releases )
- [Changelog](https://github.com/zkcrypto/merlin/blob/main/CHANGELOG.md )
- [Commits](https://github.com/zkcrypto/merlin/compare/2.0.1...3.0.0 )
---
updated-dependencies:
- dependency-name: merlin
dependency-type: direct:production
update-type: version-update:semver-major
...
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>
2022-01-10 11:18:15 -07:00