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
dependabot[bot]
04a2c19c87
Bump memmap2 from 0.5.0 to 0.5.1 ( #22409 )
...
* Bump memmap2 from 0.5.0 to 0.5.1
Bumps [memmap2](https://github.com/RazrFalcon/memmap2-rs ) from 0.5.0 to 0.5.1.
- [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.0...v0.5.1 )
---
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-10 11:14:56 -07:00
Alexander Meißner
aadf4b9b63
Moves InvokeContext::return_data to TransactionContext. ( #22411 )
2022-01-10 18:26:51 +01:00
dependabot[bot]
39327ec753
Bump crossbeam-channel from 0.5.1 to 0.5.2 ( #22405 )
...
* Bump crossbeam-channel from 0.5.1 to 0.5.2
Bumps [crossbeam-channel](https://github.com/crossbeam-rs/crossbeam ) from 0.5.1 to 0.5.2.
- [Release notes](https://github.com/crossbeam-rs/crossbeam/releases )
- [Changelog](https://github.com/crossbeam-rs/crossbeam/blob/master/CHANGELOG.md )
- [Commits](https://github.com/crossbeam-rs/crossbeam/compare/crossbeam-channel-0.5.1...crossbeam-channel-0.5.2 )
---
updated-dependencies:
- dependency-name: crossbeam-channel
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-09 22:32:29 -07:00
dependabot[bot]
28275a33d6
Bump tempfile from 3.2.0 to 3.3.0 ( #22401 )
...
* Bump tempfile from 3.2.0 to 3.3.0
Bumps [tempfile](https://github.com/Stebalien/tempfile ) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/Stebalien/tempfile/releases )
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/NEWS )
- [Commits](https://github.com/Stebalien/tempfile/compare/v3.2.0...v3.3.0 )
---
updated-dependencies:
- dependency-name: tempfile
dependency-type: direct:production
update-type: version-update:semver-minor
...
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-09 12:26:08 -07:00
dependabot[bot]
dd6b4ac221
Bump indexmap from 1.7.0 to 1.8.0 ( #22389 )
...
* Bump indexmap from 1.7.0 to 1.8.0
Bumps [indexmap](https://github.com/bluss/indexmap ) from 1.7.0 to 1.8.0.
- [Release notes](https://github.com/bluss/indexmap/releases )
- [Changelog](https://github.com/bluss/indexmap/blob/master/RELEASES.rst )
- [Commits](https://github.com/bluss/indexmap/compare/1.7.0...1.8.0 )
---
updated-dependencies:
- dependency-name: indexmap
dependency-type: direct:production
update-type: version-update:semver-minor
...
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-09 16:09:36 +00:00
Trent Nelson
428575f9ae
wrap create executor timings datapoint in a module
2022-01-09 05:01:17 +00:00
dependabot[bot]
eaa52bc935
Bump zstd from 0.9.1+zstd.1.5.1 to 0.9.2+zstd.1.5.1 ( #22388 )
...
* Bump zstd from 0.9.1+zstd.1.5.1 to 0.9.2+zstd.1.5.1
Bumps [zstd](https://github.com/gyscos/zstd-rs ) from 0.9.1+zstd.1.5.1 to 0.9.2+zstd.1.5.1.
- [Release notes](https://github.com/gyscos/zstd-rs/releases )
- [Commits](https://github.com/gyscos/zstd-rs/compare/0.9.1...v0.9.2 )
---
updated-dependencies:
- dependency-name: zstd
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-08 22:21:56 +00:00
dependabot[bot]
d8ec8ca2e6
Bump blake3 from 1.2.0 to 1.3.0 ( #22373 )
...
* Bump blake3 from 1.2.0 to 1.3.0
Bumps [blake3](https://github.com/BLAKE3-team/BLAKE3 ) from 1.2.0 to 1.3.0.
- [Release notes](https://github.com/BLAKE3-team/BLAKE3/releases )
- [Commits](https://github.com/BLAKE3-team/BLAKE3/compare/1.2.0...1.3.0 )
---
updated-dependencies:
- dependency-name: blake3
dependency-type: direct:production
update-type: version-update:semver-minor
...
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-08 20:28:04 +00:00
Trent Nelson
2f29ff1a3f
add excutor creation trace timings
2022-01-08 11:18:37 +00:00
dependabot[bot]
2759cb860b
Bump sha2 from 0.10.0 to 0.10.1 ( #22359 )
...
* Bump sha2 from 0.10.0 to 0.10.1
Bumps [sha2](https://github.com/RustCrypto/hashes ) from 0.10.0 to 0.10.1.
- [Release notes](https://github.com/RustCrypto/hashes/releases )
- [Commits](https://github.com/RustCrypto/hashes/compare/sha2-v0.10.0...sha2-v0.10.1 )
---
updated-dependencies:
- dependency-name: sha2
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-08 00:17:32 -07:00
Justin Starry
52d12cc802
Add runtime support for address table lookups ( #22223 )
...
* Add support for address table lookups in runtime
* feedback
* feedback
2022-01-07 11:59:09 +08:00
Trent Nelson
72fc6096a0
Use saturating_add_assign macro
2022-01-06 03:56:46 -07:00
Trent Nelson
848b6dfbdd
Add metrics for executor creation
2022-01-06 03:56:46 -07:00
Carl Lin
b25e4a200b
Add execute metrics
2022-01-06 03:56:46 -07:00
Trent Nelson
7d32909e17
move `ExecuteTimings` from `runtime::bank` to `program_runtime::timings`
2022-01-06 03:56:46 -07:00
Jack May
12e160269e
cache executors on failed transactions ( #22308 )
2022-01-05 22:09:03 -08:00
Michael Vines
cd54b90ae6
Update Cargo.lock
2022-01-05 16:04:32 -08:00
Michael Vines
bb3a1b6b31
Add zk_token_sdk_enabled feature to gate Zk Token proof program and `sol_zk_token_elgamal_op` syscalls
2022-01-05 11:57:37 -08:00
dependabot[bot]
98e7fada15
Bump generic-array from 0.14.4 to 0.14.5 ( #22297 )
...
* Bump generic-array from 0.14.4 to 0.14.5
Bumps [generic-array](https://github.com/fizyk20/generic-array ) from 0.14.4 to 0.14.5.
- [Release notes](https://github.com/fizyk20/generic-array/releases )
- [Changelog](https://github.com/fizyk20/generic-array/blob/master/CHANGELOG.md )
- [Commits](https://github.com/fizyk20/generic-array/commits )
---
updated-dependencies:
- dependency-name: generic-array
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-05 12:01:15 -07:00
Michael Vines
69e632a337
Adapt zk-token-{sdk,proof-program} for use in the monorepo
2022-01-05 08:51:18 -08:00
Michael Vines
a9b0309c1f
Update to Rust 2021 edition
2022-01-05 08:51:18 -08:00
Michael Vines
a08e3760d8
Update to Solana 1.9.1
2022-01-05 08:51:18 -08:00
Michael Vines
f2e7f0c32b
Adapt to changes to native program entrypoint
2022-01-05 08:51:18 -08:00
Michael Vines
9c88f8205b
Update to Solana 1.9.0
2022-01-05 08:51:18 -08:00
Sam Kim
d5196046dd
remove `UpdateAccountPk` instruction
2022-01-05 08:51:18 -08:00
Michael Vines
39e0c19b4b
Update to Solana 1.7.15
2022-01-05 08:51:18 -08:00
Michael Vines
11cac460aa
Consume compute units since proof verification is an expensive operation
2022-01-05 08:51:18 -08:00
Michael Vines
62b6eafd7c
Prevent proof program from being invoked as an inner instruction
2022-01-05 08:51:18 -08:00
Michael Vines
af80203522
Merge transfer instructions
2022-01-05 08:51:18 -08:00
Michael Vines
6cdb94ccc5
Rename crypto crate to sdk
2022-01-05 08:51:18 -08:00
Michael Vines
c38309791b
Update to Solana 1.7.13
2022-01-05 08:51:18 -08:00
Michael Vines
f1345c7bb3
Merge sdk/ back into crypto/
2022-01-05 08:51:18 -08:00
Michael Vines
d5472faa96
Add demo cli
2022-01-05 08:51:18 -08:00
Michael Vines
b902ee6ad5
Adjust crate names
2022-01-05 08:51:18 -08:00
Michael Vines
b1be9a7907
Move solana-specific parts of crypto/ into sdk/
2022-01-05 08:51:18 -08:00
Michael Vines
b96e07d161
Drop 'With' from TransferRangeProof/TransferValidityProof
2022-01-05 08:51:18 -08:00
Michael Vines
0e8aa331ad
Add transfer proof-program instructions
2022-01-05 08:51:18 -08:00
Michael Vines
dc52817408
Rework bytemuck dependencies for monorepo compatibility
2022-01-05 08:51:18 -08:00
Michael Vines
6ba3f4dc6d
Add WithdrawData proof program plumbing
2022-01-05 08:51:18 -08:00
Michael Vines
8b15d7bc28
Add CloseAccountData proof program plumbing
2022-01-05 08:51:18 -08:00
Michael Vines
00fa5a93b8
Rename some files
2022-01-05 08:51:18 -08:00
Alexander Meißner
9f63493789
Refactor: Remove KeyedAccounts (2) ( #22274 )
...
* Adds InstructionContext::get_signers().
Improves error messages when modifying borrowed accounts.
* Removes keyed_accounts from InvokeContext tests.
* Removes keyed_accounts from message_processor.rs
* Removes keyed_accounts from bank.rs
* Removes keyed_accounts from bpf serialization.
2022-01-05 09:39:37 +01:00
Justin Starry
45458e7139
Refactor: Improve type safety and readability of transaction execution ( #22215 )
...
* Refactor Bank::load_and_execute_transactions
* Refactor: improve type safety of TransactionExecutionResult
* Add enum for extra type safety in execution results
* feedback
2022-01-05 10:15:15 +08:00
dependabot[bot]
6c65734330
Bump hidapi from 1.3.0 to 1.3.2 ( #22265 )
...
* Bump hidapi from 1.3.0 to 1.3.2
Bumps [hidapi](https://github.com/ruabmbua/hidapi-rs ) from 1.3.0 to 1.3.2.
- [Release notes](https://github.com/ruabmbua/hidapi-rs/releases )
- [Commits](https://github.com/ruabmbua/hidapi-rs/commits )
---
updated-dependencies:
- dependency-name: hidapi
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-04 10:47:58 -07:00
behzad nouri
01a096adc8
adds bitflags to Packet.Meta
...
Instead of a separate bool type for each flag, all the flags can be
encoded in a type-safe bitflags encoded in a single u8:
https://github.com/solana-labs/solana/blob/d6ec103be/sdk/src/packet.rs#L19-L31
2022-01-04 13:53:40 +00:00
Alexander Meißner
73e6038986
Refactor: Remove `KeyedAccount` from program runtime ( #22226 )
...
* Makes error handling in BorrowedAccount optional.
Adds BorrowedAccount ::get_rent_epoch().
Exposes InstructionContext::get_index_in_transaction().
Turns accounts and account_keys into pinned boxed slices.
* Introduces "unsafe" to InvokeContext::push().
* Turns &TransactionContext into &mut TransactionContext in InvokeContext.
* Push and pop InstructionContext in InvokeContext.
Makes test_process_cross_program and test_native_invoke symmetric.
Removes the borrow check from test_invoke_context_verify.
* Removes keyed_accounts from prepare_instruction()
* Removes usage of invoke_stack.
* Removes keyed_accounts from program-test.
* Removes caller_write_privileges.
* Removes keyed_accounts from BPF parameter (de-)serialization.
2022-01-03 23:30:56 +01:00
dependabot[bot]
672fed04cb
Bump serde from 1.0.132 to 1.0.133 ( #22233 )
...
* Bump serde from 1.0.132 to 1.0.133
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.132 to 1.0.133.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.132...v1.0.133 )
---
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-03 22:19:39 +00:00