Ryo Onodera
89b474e192
Fix slow/stuck unstaking due to toggling in epoch ( #13501 )
...
* Fix slow/stuck unstaking due to toggling in epoch
* nits
* nits
* Add stake_program_v2 feature status check to cli
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2020-11-11 14:11:57 -07:00
carllin
2c2432fddc
Refactor function ( #13294 )
...
Co-authored-by: Carl Lin <carl@solana.com>
2020-11-10 17:20:35 -08: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
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
Ryo Onodera
a81e7e7749
Output more inflation calc details in ledger-tool ( #13345 )
...
* Output more inflation calc details in ledger-tool
* Fix broken ci...
* Rename confusing variables
* Fix panic by wrapping PointValue with Opiton...
* Minor modifications
* Remove explict needless flush; Drop already does
* Yet another csv field adjustments
* Add data_size and rename epochs to earned_epochs
* Introduce null_tracer
* Unwrap Option in new_from_parent_with_tracer
* Don't shorten identifiers
* Allow irrefutable_let_patterns temporalily
* More null_tracer
* More field adjustments
2020-11-08 16:43:50 +09: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
behzad nouri
8f0796436a
shares the lock on gossip when processing prune messages ( #13339 )
...
Processing prune messages acquires an exclusive lock on gossip:
https://github.com/solana-labs/solana/blob/55b0428ff/core/src/cluster_info.rs#L1824-L1825
This can be reduced to a shared lock if active-sets are changed to use
atomic bloom filters:
https://github.com/solana-labs/solana/blob/55b0428ff/core/src/crds_gossip_push.rs#L50
2020-11-05 15:42:00 +00:00
Tyera Eulberg
bc62313c66
Allow feature builtins to overwrite existing builtins ( #13403 )
...
* Allow feature builtins to overwrite existing builtins
* Add feature_builtin ActivationType
* Correctly retain idempotent for replacing case
* Fix test
Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-11-05 15:37:07 +00:00
Justin Starry
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
sakridge
43053dcc90
Re-use accounts stores ( #12885 )
...
* Re-use accounts_db stores
Creating files and dropping mmap areas can be expensive
* Add test for storage finder
Can encounter an infinite loop when the store is too small, but
smaller than the normal store size.
* Fix storage finding
* Check for strong_count == 1
* try_recycle helper
2020-11-04 09:17:05 -08:00
Ryo Onodera
b0d1ae1d8b
Comment Stakes::clone_with_epoch ( #13388 )
2020-11-04 11:18:05 +00:00
Ryo Onodera
0e4509c497
Small code cleanup and typo fixes ( #13325 )
...
* Small code cleanup and typo fixes
* Clean up calculate_points_and_credits
2020-11-02 10:28:24 +09:00
sakridge
55b0428ff7
Add store-tool ( #13254 )
2020-11-01 09:41:28 -08:00
Michael Vines
e60bda082d
Adapt to feature::create_account
2020-11-01 05:53:29 +00:00
Tyera Eulberg
4260b3b416
Sample votes from ancestors back to root
2020-10-31 21:30:42 -07:00
Tyera Eulberg
eb2560e782
Prevent block times from ever going backward
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
Michael Vines
4b65e32f22
Move Feature struct to solana-program
2020-10-30 17:57:51 -07:00
Ryo Onodera
bc7133d752
Print the entry type as well when checking archive ( #13312 )
2020-10-31 01:36:12 +09:00
Michael Vines
9263ae1c60
Simplify CPI interface into MessageProcessor
2020-10-30 09:20:09 +00:00
Michael Vines
da9548fd12
de-mut some InvokeContext methods
2020-10-30 09:20:09 +00:00
Michael Vines
7d686b72a0
Add Bank::set_bpf_compute_budget()
2020-10-29 21:45:24 -07:00
Michael Vines
33884d847a
Remove programs clone()
2020-10-29 21:45:24 -07:00
Michael Vines
225bed11c7
Remove Entrypoint type
2020-10-29 21:45:24 -07:00
Michael Vines
2664a1f7ef
Remove MessageProcessor::loaders
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
Alexander Meißner
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
Alexander Meißner
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
Jack May
c458d4b213
move Account to solana-sdk ( #13198 )
2020-10-28 22:01:07 -07:00
sakridge
d5e439037b
Make bad_bank_hash test faster ( #13206 )
2020-10-28 21:44:42 -07:00
Tyera Eulberg
c2dbf53d76
Update FeatureSet::active to include slot-activated ( #13256 )
...
* Update FeatureSet::active to include slot-activated
* Clippy suggestion
2020-10-29 02:34:19 +00:00
Ryo Onodera
4698ee5e4a
Improve final report of ledger-tool capitalization ( #13232 )
2020-10-28 17:10:09 +00: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
Justin Starry
631f029fe9
Account for forward delay in transaction simulation ( #13199 )
2020-10-27 17:25:08 +00: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
Greg Fitzgerald
f58bc8589d
Add Bank::get_signature_status_with_blockhash() ( #13167 )
...
Get the signature status in O(1) time, instead of O(n) where
n is the number of blockhashes in the StatusCache.
2020-10-26 23:52:57 +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
sakridge
7d2729f6bd
shrink debug ( #13089 )
2020-10-23 08:05:19 -07:00
Michael Vines
959880db60
Remove unused pubkey::Pubkey imports
2020-10-21 19:08:13 -07:00
Michael Vines
17c391121a
Run `codemod --extensions rs Hash::new_rand solana_sdk: #️⃣ :new_rand`
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
carllin
e6b821c392
Finer grained AccountsIndex locking ( #12787 )
...
Co-authored-by: Carl Lin <carl@solana.com>
2020-10-21 17:05:27 -07:00
carllin
c8fc0a6ba1
Don't hold dashmap write lock in store create ( #13007 )
...
Co-authored-by: Carl Lin <carl@solana.com>
2020-10-21 12:54:09 -07:00
Ryo Onodera
608b81b412
Port various rent fixes to runtime feature ( #12842 )
...
* Port various rent fixes to runtime feature
* Fix CI
* Use more consistent naming...
2020-10-21 22:19:25 +09:00
Michael Vines
6858950f76
Remove frozen ABI modules from solana-sdk
2020-10-20 16:11:30 -07:00
Ryo Onodera
c0675968b1
Support Debug Bank ( #13017 )
2020-10-21 01:05:45 +09:00
sakridge
456eae6ccb
Calculate accounts hash async in accounts background service ( #12852 )
2020-10-19 09:48:29 -07:00
behzad nouri
48283161c3
passes through feature-set to gossip requests handling ( #12878 )
...
* passes through feature-set to down to gossip requests handling
* takes the feature-set from root_bank instead of working_bank
2020-10-15 20:54:21 +00:00
sakridge
4f6ebbdbe0
Add timings for store accounts ( #12882 )
2020-10-15 12:14:39 -07:00
Jack May
3f9e6a600b
program log pubkey as base58 ( #12901 )
2020-10-15 09:11:54 -07:00
Michael Vines
4b04ed86b6
Don't report RewardType::Fee when none was awarded
2020-10-14 09:06:20 -07:00
carllin
f8d338c9cb
Switch accounts storage lock to DashMap ( #12126 )
...
Co-authored-by: Carl Lin <carl@solana.com>
2020-10-13 18:29:50 -07:00
Ryo Onodera
7de7efe96c
Add nop feature set for upcoming ported rent fixes ( #12841 )
2020-10-13 16:34:49 +00:00
Jack May
c24da1ee16
fix native_loader behavior for invalid accounts ( #12814 )
2020-10-12 13:40:04 -07:00
Eric Williams
1ab36203de
Retry inflation parameter update along with documentation updates ( #12778 )
...
* update initial inflation parameter
* update economics section of docs
2020-10-12 13:10:57 -07:00
Ryo Onodera
2f5bb7e507
Move no-0-rent rent dist. behavior under feature ( #12804 )
2020-10-12 08:47:52 +00:00
Michael Vines
8a119c1483
Bump reqwest/rayon to get past `cargo audit`
2020-10-11 18:51:09 +00:00
Michael Vines
1fc7c1ecee
Don't bother paying 0 rent
2020-10-10 17:02:26 +00:00
Michael Vines
c5c8da1ac0
Expose all rewards (fees, rent, voting and staking) in RPC getConfirmedBlock and the cli
2020-10-09 21:54:13 -07:00
Michael Vines
403790760c
Default to 50% rent burn
2020-10-09 21:52:31 -07:00
Tyera Eulberg
b028c47d2b
Correct Bank timestamp drift every slot ( #12737 )
...
* Move timestamp helper to sdk
* Add Bank method for getting timestamp estimate
* Return sysvar info from Bank::clock
* Add feature-gated timestamp correction
* Rename unix_timestamp method to be more descriptive
* Review comments
* Add timestamp metric
2020-10-09 21:53:41 +00:00
Jack May
c3907be623
Add adjustable stack size and call depth ( #12728 )
2020-10-09 13:07:09 -07:00
carllin
16d45b8480
Fix zero-lamport accounts preventing slot cleanup ( #12606 )
...
Co-authored-by: Carl Lin <carl@solana.com>
2020-10-09 12:40:08 -07:00
Jack May
2cd7cd3149
Bump max invoke depth to 4 ( #12742 )
2020-10-09 10:33:12 -07:00
carllin
c879e7c1ad
Fix fee mismatch on snapshot deserialize ( #12697 )
...
Co-authored-by: Carl Lin <carl@solana.com>
2020-10-08 23:44:41 -07:00
Michael Vines
c8807d227a
Add inflation_kill_switch feature
2020-10-08 21:31:31 -07:00
Josh
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
Michael Vines
11df2e2236
Bump version to v1.5.0
2020-10-08 04:51:36 +00:00
Jack May
973f0965e1
Add ristretto multiply syscall ( #12699 )
2020-10-06 23:52:13 -07:00
carllin
64c4861e04
Fix error in max root calculation ( #12661 )
...
Co-authored-by: Carl Lin <carl@solana.com>
2020-10-03 15:18:58 -07:00
carllin
adf6f748c0
Disable rent in flaky test ( #12658 )
...
* Disable rent in test
Co-authored-by: Carl Lin <carl@solana.com>
2020-10-03 12:44:03 -07:00
Jack May
adeb06e550
Check CPI program is executable ( #12644 )
2020-10-02 13:55:22 -07:00
Ryo Onodera
e3773d919c
Avoid overflow when computing rent distribution ( #12112 )
...
* Avoid overflow when computing rent distribution
* Use assert_eq!....
* Fix tests
* Add test
* Use FeatureSet
* Add comments
* Address review comments
* Tweak a bit.
* Fix fmt
2020-10-01 11:59:28 +09:00
Tyera Eulberg
c31a34fbcb
Include post balance information for rewards ( #12598 )
...
* Include post balance information for rewards
* Add post-balance to stored Reward struct
* Handle extended Reward in bigtable
Co-authored-by: Michael Vines <mvines@gmail.com>
2020-09-30 17:57:06 -06:00
Jack May
058bca6632
add sha256 syscall ( #12569 )
2020-09-29 23:29:20 -07:00
Trent Nelson
3c7b9c2938
Move remaining nonce utils from runtime to SDK
2020-09-30 05:45:42 +00:00
Trent Nelson
65b868f4eb
Move nonced tx helpers to SDK
2020-09-30 05:45:42 +00:00
Trent Nelson
caec631344
runtime: Move prepare_if_nonce_account into accounts
2020-09-30 05:45:42 +00:00
Michael Vines
f57af4fec2
epoch_rewards datapoint now includes the correct rewards epoch (previous epoch)
2020-09-29 22:44:02 -07:00
Jack May
575400c83f
Run tests with features on rather then off ( #12567 )
2020-09-29 20:18:28 -07:00
Michael Vines
82848d6c73
Include active stake in 'epoch_rewards' datapoint
2020-09-29 16:50:10 -07:00
Jack May
74fcb184b2
Pipe FeatureSet though InvokeContext ( #12536 )
...
* Pipe FeatureSet though InvokeContext
* gate program size cap
* nit
2020-09-29 21:36:30 +00:00
Jack May
2ff983647f
Move process_instruction defs to runtime ( #12507 )
2020-09-29 01:36:46 -07:00
Tyera Eulberg
89621adca7
Rpc -> proper optimistic confirmation ( #12514 )
...
* Add service to track the most recent optimistically confirmed bank
* Plumb service into ClusterInfoVoteListener and ReplayStage
* Clean up test
* Use OptimisticallyConfirmedBank in RPC
* Remove superfluous notifications from RpcSubscriptions
* Use crossbeam to avoid mpsc recv_timeout panic
* Review comments
* Remove superfluous last_checked_slots, but pass in OptimisticallyConfirmedBank for complete correctness
2020-09-28 20:43:05 -06:00
carllin
06f84c65f1
Fix rooted accounts cleanup, simplify locking ( #12194 )
...
Co-authored-by: Carl Lin <carl@solana.com>
2020-09-28 16:04:46 -07:00
Michael Vines
833ad20b01
Add Builtin AbiExample
2020-09-28 12:50:19 -07:00
Michael Vines
31696a1d72
Port BPFLoader2 activation to FeatureSet and rework built-in program activation
2020-09-28 12:50:19 -07:00
Michael Vines
2956cc5aed
Add a couple feature tests
2020-09-28 12:24:09 -07:00
Michael Vines
f9a74b51ef
Add feature to resolve spl-token v2 multisig bug
2020-09-28 09:25:48 -07:00
Michael Vines
aa5c008fa8
Add pico-inflation feature
2020-09-28 08:25:00 -07:00
Jack May
965f653471
Add copy-on-write executor cache ( #12502 )
...
* Add copy-on-write executor cache
* Add remove_executor function to the bank
2020-09-26 17:54:11 +00:00
Michael Vines
a36252bfa0
Remove continues from compute_active_feature_set()
2020-09-26 06:10:50 +00:00
Michael Vines
b15d6148dd
Deerror
2020-09-25 22:18:43 -07:00
carllin
00b36e6db2
Fix ref-count for multiple stores to the same pubkey in a slot, fixes zero lamport purge detection ( #12462 )
...
Co-authored-by: Carl Lin <carl@solana.com>
2020-09-25 18:54:48 -07:00
Michael Vines
e50386f928
Add epoch rewards metric datapoint
2020-09-26 01:05:57 +00:00
Michael Vines
5d6410c1cb
Port fix_recent_blockhashes_sysvar_delay to FeatureSet
2020-09-25 15:07:25 -07:00
Michael Vines
5dcf348098
Improve 'Failed to create snapshot archive' warning message
2020-09-25 20:02:49 +00:00
Michael Vines
e39fac9f01
Rename active() to is_active()
2020-09-25 11:40:36 -07:00
Michael Vines
199940d683
cargo fmt
2020-09-25 11:40:36 -07:00
Michael Vines
92406cf9a0
FeatureSet test
2020-09-25 11:40:36 -07:00
Michael Vines
cc6ba1e131
Remove id field
2020-09-25 11:40:36 -07:00
Michael Vines
c10da16d7b
Port instructions sysvar and secp256k1 program activation to FeatureSet
2020-09-25 11:40:36 -07:00
Michael Vines
93259f0bae
Runtime feature activation framework
2020-09-25 11:40:36 -07:00
Jack May
d00453f747
Drain the entire compute budget ( #12478 )
2020-09-25 18:08:10 +00:00
Justin Starry
1c970bb39f
Pre-construct cpi instruction recorders before message processing ( #12467 )
2020-09-25 20:42:28 +08:00
behzad nouri
bb183938d9
adds an atomic variant of the bloom filter ( #12422 )
...
For crds_gossip_pull, we want to parallelize build_crds_filters, which
requires concurrent writes to bloom filters.
This commit implements a variant of the bloom filter which uses atomics
for its bits vector and so is thread-safe.
2020-09-24 18:37:19 +00:00
Justin Starry
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
sakridge
68e5a2ef56
Add RPC notify and banking keys debug ( #12396 )
2020-09-23 18:46:42 -07:00
carllin
55be8d4016
Move dropping AppendVecs outside lock ( #12408 )
...
* Move drop outside lock
Co-authored-by: Carl Lin <carl@solana.com>
2020-09-23 14:17:49 -07:00
sakridge
22d8b3c3f8
Cleanup and feature gate instruction processing ( #12359 )
2020-09-20 10:58:12 -07:00
sakridge
f561eb917f
Add way to look at tx instructions ( #11943 )
2020-09-19 12:17:46 -07:00
Ryo Onodera
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
sakridge
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
sakridge
3d4b9bb00d
Friendlier error message for mapping failures ( #12213 )
2020-09-15 15:43:17 -07:00
Ryo Onodera
629572831b
Enable retirement of rent collect in Bank::deposit() on testnet ( #12223 )
2020-09-15 06:49:26 +00:00
Ryo Onodera
241e6f1ecf
Enable stricter check on rent-exempt accounts on testnet ( #12224 )
2020-09-15 06:48:48 +00:00
Ryo Onodera
7d48339b7c
Enable eager-rent-collect-across-gapped-epochs bugfix ( #12219 )
2020-09-15 14:13:40 +09:00
Ryo Onodera
c1e76fd5f7
Fix build breakage ( #12220 )
2020-09-15 13:04:04 +09:00
Jack May
3278d78f08
Cache re-usable work performed by the loader ( #12135 )
2020-09-14 17:42:37 -07:00
Jack May
daba17a95c
Nit, short name ( #12195 )
2020-09-12 01:32:38 +00:00
Ryo Onodera
de4a613610
Check bank capitalization ( #11927 )
...
* Check bank capitalization
* Simplify and unify capitalization calculation
* Improve and add tests
* Avoid overflow and inhibit automatic restart
* Fix test
* Tweak checked sum for cap. and add tests
* Fix broken build after merge conflicts..
* Rename to ClusterType
* Rename confusing method
* Clarify comment
* Verify cap. in rent and inflation tests
Co-authored-by: Stephen Akridge <sakridge@gmail.com>
2020-09-12 01:48:06 +09:00
Ryo Onodera
c274e26eb8
Prevent unbound memory growth by blockstore_processor ( #12110 )
...
* Prevent unbound memory growth by blockstore_processor
* Promote log to info! considering infrequency
* Exclude the time of freeing from interval...
* Skip not-shrinkable slots even if forced
* Add comment
2020-09-09 12:05:10 +09:00
Ryo Onodera
5b2442d54e
Reduce cap by rent's leftover as temporary measure ( #12111 )
...
* Reduce cap by rent's leftover as temporary measure
* Reset testnet cap. on start and more logs
2020-09-09 03:53:48 +09:00
Ryo Onodera
53b8ea4464
Rename to ClusterType and restore devnet compat. ( #12068 )
...
* Rename to ClusterType and restore devnet compat.
* De-duplicate parse code and add comments
* Adjust default Devnet genesis & reduce it in tests
2020-09-08 23:55:09 +09:00
anatoly yakovenko
c67f8bd821
Forward transactions to the expected leader instead of your own TPU port ( #12004 )
...
* Use PoHRecorder to send to the right leader
* cleanup
* fmt
* clippy
* Cleanup, fix bug
Co-authored-by: Carl <carl@solana.com>
2020-09-08 17:00:49 +08:00
Michael Vines
d3750b47d2
Compress snapshot archive within the validator to reduce system dependencies
2020-09-06 22:48:12 -07:00
carllin
a13efc52b3
Add unlock epochs for blake3 ( #12054 )
...
Co-authored-by: Carl <carl@solana.com>
2020-09-04 15:21:15 -07:00
Ryo Onodera
36a294aae0
Fix test ( #12013 )
2020-09-03 16:28:54 +09:00
Ryo Onodera
fb71ee60aa
Purge storage rewards from accounts db for testnet ( #11996 )
...
* Purge storage rewards from accounts db for testnet
* Fix test failing only on stable
2020-09-03 15:42:27 +09:00
Ryo Onodera
4b1cb51a3e
Move forward token2 native mint testnet epoch ( #12007 )
2020-09-03 06:38:51 +00:00
Ryo Onodera
89bca6110a
Clarify comments and names in inflation code ( #11977 )
2020-09-03 14:15:12 +09:00
carllin
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
Ryo Onodera
46aac4819a
Use conventional special self notation ( #11990 )
2020-09-02 06:49:34 +00:00
Michael Vines
7341e60043
Ensure that the spl-token 2 native mint account is owned by the spl-token 2 program.
...
Workaround for https://github.com/solana-labs/solana-program-library/issues/374 until spl-token 3 is shipped
2020-09-01 17:09:36 +00:00
Ryo Onodera
11ac4eb21d
Add tests for the Debug and activation Vecs ( #11926 )
...
* Add tests for the Debug and activation Vecs
* Rename a bit
2020-09-01 17:48:25 +09:00
Michael Vines
f385af25e5
Simplify get_programs(), specify a real Preview activation epoch for new BPFLoader
2020-08-31 09:10:25 +00:00
sakridge
c4253dc0f9
Update to rayon 1.4.0 ( #11898 )
2020-08-28 21:00:11 -07:00
Michael Vines
450c667aa7
Add methods to adjust rent burn percentage, and hashes per tick
2020-08-28 16:35:27 -07:00
Ryo Onodera
57174cdabe
Make ledger-tool accounts print rent_epoch and slot ( #11845 )
2020-08-27 12:28:40 +09:00
Jack May
ea179ad762
Bump compute budget ( #11864 )
...
* Bump compute budget
* nudge
2020-08-26 21:48:51 +00:00
Jack May
db4bbb3569
Switch programs activation to whole-set based gating ( #11750 )
...
* Implement Debug for MessageProcessor
* Switch from delta-based gating to whole-set gating
* Remove dbg!
* Fix clippy
* Clippy
* Add test
* add loader to stable operating mode at proper epoch
* refresh_programs_and_inflation after ancestor setup
* Callback via snapshot; avoid account re-add; Debug
* Fix test
* Fix test and fix the past history
* Make callback management stricter and cleaner
* Fix test
* Test overwrite and frozen for native programs
* Test epoch callback with genesis-programs
* Add assertions for parent bank
* Add tests and some minor cleaning
* Remove unsteady assertion...
* Fix test...
* Fix DOS
* Skip ensuring account by dual (whole/delta) gating
* Fix frozen abi implementation...
* Move compute budget constatnt init back into bank
Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-08-26 01:49:15 +09:00
Ryo Onodera
dbd079f54c
Update comment ( #11826 )
2020-08-25 22:36:11 +09:00
Jack May
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
Greg Fitzgerald
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
carllin
b7ed06b17a
Cleanup test utilities ( #11723 )
...
* Add voting utility
* Add blockstore utility
Co-authored-by: Carl <carl@solana.com>
2020-08-20 05:04:38 +00:00
Justin Starry
9e89a963d9
Fully enable cross program support in mainnet-beta
2020-08-18 06:30:43 -07:00
Michael Vines
d15173ad9d
Address latest nightly clippy lints, but globally disable stable_sort_primitive
2020-08-17 22:36:10 -07:00
Jack May
e9b610b8df
Add SystemInstruction::CreateAccount support to CPI ( #11649 )
2020-08-17 13:38:42 -07:00
Ryo Onodera
23fa84b322
Re-do rent collection check on rent-exempt account ( #11349 )
...
* wip: re-do rent collection check on rent-exempt account
* Let's see how the ci goes
* Restore previous code
* Well, almost all new changes are revertable
* Update doc
* Add test and gating
* Fix tests
* Fix tests, especially avoid to change abi...
* Fix more tests...
* Fix snapshot restore
* Align to _new_ with better uninitialized detection
2020-08-17 14:22:16 +09:00
Jack May
7c736f71fe
Make BPF Loader static ( #11516 )
2020-08-14 12:32:45 -07:00
Greg Fitzgerald
574c356863
Add CommitmentSlots::new_from_slot() ( #11600 )
2020-08-13 03:51:15 +00:00
Ryo Onodera
6c242f3fec
Fix bad rent in Bank::deposit as if since epoch 0 ( #10468 )
...
* Fix bad rent in Bank::deposit as if since epoch 0
* Remove redundant predicate
* Rename
* Start to add tests with some cleanup
* Forgot to add refactor code...
* Enchance test
* Really fix rent timing in deposit with robust test
* Simplify new behavior by disabling rent altogether
2020-08-12 00:04:32 +09:00
carllin
7e25130529
Send votes from banking stage to vote listener ( #11434 )
...
* Send votes from banking stage to vote listener
Co-authored-by: Carl <carl@solana.com>
2020-08-07 11:21:35 -07:00
Greg Fitzgerald
bad486823c
Add a client for BankForks ( #10728 )
...
Also:
* Use BanksClient in solana-tokens
2020-08-07 08:45:17 -06:00
sakridge
770d3d383c
Accounts hash calculation metrics ( #11433 )
2020-08-06 21:39:10 -07:00
Greg Fitzgerald
3fdd8ffdf0
Remove circular dep between InstructionError and SystemError ( #11427 )
2020-08-06 22:04:43 +00:00
Jack May
03263c850a
Force program address off the curve ( #11323 )
2020-08-05 16:35:54 -07:00
Trent Nelson
e12ab9d0dd
Bump version to 1.4.0
2020-08-05 12:04:15 -06:00
Trent Nelson
29b3265dc7
Sanitize transactions during RPC preflight test
2020-08-05 06:06:57 +00:00
Trent Nelson
3f73affb2e
Add From for SanitizeError > TransactionError
2020-08-05 06:06:57 +00:00
Michael Vines
1d40685b8e
Remove support for 1.1.0 version snapshots
2020-08-04 01:01:50 +00:00
Michael Vines
7db144c5da
Remove legacy_system_instruction_processor0
2020-08-04 00:45:09 +00:00
Michael Vines
eefcf484cb
clippy
2020-08-03 18:35:15 +00:00
Greg Fitzgerald
1d2426ddbc
Move simulate_transaction from rpc to bank ( #11294 )
2020-07-30 19:15:45 +00:00
Jack May
2dbed80e48
Disable cross-program invocations for OperatingMode::Stable ( #11272 )
2020-07-29 15:29:52 -07:00
Trent Nelson
e553a98d2f
Rerere-enable RecentBlockhashes fix on testnet (epoch 76)
2020-07-29 02:43:10 +00:00
Ryo Onodera
3e4f49f9c9
Fix race condition between shrinking and cleaning ( #11235 )
...
* Fix race condition between shrinking and cleaning
* Minor formatting
* fix ci
* Update comments
* More update comment
* Adjust fn naming
2020-07-29 06:06:14 +09:00
Michael Vines
ed01591be6
Designate mainnet-beta epoch 61 as an upgrade epoch
2020-07-27 11:41:39 -07:00
Trent Nelson
7931579610
Remove accidental MB activation for RecentBlockhashes consistency fix
2020-07-26 17:34:52 +00:00
Trent Nelson
1f8df36b7d
Push back activation epochs
...
Effects:
- Re-enabling inflation
- Nonce FeeCalculator overwrite / RecentBlockhashes sysvar inconsistency fix
2020-07-24 12:54:31 -06:00
carllin
6578ad7d08
Speed up local cluster partitioning tests ( #11177 )
...
* Fix long local cluster partition tests by skipping slot warmup
Co-authored-by: Carl <carl@solana.com>
2020-07-23 18:50:42 -07:00
Tyera Eulberg
ca6480a8ac
Use OrderedIterator in collect_balances ( #11166 )
2020-07-23 13:35:10 -06:00
Jack May
e75f0bdfd3
panic on native load failure ( #11182 )
2020-07-23 12:11:01 -07:00
Tyera Eulberg
b5a6a2f461
Initialize BlockCommitmentCache slot and root on node boot ( #11178 )
...
* Initialize commitment-cache slot and root on node boot
* Ignore long tests
2020-07-23 11:44:57 -06:00
Michael Vines
a5dd848702
getEpochInfo RPC endpoint now includes the current block height
2020-07-21 17:24:07 -07:00
Tyera Eulberg
6c38369042
Use OrderedIterator in TransactionStatusService ( #11149 )
...
* Split out get-first-err for unit testing
* Add failing test
* Add missing ordering
2020-07-21 20:06:49 +00:00
Rob Walker
7cc2a6801b
fix rewards points ( #10914 )
...
* fix rewards points
* fixups
* * verify that we don't spend more in rewards than we've allocated for rewards
* purge f64s from calculations that could be done with integers
* test typical values
* simplify iteration over delegations some
* fixups
* Use try_from
* Add a comment for commission_split()
* Add assertion to detect inconsistent reward dist.
* Fix vote_balance_and_staked
* Don't overwrite accounts with stale copies
* Fix CI...
* Add tests for vote_balance_and_staked
* Add test for the determinism of update_rewards
* Revert "Don't overwrite accounts with stale copies"
This reverts commit 9886d085a69d695f48970f48f2f567e62ba05414.
* Make stake_delegation_accounts to return hashmap
Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-07-21 13:57:25 +09:00
Greg Fitzgerald
23c2e55cbf
Use BlockCommitmentCache for RPC slots, take 2 ( #11137 )
...
* Use BlockCommitmentCache for RPC slots (#11103 )
* Add BankForks::highest_descendant(slot)
* Update debug messages
* Update core/src/rpc.rs
Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
* cargo fmt
* Remove highest_descendant
* Fix test
Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
* Fix crossed-in-flight compilation error
Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-07-20 23:03:40 +00:00
Ryo Onodera
3db246f596
Add --warp-epoch and --force-inflation to ledger-tool cap. ( #11107 )
...
* Add --warp-epoch and --force-inflation to ledger-tool cap.
* Add more arguments
* Address review comments
* Fix message
* Fix various typos...
2020-07-20 19:09:38 +09:00
Michael Vines
d19cd3a18a
Revert "Use BlockCommitmentCache for RPC slots ( #11103 )" ( #11122 )
...
This reverts commit 815b0f31b4
.
2020-07-18 16:39:12 -07:00
Greg Fitzgerald
815b0f31b4
Use BlockCommitmentCache for RPC slots ( #11103 )
...
* Add BankForks::highest_descendant(slot)
* Update debug messages
* Update core/src/rpc.rs
Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
* cargo fmt
* Remove highest_descendant
* Fix test
Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-07-17 16:22:27 -06:00
Tyera Eulberg
a255b0fc86
Rename CacheSlotInfo to CommitmentSlots ( #11111 )
2020-07-17 17:54:49 +00:00
Michael Vines
e5d8c4383f
Add Bank support for "upgrade epochs" where all non-vote transactions will be rejected
2020-07-17 08:48:42 -07:00
Tyera Eulberg
fdff681bcc
Simplify BlockCommitmentCache slot info ( #11106 )
...
* Refactor BlockCommitmentCache, store a CacheSlotInfo
* Comma
2020-07-17 09:24:51 -06:00
Tyera Eulberg
1da9f9f05a
Gate nonce-overwrite change ( #11081 )
2020-07-15 21:45:30 +00:00
sakridge
8bf3a0aa05
accounts_clean: Convert stack dependency calculation with iterative ( #11067 )
...
* accounts_clean: Convert stack dependency calculation with iterative
* optimize clean with by creating a reverse-lookup hashset of the affected
keys
* Add dependency bench
reduce bench
* Huge clean
2020-07-15 06:49:22 -07:00
Trent Nelson
5741002a32
Mode gate RecentBlockhashes/BlockhashQueue sync
2020-07-14 00:36:31 +00:00
Trent Nelson
51283c931c
Fix test advancing banks from incomplete slots
2020-07-14 00:36:31 +00:00
Trent Nelson
837ac77c02
Bump goldens
2020-07-14 00:36:31 +00:00
Trent Nelson
5357ff6d60
Synchronize BlockhashQueue and RecentBlockhashes sysvar update
2020-07-14 00:36:31 +00:00
Trent Nelson
9cc379af6c
Factor locked portion of Bank::update_recent_blockhashes() out to helper
2020-07-14 00:36:31 +00:00
Tyera Eulberg
942c019d50
Add failing test
2020-07-14 00:36:31 +00:00
dependabot-preview[bot]
cee9177ec7
Bump libc from 0.2.71 to 0.2.72
...
Bumps [libc](https://github.com/rust-lang/libc ) from 0.2.71 to 0.2.72.
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.71...0.2.72 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-13 15:00:27 -07:00
Ryo Onodera
de379a8cd6
Ensure to digest non-empty snapshot_storages and add asserts ( #11021 )
...
* Add asserts to detect not-digestable example data
* Ensure to digest non-empty snapshot_storages
2020-07-13 15:58:34 +00:00
Kristofer Peterson
ed5a2f2a90
Fold bank serialisation into serde snapshot ( #10581 )
...
* Move bank (de)serialisation logic from bank and snapshot_utils to serde_snapshot.
Add sanity assertions between genesis config and bank fields on deserialisation.
Atomically update atomic bool in quote_for_specialization_detection().
Use same genesis config when restoring snapshots in test cases.
* Tidy up namings and duplicate structs to version
* Apply struct renames to tests
* Update abi hashes
Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2020-07-13 23:00:59 +09:00
sakridge
edf2b1ee85
Check for deleting key, make sure list is empty again ( #11007 )
2020-07-11 20:38:34 -07:00
Greg Fitzgerald
145906123a
Simplify use of SendTransactionService ( #10999 )
...
* Send transaction upon recv
This will allow us to move the channel to the public interface
* Use a channel, not a method, to communicate
* Pipeline the services
* Ignore unused return values
* Fix clippy warning
2020-07-11 01:14:41 +00:00
Jack May
57576b07ef
Fix warnings ( #10992 )
...
* Fix warnings
* disable warning
2020-07-10 20:02:55 +00:00
sakridge
631f051c68
Add jitter to cleanup to prevent all nodes cleaning at the same time ( #10936 )
2020-07-10 11:54:45 -07:00
sakridge
1f5070e569
Add custom print for Bloom object ( #10971 )
2020-07-10 11:53:24 -07:00
Ryo Onodera
f1c1152948
Fix skipped slot detection for eager rent collect ( #10890 )
2020-07-10 08:49:18 +09:00
Tyera Eulberg
25228ca957
Fix nonce fee_calculator overwrite ( #10973 )
...
* Add failing test
* Pass fee_calculator to prepare_if_nonce_account; only overwrite in error case
2020-07-09 20:22:21 +00:00
Greg Fitzgerald
16eeea4f82
Move SendTransactionService to solana_runtime ( #10972 )
2020-07-09 18:28:26 +00:00
Greg Fitzgerald
ebadbce920
Drop bank from BlockCommitmentCache ( #10959 )
...
* Remove bank reference from BlockCommitmentCache
* Don't use a Bank to create BlockCommitmentCache
* Rename recent_slot to slot
2020-07-09 00:50:13 +00:00
dependabot-preview[bot]
841ecfd927
chore(deps): bump bincode from 1.2.1 to 1.3.1 ( #10867 )
...
* chore(deps): bump bincode from 1.2.1 to 1.3.1
Bumps [bincode](https://github.com/servo/bincode ) from 1.2.1 to 1.3.1.
- [Release notes](https://github.com/servo/bincode/releases )
- [Commits](https://github.com/servo/bincode/commits )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
* [auto-commit] Update all Cargo lock files
* Switch from deprecated method
* Add options to maintain behavior with bincode::options()
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2020-07-09 00:08:05 +00:00
sakridge
6429042b6e
Add --print-account-stats/--snapshot-archive-path arguments to ledger-tool ( #10945 )
...
Allows for seeing how the accounts are being stored
and specifying a different snapshot source directory.
2020-07-08 09:32:11 -07:00
Greg Fitzgerald
2fdbb97244
Rename largest_confirmed_root to highest_confirmed_root ( #10947 )
2020-07-07 23:59:46 +00:00
sakridge
1269e348fb
Add a way to re-hash the bank ( #10765 )
2020-07-06 12:42:41 -07:00
Ryo Onodera
39b3ac6a8d
Introduce automatic ABI maintenance mechanism (2/2; rollout) ( #8012 )
...
* Introduce automatic ABI maintenance mechanism (2/2; rollout)
* Fix stable clippy
* Change to symlink
* Freeze abi of Tower
* fmt...
* Improve dev-experience!
* Update BankSlotDelta
$ diff -u /tmp/abi8/*7dg6BreYxTuxiVz6aLvk3p2Z7GQk2cJqfGvC9h4FAoSj* /tmp/abi8/*9chBcbXVJ4fK7uGgydQzam5aHipaAKFw6V4LDFpjbE4w*
--- /tmp/abi8/bank__BankSlotDelta_frozen_abi__test_abi_digest_7dg6BreYxTuxiVz6aLvk3p2Z7GQk2cJqfGvC9h4FAoSj 2020-06-18 18:01:22.831228087 +0900
+++ /tmp/abi8/bank__BankSlotDelta_frozen_abi__test_abi_digest_9chBcbXVJ4fK7uGgydQzam5aHipaAKFw6V4LDFpjbE4w 2020-07-03 15:59:58.430695244 +0900
@@ -140,7 +140,7 @@
field u8
primitive u8
field solana_sdk::instruction::InstructionError
- enum InstructionError (variants = 34)
+ enum InstructionError (variants = 35)
variant(0) GenericError (unit)
variant(1) InvalidArgument (unit)
variant(2) InvalidInstructionData (unit)
@@ -176,6 +176,7 @@
variant(31) CallDepth (unit)
variant(32) MissingAccount (unit)
variant(33) ReentrancyNotAllowed (unit)
+ variant(34) MaxSeedLengthExceeded (unit)
variant(9) CallChainTooDeep (unit)
variant(10) MissingSignatureForFee (unit)
variant(11) InvalidAccountIndex (unit)
* Fix some merge conflicts...
2020-07-06 20:22:23 +09:00
sakridge
832d47317e
Move clean accounts to background service ( #10898 )
2020-07-02 22:25:17 -07:00
dependabot-preview[bot]
4deec51703
chore(deps): bump rayon from 1.3.0 to 1.3.1 ( #10605 )
...
* chore(deps): bump rayon from 1.3.0 to 1.3.1
Bumps [rayon](https://github.com/rayon-rs/rayon ) from 1.3.0 to 1.3.1.
- [Release notes](https://github.com/rayon-rs/rayon/releases )
- [Changelog](https://github.com/rayon-rs/rayon/blob/master/RELEASES.md )
- [Commits](https://github.com/rayon-rs/rayon/compare/rayon-core-v1.3.0...v1.3.1 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
* [auto-commit] Update all Cargo lock files
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2020-07-01 08:09:28 -07:00
carllin
7a71580d53
Add heaviest subtree utility functions ( #10863 )
...
Co-authored-by: Carl <carl@solana.com>
2020-07-01 08:45:32 +00:00
Ryo Onodera
b89e506cbb
Consistently create temp dirs under ledger/farf ( #10848 )
2020-07-01 11:38:59 +09:00
Ryo Onodera
cabedc0f36
Remove outdated todo comment ( #10850 )
2020-06-30 13:43:01 +00:00
Greg Fitzgerald
50b3fa83a0
Move BankCommitmentCache to solana_runtime ( #10816 )
...
* Remove Blockstore member variable from BlockCommitmentCache
* Hoist is_confirmed_rooted() to its only caller
BlockCommitmentCache no longer depends on Blockstore
* Move BlockCommitmentCache to solana_runtime
2020-06-25 22:06:58 -06:00
sakridge
7430978d1a
Keep oldest snapshot so playing the ledger is possible from local data. ( #10814 )
2020-06-25 20:41:44 -07:00
Ryo Onodera
50f7ed80c8
Dont skip eager rent collect across gapped epochs ( #10206 )
...
* Dont skip eager rent collect across gapped epochs
* Adjust style and comment
* Adjust ascii chart and comment a bit
* Moar assert
* Relax the partition_count assert for completeness
* Tweak comment...
* tweak a bit
* Add gating logic
* Address reviews
* small formatting
* Clarify the code by replacing auto_generated...
* small formatting
* small formatting
* small formatting
* small formatting
* Narrow down conditional compilation scope
2020-06-25 23:11:33 +09:00
Greg Fitzgerald
7ade330b23
Rename Client methods to match proposed BanksClient ( #10793 )
2020-06-25 03:35:38 +00:00
Greg Fitzgerald
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
Kristofer Peterson
6d81eede93
Add CLI options and runtime support for selection of output snapshot version. ( #10536 )
2020-06-19 14:38:37 +09:00
Greg Fitzgerald
0550b893b0
Fix typos ( #10675 )
...
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2020-06-17 20:54:52 -07:00
Greg Fitzgerald
26ebfedf46
Derive the working bank ( #10670 )
2020-06-17 20:16:57 -06:00
Jack May
dac7dc2f10
Move types to more appropriate files ( #10638 )
2020-06-17 10:39:14 -07:00
Greg Fitzgerald
6ee222363e
Move BankForks to solana_runtime ( #10637 )
...
* Move BankForks to solana_runtime
* Update imports
2020-06-17 15:27:03 +00:00
Kristofer Peterson
50c93d4441
Cleanup error type mapping in serde_snapshot ( #10580 )
...
* Cleanup error type mapping in serde_snapshot
* Fail when account storage entry files cannot be moved from snapshot
2020-06-17 17:56:29 +09:00
carllin
8bd62d78eb
Fix race in remove_unrooted_slot ( #10607 )
...
* Fix race
* clippy fixes
* Rename and add comment
Co-authored-by: Carl <carl@solana.com>
2020-06-15 19:41:26 -07:00
dependabot-preview[bot]
480f69cc5e
Bump serde from 1.0.111 to 1.0.112
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.111 to 1.0.112.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.111...v1.0.112 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-15 07:58:16 -07:00
R. M. Shea
48febf153b
Change documentation introduction to indicate Foundation IP transfer ( #10440 )
2020-06-13 14:41:05 -07:00
Jack May
b6a9573748
Route all loader messages to log collector ( #10528 )
2020-06-13 13:20:08 -07:00
Ryo Onodera
dfe72d5242
Optimize stale slot shrinking for previously cleaned roots ( #10099 )
...
* Prioritize shrinking of previously cleaned roots
* measure time of stale slot shrinking
* Disable shrink for test
* shrink: budgeting, store count, force for snapshot
* Polish implementation and fix tests
* Fix ci..
* Clean up a bit
* Further polish implementation and fix/add tests
* Rebase fixes
* Remove unneeded Default for AccountStorageEntry
* Address review comments
* More cleanup
* More cleanup
2020-06-12 14:51:43 +09:00
Jack May
4f761395d2
Adhere to naming conventions ( #10530 )
...
automerge
2020-06-11 19:10:34 -07:00
carllin
2e1d59ff85
Adopt heaviest subtree fork choice rule ( #10441 )
...
* Add HeaviestSubtreeForkChoice
* Make replay stage switch between two fork choice rules
Co-authored-by: Carl <carl@solana.com>
2020-06-11 12:16:04 -07:00
Boqin Qin
1e3554b33d
runtime: fix possible deadlock in bank ( #10466 )
2020-06-11 02:02:08 +09:00
Boqin Qin
0a638a8f17
runtime: fix possible deadlock in accounts_db ( #10469 )
2020-06-10 19:37:15 +09:00
Greg Fitzgerald
4131eee94d
Expose last-valid-slot to BankClient and ThinClient users ( #10478 )
...
automerge
2020-06-09 17:07:32 -07:00
Trent Nelson
b329e6d1a4
Add --warp-slot argument to |solana-ledger-tool create-snapshot|
2020-06-09 09:16:21 -07:00
Kristofer Peterson
e23340d89e
Clippy cleanup for all targets and nighly rust (also support 1.44.0) ( #10445 )
...
* address warnings from 'rustup run beta cargo clippy --workspace'
minor refactoring in:
- cli/src/cli.rs
- cli/src/offline/blockhash_query.rs
- logger/src/lib.rs
- runtime/src/accounts_db.rs
expect some performance improvement AccountsDB::clean_accounts()
* address warnings from 'rustup run beta cargo clippy --workspace --tests'
* address warnings from 'rustup run nightly cargo clippy --workspace --all-targets'
* rustfmt
* fix warning stragglers
* properly fix clippy warnings test_vote_subscribe()
replace ref-to-arc with ref parameters where arc not cloned
* Remove lock around JsonRpcRequestProcessor (#10417 )
automerge
* make ancestors parameter optional to avoid forcing construction of empty hash maps
Co-authored-by: Greg Fitzgerald <greg@solana.com>
2020-06-09 09:38:14 +09:00
Michael Vines
136342eaae
Bump new_system_program_activation_epoch by 2
2020-06-08 09:39:42 -07:00
Michael Vines
7e2651ca51
RPC simulateTransaction endpoint now returns program log output ( #10432 )
2020-06-06 10:18:28 -07:00
Justin Starry
754f25ae99
Avoid AccountInUse errors when simulating transactions ( #10391 )
...
automerge
2020-06-04 19:06:01 -07:00
Michael Vines
26e684f375
Deactivate legacy_system_instruction_processor at epoch 58/38 (preview/stable) ( #10406 )
...
automerge
2020-06-04 00:01:47 -07:00
Jack May
61d91d2d55
Don't reuse executable accounts between instructions ( #10403 )
...
automerge
2020-06-03 21:16:15 -07:00
Michael Vines
21d62493ff
Add legacy_system_instruction_processor0 tests
2020-06-03 16:04:06 -07:00
Michael Vines
9c631a01c1
Enable rolling upgrade of system_instruction_processor
2020-06-03 16:04:06 -07:00
Michael Vines
1331c9a680
Add legacy_system_instruction_processor
2020-06-03 16:04:06 -07:00
Michael Vines
a4cd96609c
Add built-in programs to InvokeContext ( #10383 )
...
automerge
2020-06-03 12:48:19 -07:00
dependabot-preview[bot]
f901571026
Bump serde from 1.0.110 to 1.0.111
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.110 to 1.0.111.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.110...v1.0.111 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-02 23:29:14 -07:00
Greg Fitzgerald
5d248fe5f8
Permit paying oneself ( #10337 )
...
* Allow paying to oneself
* cargo fmt
* Permit pay-to-self in CLI
No test here because we're just removing an [untested] special case.
Fixes #10339
2020-05-30 20:12:48 -06:00
Tyera Eulberg
b563b49ed5
Improve Rpc inflation tooling ( #10309 )
...
automerge
2020-05-29 11:50:25 -07:00
Michael Vines
9eefb2c929
Bump version to 1.3.0
2020-05-28 15:01:13 -07:00
Michael Vines
e3b444834f
Add more logging while unpacking snapshots ( #10266 )
2020-05-27 10:41:05 -07:00
Tyera Eulberg
4e431bc818
Add mechanism to get blockhash's last valid slot ( #10239 )
...
automerge
2020-05-26 12:06:21 -07:00
dependabot-preview[bot]
1bfc4c1489
Bump libc from 0.2.70 to 0.2.71 ( #10249 )
...
* Bump libc from 0.2.70 to 0.2.71
Bumps [libc](https://github.com/rust-lang/libc ) from 0.2.70 to 0.2.71.
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.70...0.2.71 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
* [auto-commit] Update all Cargo lock files
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <anatoly+githubjenkins@solana.io>
2020-05-26 11:04:15 -07:00
Jack May
03abd3ddd7
Prevent privilege escalation ( #10232 )
...
automerge
2020-05-26 01:02:31 -07:00
Greg Fitzgerald
36a36d1c83
No longer allow create-account to add funds to an existing account ( #10192 )
...
automerge
2020-05-22 16:39:01 -07:00
Kristofer Peterson
b7a32f01c0
Multi-version snapshot support ( #9980 )
...
* Multi-version snapshot support
* rustfmt
* Remove CLI options and runtime support for selection output snapshot version.
Address some clippy complaints.
* Muzzle clippy type complexity warning.
Despite clippy's suggestion, it is not currently possible to create type aliases
for traits and so everything within the 'Box<...>' cannot be type aliased.
This then leaves creating full blown traits, and either implementing
said traits by closure (somehow) or moving the closures into new structs
implementing said traits which seems a bit of a palaver.
Alternatively it is possible to define and use the type alias 'type ResultBox<T> = Result<Box<T>>'
which does seems rather pointless and not a great reduction in complexity but is enough to keep clippy happy.
In the end I simply went with squelching the clippy warning.
* Remove now unused Serialize/Deserialize trait implementations for AccountStorageEntry and AppendVec
* refactor versioned de/serialisers
* rename serde_utils to serde_snapshot
* move call to accounts_db.generate_index() back down to context_accountsdb_from_stream()
* update version 1.1.1 to 1.2.0
remove nested use of serialize_bytes
* cleanups
* Add back measurement of account storage entry serialization.
Remove construction of Vec and HashMap temporaries during serialization.
* consolidate serialisation test cases into serde_snapshot.
clean up leakage of implementation details in serde_snapshot.
* move short term / legacy snapshot code into child module
* add serialize_iter_as_tuple
* preliminary integration of following commit
commit 6d58b73c47294bfb93465d5a83cd2175660b6e6d
Author: Ryo Onodera <ryoqun@gmail.com>
Date: Wed May 20 14:02:02 2020 +0900
Confine snapshot 1.1 relic to versioned codepath
* refactored serde_snapshot, rustfmt
legacy accounts_db format now "owns" both leading u64s, legacy bank_rc format has none
* reduce type complexity (clippy)
2020-05-23 02:54:24 +09:00
sakridge
ce17de7d25
Add option to wait for a specific epoch length to bench-tps ( #10083 )
2020-05-20 16:42:46 -07:00
Jack May
4a72c2b054
Support cross-program invocation to native programs ( #10136 )
2020-05-20 09:24:57 -07:00
Tyera Eulberg
9d89fb5c35
Fix another unstable test after eager rent ( #10120 )
2020-05-20 09:57:33 -06:00
Jack May
36627fb8b3
move builtin programs out of bank ( #10132 )
...
automerge
2020-05-19 19:45:30 -07:00
Jack May
431a228402
fix clock bankhash mismatch ( #10078 )
...
automerge
2020-05-18 19:48:06 -07:00
Michael Vines
bbc549f592
Rename program_id to owner in system instructions ( #10069 )
2020-05-18 12:55:41 -07:00
Kristofer Peterson
4ca352a344
Use serde provided serialization for atomics ( #10096 )
...
automerge
2020-05-18 08:30:27 -07:00
Greg Fitzgerald
5e89bd8868
Panic if no fee-payer found via Message::new() ( #10050 )
...
automerge
2020-05-15 12:23:09 -07:00
Kristofer Peterson
58ef02f02b
9951 clippy errors in the test suite ( #10030 )
...
automerge
2020-05-15 09:35:43 -07:00
dependabot-preview[bot]
6a6c5f196a
Bump libc from 0.2.69 to 0.2.70 ( #10006 )
...
* Bump libc from 0.2.69 to 0.2.70
Bumps [libc](https://github.com/rust-lang/libc ) from 0.2.69 to 0.2.70.
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.69...0.2.70 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
* [auto-commit] Update all Cargo lock files
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2020-05-15 06:18:43 -06:00
Jack May
eb1acaf927
Remove archiver and storage program ( #9992 )
...
automerge
2020-05-14 18:22:47 -07:00
dependabot-preview[bot]
816bf6ebdd
Bump fnv from 1.0.6 to 1.0.7 ( #10046 )
...
* Bump fnv from 1.0.6 to 1.0.7
Bumps [fnv](https://github.com/servo/rust-fnv ) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/servo/rust-fnv/releases )
- [Commits](https://github.com/servo/rust-fnv/compare/v1.0.6...v1.0.7 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
* [auto-commit] Update all Cargo lock files
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2020-05-14 12:29:11 -07:00
Ryo Onodera
13bc3f8094
Fix unstable test after eager rent collection ( #10031 )
...
automerge
2020-05-13 10:35:58 -07:00
Ryo Onodera
1eb40c3fe0
Introduce eager rent collection ( #9527 )
...
* Switch AccountsIndex.account_maps from HashMap to BTreeMap
* Introduce eager rent collection
* Start to add tests
* Avoid too short eager rent collection cycles
* Add more tests
* Add more tests...
* Refacotr!!!!!!
* Refactoring follow up
* More tiny cleanups
* Don't rewrite 0-lamport accounts to be deterministic
* Refactor a bit
* Do hard fork, restore tests, and perf. mitigation
* Fix build...
* Refactor and add switch over for testnet (TdS)
* Use to_be_bytes
* cleanup
* More tiny cleanup
* Rebase cleanup
* Set Bank::genesis_hash when resuming from snapshot
* Reorder fns and clean ups
* Better naming and commenting
* Yet more naming clarifications
* Make prefix width strictly uniform for 2-base partition_count
* Fix typo...
* Revert cluster-dependent gate
* kick ci?
* kick ci?
* kick ci?
2020-05-13 16:22:14 +09:00
Justin Starry
5cc252d471
Remove hash field from account ( #9915 )
2020-05-12 23:39:46 +08:00
Jack May
97e17f9b32
Programs can only sign their accounts
2020-05-11 09:06:05 -07:00
dependabot-preview[bot]
288c9751c1
Bump serde from 1.0.106 to 1.0.110 ( #9964 )
...
* Bump serde from 1.0.106 to 1.0.110
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.106 to 1.0.110.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.106...v1.0.110 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
* [auto-commit] Update all Cargo lock files
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2020-05-10 16:24:25 -07:00
Tyera Eulberg
3ee702a922
Rpc: Add getCirculatingSupply endpoint, redux ( #9953 )
...
* Add Bank.clock() helper
* Add non-circulating calculations
* Plumb getSupply rpc endpoint
* Add docs for getSupply, and remove getTotalSupply from docs
* Add pubkeys! procedural macro
* Use procedural macro in non_circulating_supply
2020-05-09 12:05:29 -06:00
Ryo Onodera
00e45ec935
Maintain sysvar balances for consistent market cap. ( #9936 )
...
* Maintain sysvar balances for consistent market cap.
* Unindent
2020-05-09 02:42:32 +09:00
Ryo Onodera
2ac50177a6
Include account.owner into account hash ( #9917 )
...
automerge
2020-05-07 13:01:11 -07:00
Tyera Eulberg
754c65c066
Refactor RPC subscriptions account handling ( #9888 )
...
* Switch subscriptions to use commitment instead of confirmations
* Add bank method to return account and last-modified slot
* Add last_modified_slot to subscription data and use to filter account subscriptions
* Update tests to non-zero last_notified_slot
* Add accounts subscriptions to test; fails at higher tx load
* Pass BankForks to RpcSubscriptions
* Use BankForks on add_account_subscription to properly initialize last_notified_slot
* Bundle subscriptions
* Check for non-equality
* Use commitment to initialize last_notified_slot; revert context.slot chage
2020-05-07 00:23:06 -06:00
dependabot-preview[bot]
e951f8d0ed
Bump libloading from 0.6.1 to 0.6.2 ( #9895 )
...
* Bump libloading from 0.6.1 to 0.6.2
Bumps [libloading](https://github.com/nagisa/rust_libloading ) from 0.6.1 to 0.6.2.
- [Release notes](https://github.com/nagisa/rust_libloading/releases )
- [Commits](https://github.com/nagisa/rust_libloading/compare/0.6.1...0.6.2 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
* [auto-commit] Update all Cargo lock files
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2020-05-06 08:19:39 -07:00
carllin
3442f36f8a
Repair alternate versions of dead slots ( #9805 )
...
Co-authored-by: Carl <carl@solana.com>
2020-05-05 14:07:21 -07:00
jon-chuang
16af67d5e1
Focus bench on squash and fix log errors ( #9759 )
...
* Focus bench on squash
Squash performance does not depend on adding a small number accounts. It mainly depends on total number of accounts that need to be hashed during freeze operation. New bank means a clone of accounts db, so we don't get previous errors in log.
* Fix fmt and add slot counter
2020-05-05 08:33:41 -07:00
Tyera Eulberg
f5b0d13f08
Rpc: add getLargestAccounts endpoint ( #9869 )
...
automerge
2020-05-04 16:46:10 -07:00
sakridge
f37f83fd12
Fuzzer test and fixes ( #9853 )
2020-05-02 08:07:52 -07:00
sakridge
894549f002
Put empty accounts in the accounts list on load ( #9840 )
...
Indexing into accounts array does not match account_keys otherwise.
Also enforce program accounts not at index 0
Enforce at least 1 Read-write signing fee-payer account.
2020-05-01 17:23:33 -07:00
Michael Vines
8dfe0affd4
Add incinerator sysvar ( #9815 )
2020-04-30 22:04:08 -07:00
Michael Vines
230df0ec0c
Upgrade to Rust 1.43.0 ( #9754 )
2020-04-29 18:02:05 -07:00
Stephen Akridge
eb24f3df84
Update dalek version
2020-04-28 21:02:47 -06:00
Jack May
068f12fd6f
Add Cross-program invocations ( #9582 )
2020-04-28 14:33:56 -07:00
sakridge
aac580686f
fix test compilation from add_static_program change ( #9755 )
2020-04-27 23:37:08 -07:00
Jack May
efad193180
Make default programs static ( #9717 )
2020-04-27 21:05:12 -07:00
anatoly yakovenko
8ef097bf6f
Input values are not sanitized after they are deserialized, making it far too easy for Leo to earn SOL ( #9706 )
...
* sanitize gossip protocol messages
* sanitize transactions
* crds protocol sanitize
2020-04-27 11:06:00 -07:00
Ryo Onodera
9918539229
Introduce type alias Ancestors ( #9699 )
...
* Introduce type alias AncestorList
* Rename AncestorList => Ancestors
2020-04-27 11:07:03 +09:00
sakridge
e907c0e650
Filter program ids to store ( #9721 )
...
automerge
2020-04-26 00:11:37 -07:00
Greg Fitzgerald
76b1c2baf0
One less alloc per transaction ( #9705 )
...
* One less alloc per transaction
* Fix benches
* Fix compiler warnings in bench build
* Fix move build
* Fix bench
2020-04-24 13:03:46 -06:00
dependabot-preview[bot]
d2cef8ed9b
Bump num_cpus from 1.12.0 to 1.13.0 ( #9682 )
...
* Bump num_cpus from 1.12.0 to 1.13.0
Bumps [num_cpus](https://github.com/seanmonstar/num_cpus ) from 1.12.0 to 1.13.0.
- [Release notes](https://github.com/seanmonstar/num_cpus/releases )
- [Changelog](https://github.com/seanmonstar/num_cpus/blob/master/CHANGELOG.md )
- [Commits](https://github.com/seanmonstar/num_cpus/compare/v1.12.0...v1.13.0 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
* [auto-commit] Update all Cargo lock files
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2020-04-23 13:08:06 -07:00
Greg Fitzgerald
a6ad660e5e
Merge stake::withdraw instructions ( #9617 )
2020-04-20 18:16:50 -06:00
Jack May
b1a0abc7a6
Bump libloading to v0.6.1 ( #9615 )
...
automerge
2020-04-20 16:46:06 -07:00
Jack May
d08517db8c
Nit picks ( #9580 )
2020-04-18 22:39:08 -07:00
Jack May
58887c591b
Add and update tests ( #9566 )
2020-04-18 17:04:13 -07:00