Rob Walker
7cf90766a3
add epoch_schedule sysvar ( #6256 )
...
* add epoch_schedule sysvar
* book sheesh!
2019-10-08 22:34:26 -07:00
Michael Vines
c34cc4918f
Prevent repeated accounts in genesis to avoid breaking account hashing
2019-10-07 08:12:18 +09:00
Greg Fitzgerald
fb39bd45d7
Revert "Rename solana-runtime to sealevel ( #6239 )" ( #6247 )
...
This reverts commit 2e921437cd
.
2019-10-04 19:33:29 -06:00
Greg Fitzgerald
2e921437cd
Rename solana-runtime to sealevel ( #6239 )
...
automerge
2019-10-04 15:02:44 -07:00
Ryo Onodera
ffae4662bc
Use AtomicU64 now that it's stabilized ( #6222 )
2019-10-03 20:02:28 -07:00
Parth
92ea11fca1
make executable, vote and stake account rent exempt ( #6017 )
...
* add missing convenience method
* require vote account to be exempt
* make stake account rent exempt
* making executable rent exempt
* rent will be initialized in genesis
* add test for update_rent
2019-10-04 02:52:48 +05:30
Justin Starry
8d0236e3f1
Rename bank height to block_height and expose method ( #6199 )
...
* Rename bank bank_height to block_height
* Expose block_height method
2019-10-01 14:55:39 -04:00
Justin Starry
2f92b92a8a
Expose current stake accounts of a bank for use in cli tooling ( #6184 )
2019-09-30 21:57:49 -04:00
Parth
67d07254c2
Add rent estimation rpc ( #6109 )
...
* server side new rpc endpoint
* client side rpc
* take data_len as usize
Co-Authored-By: Tyera Eulberg <teulberg@gmail.com>
* add test and documentation
2019-09-26 23:27:13 +05:30
Rob Walker
43795193c4
add authorized parameters to vote api ( #6072 )
...
* add authorized parameters to vote api
* code review
2019-09-25 13:53:49 -07:00
Sagar Dhawan
e987d0094f
Move status cache serialization to the Snapshot Packager service ( #6081 )
...
* Move status cache serialization to the Snapshot Packager service
* Minor comment updates
* use ok_or_else instead of ok_or
* satus cache
* Remove assert when snapshot format is wrong
* Fix compile
* Remove slots_to_snapshot from bank forks
* Address review comment
* Remove unused imports
2019-09-25 13:42:19 -07:00
carllin
261ea00efb
Fix race between observing tick height being set to last tick and blockhash being observed on a bank ( #6013 )
2019-09-23 12:54:39 -07:00
carllin
8240d1fe0a
Confidence implementation ( #5993 )
...
* Change confidence parameters
* Add status_cache_ancestors to get all relevant ancestors of a bank including roots from status cache
* Fix and add tests
* Clippy
2019-09-20 19:38:56 -07:00
Michael Vines
a60a3efc1a
Revert "require stake, vote and executable accounts to be rent exempt ( #5928 )" ( #6005 )
...
This reverts commit 11e6197a83
.
2019-09-20 14:10:39 -07:00
sakridge
19ae556857
hash account state on store ( #5573 )
2019-09-20 13:21:12 -07:00
Parth
11e6197a83
require stake, vote and executable accounts to be rent exempt ( #5928 )
...
* require vote account to be exempt
* make stake account rent exempt
* add rent exempted system instruction
* use rent exemption instruction in vote and stake api
* use rent exempted account while creating executable account
* updating chacha golden hash as instruction data has changed
* rent will be initialized for genesis bank too
2019-09-20 16:52:17 +05:30
Rob Walker
5cbd1190b2
transaction batch ( #5962 )
...
* transaction batch
* fixup
2019-09-19 10:06:08 -07:00
Michael Vines
e26f68fe62
Get transactions from LockedAccountsResults when possible ( #5923 )
2019-09-17 08:41:56 -07:00
Parth
d63518a835
Rent tangential stuff ( #5910 )
...
* rename rent.rs to rent_calculator.rs
* add rent sysvar
* integrate rent_calculator with bank
* rent_calculator integration with genesis
* add test for rent sysvar
2019-09-17 17:12:55 +05:30
Michael Vines
f10438d530
Respect randomized transaction order when unlocking accounts ( #5918 )
2019-09-16 21:45:16 -07:00
Jack May
1853771930
Add support for SDK sysvar types ( #5876 )
2019-09-10 18:53:02 -07:00
Jack May
61fe1aa9cf
SDK cleanup to reduce featurization ( #5856 )
2019-09-09 16:38:52 -07:00
Jack May
a317e9513f
Add sysvar support ( #5838 )
2019-09-09 10:55:35 -07:00
sakridge
b35c022629
More types ( #5846 )
...
automerge
2019-09-08 11:13:59 -07:00
Jack May
e8d88f3237
Split SDK's timing.rs ( #5823 )
2019-09-06 14:30:56 -07:00
Parth
7dfb735db9
randomize tx ordering ( #4978 )
...
Summary of Changes:
This change adds functionality to randomize tx execution for every entry. It does this by implementing OrderedIterator that iterates tx slice as per the order specified. The order is generated randomly for every entry.
2019-08-28 21:08:32 +05:30
Sunny Gleason
34ab25a88b
feat: getInflation() endpoint ( #5681 )
2019-08-27 18:17:03 -04:00
Michael Vines
4e827af392
Remove unnecessary trailing semicolons ( #5636 )
2019-08-23 22:47:54 -07:00
Rob Walker
0ffe7a9c8f
plumb some rent ( #5610 )
...
* plumb some rent
* nits
* fixups
* fixups
* fixups
2019-08-23 14:04:53 -07:00
Rob Walker
814af378a7
stake cooldown ( #5553 )
...
* stake cooldown
* fixups
* sheesh
2019-08-17 18:12:30 -07:00
Michael Vines
8258532791
System program is now registered like all other native programs ( #5526 )
2019-08-15 21:07:00 -07:00
carllin
d791c70d90
Snapshot optimizations ( #5518 )
...
* Limit slots_since_snapshot size, only package latest snapshot, refactor tests
* Add test checking status_cache.roots == bank_forks.slots_since_snapshot after bank_forks.set_root()
2019-08-13 22:39:29 -07:00
carllin
cd14a940d8
Allow process_blocktree() to start processing from any root ( #5484 )
...
* Remove unnecessary entry_height from BankInfo
* Refactor process_blocktree to support process_blocktree_from_root
* Refactor to process blocktree after loading from snapshot
* On restart make sure bank_forks contains all the banks between the root and the tip of each fork, not just the head of each fork
* Account for 1 tick_per_slot in bank 0 so that blockhash of bank0 matches the tick
2019-08-13 17:20:14 -07:00
carllin
58d4e32c97
Remove serialization of future AppendVecs and serialize AccountStorage correctly ( #5510 )
2019-08-13 16:05:37 -07:00
Rob Walker
07d11be6ab
add global stake warmup ( #5483 )
...
* add global stake warmup
* integrate stake history into runtime
* fixup core tests
* fixup
* remove existing cooldown tests for now
2019-08-12 20:59:57 -07:00
Justin Starry
0fde19239b
Rate limit counter metrics points to one per second ( #5496 )
...
* Rate limit counter metrics points to one per second
* Remove old env var
* Test that metrics counter is incrementing
* Fix typo
2019-08-12 18:15:34 -04:00
Rob Walker
ed093f86f9
harmonize percentage members ( #5459 )
...
* harmonize percentage members
* update tests
* update capitalization when burning fees
* verify capitalization in fee burn
* fixup
2019-08-09 13:58:46 -07:00
Justin Starry
4f86c0b74a
Rate limit transaction counters ( #5447 )
...
* Rate limit transaction counters
* @sakridge feedback
* Set default high metrics rate for multinode demo
* Fix tests
* Swap defaults and fix env var tests
* Only set metrics rate if not already set
2019-08-08 17:05:06 -04:00
Sagar Dhawan
9dcf3347f5
Refactor status cache and remove complex serialize/deserialize ( #5335 )
...
automerge
2019-08-06 18:47:30 -07:00
carllin
1dbb5c8647
Deserialize snapshots ( #5417 )
...
* Deserialize snapshots
2019-08-05 22:53:19 -07:00
sakridge
832dfd4ab0
Change bank to not create default ( #5409 )
2019-08-02 14:46:53 -07:00
Rob Walker
f7d3f55566
fix epoch_stakes again ( #5396 )
2019-08-01 14:27:47 -07:00
carllin
6cb2040a1b
Snapshot Packaging Service ( #5262 )
...
* Snapshot serialization and packaging
2019-07-31 17:58:10 -07:00
Rob Walker
9278201198
fix epoch_stakes ( #5355 )
...
* fix epoch_stakes
* fix stake_state to use stakers_epoch
* don't allow withdrawal before deactivation
2019-07-31 15:13:26 -07:00
Justin Starry
84368697af
Fix metrics when leader does not report metrics ( #5291 )
2019-07-30 16:18:33 -04:00
Rob Walker
4a57cd3300
Update bank.rs
2019-07-30 11:33:06 -07:00
Rob Walker
8537da19bb
groom accounts_db ( #5283 )
2019-07-25 22:59:28 -07:00
Sagar Dhawan
a233a1c822
Fix poh recorder not flushing virtual ticks immediately ( #5277 )
...
* Fix poh not flushing virtual ticks immediately
* Fix test_would_be_leader_soon
2019-07-25 11:08:44 -07:00
Rob Walker
8a12ed029c
make accounts_db own the directory paths ( #5230 )
...
* change paths to something accounts_db (the singleton) owns, fixes SIGILL
* fail deserialize if paths don't work
serialize paths, too
* test that paths are populated from a bank snapshot
2019-07-23 13:47:48 -07:00
sakridge
b505a0df22
Throw more threads at hash_internal_state ( #5023 )
2019-07-16 16:58:30 -07:00
Rob Walker
fe87c05423
fix transaction_count ( #5110 )
...
* fix transaction_count
* add sig count to bank hash
2019-07-15 13:42:59 -07:00
Rob Walker
16b6576839
use precalculated max_tick_height ( #5084 )
2019-07-12 22:25:48 -07:00
Rob Walker
d2b6c2e0ce
syscall work, rename syscall to sysvar, rename current to clock ( #5074 )
...
* syscall work, rename syscall to sysvar, rename current to clock
* missed one
* nit
2019-07-12 16:38:15 -07:00
carllin
22315d88e7
Fix credit only commit_credits race ( #5028 )
...
* Fix credit only drain race
* Refactor commit credits for tests
* Fix tests to use commit_credits_unsafe
2019-07-11 18:46:49 -07:00
Tyera Eulberg
b2c776eabc
Fix getProgramAccounts RPC ( #5024 )
...
* Use scan_accounts to load accounts by program_id
* Add bank test
* Use get_program_accounts in RPC
2019-07-11 12:58:28 -06:00
Sagar Dhawan
b8e7736af2
Move SLOTS_PER_SEGMENT to genesis ( #4992 )
...
automerge
2019-07-09 16:48:40 -07:00
Rob Walker
49250f62aa
make commit_credits one trip through the rwlock ( #4969 )
2019-07-08 20:46:21 -07:00
Rob Walker
eb4edd75e6
make bank commit_credits non public ( #4944 )
...
* make bank commit_credits non pub
* track down create() failure
* move bank_client to process_transaction(), which commits credits
2019-07-08 15:37:54 -07:00
TristanDebrunner
091999a17e
fix Instruction and CompiledInstruction field names ( #4895 )
...
* s/program_ids_index/program_id for Instruction
* s/program_ids_index/program_id_index for CompiledInstruction
2019-07-01 18:34:22 -06:00
carllin
0c8f187993
remove syscall tick height ( #4891 )
2019-07-01 16:21:51 -07:00
sakridge
a89589a1d5
Add Measure abstraction over measuring time intervals ( #4851 )
...
Allows one to swap in different implementations. This provides
the normal Insant::now() -> .elapsed() path.
2019-06-29 15:34:49 +02:00
Tyera Eulberg
66552d7047
Credit-Only Accounts: Cache account balance for thread-safe load/store ( #4691 )
...
* Implement CreditOnlyLocks
* Update credit-only atomic on account load
* Update credit-only atomic after bank.freeze_lock; store credits if all credit-only lock references are dropped
* Commit credit-only credits on bank freeze
* Update core to CreditAccountLocks
* Impl credit-only in System Transfer
* Rework CreditAccountLocks, test, and fix bugs
* Review comments: Pass CreditAccountLocks by reference; Tighten up insert block
* Only store credits on completed slot
* Check balance in bench_exchange funding to ensure commit_credits has completed
* Add is_debitable info to KeyedAccount meta to pass into programs
* Reinstate CreditOnlyLocks check on lock_account
* Rework CreditAccountLocks to remove strong_count usage
* Add multi-threaded credit-only locks test
* Improve RwLocks usage
* Review comments: panic if bad things happen; tighter code
* Assert lock_accounts race does not happen
* Revert panic if bad things happen; not a bad thing
2019-06-27 17:25:10 -04:00
carllin
97c97db97e
Fix early exit clearing all buffered packets ( #4810 )
2019-06-26 22:39:50 -07:00
Sagar Dhawan
8cea650535
Handle NaN and inifinite point values ( #4839 )
2019-06-26 18:33:52 -07:00
Sagar Dhawan
df1c473341
Add storage point tracking and tie in storage rewards to economics ( #4824 )
...
* Add storage point tracking and tie in storage rewards to epochs and economics
* Prevent validators from updating their validations for a segment
* Fix test
* Retain syscall scoping for readability
* Update Credits to own epoch tracking
2019-06-26 10:40:03 -07:00
Rob Walker
8a64e1ddc3
add fee burning ( #4818 )
2019-06-26 10:13:21 -07:00
Sathish
9e7f618cff
Set proper count value for account stores ( #4797 )
...
* set count values for store accounts
* Use AppendVecId type
2019-06-25 07:21:45 -07:00
anatoly yakovenko
29611fb61d
tower consensus naming ( #4598 )
...
s/locktower/tower/g
2019-06-24 13:41:23 -07:00
Rob Walker
a49f5378e2
rewrite vote credits redemption to eat from rewards_pools on an epoch-sensitive basis ( #4775 )
...
* move redemption to rewards pools
* rewrite redemption, touch a few other things
* re-establish test coverage
2019-06-21 20:43:24 -07:00
Rob Walker
1f0f947ed2
add validator rewards pools ( #4742 )
...
* add validator rewards pools
* populate rewards syscall
2019-06-20 12:22:29 -07:00
Rob Walker
7ea522e851
add rewards syscall, groom some others ( #4740 )
2019-06-19 19:46:47 -07:00
Rob Walker
41fbdc6e08
use stake ( #4721 )
2019-06-19 11:54:52 -07:00
Sathish Ambley
8b41a5d725
periodically save config in separate folders
2019-06-17 22:48:27 -07:00
Sathish Ambley
7fd879b417
Restart validator nodes from snapshots
2019-06-17 22:48:27 -07:00
Rob Walker
d86358eedc
add Account::new_data ( #4701 )
...
* add account_new_data
* fixup
* fixup
2019-06-17 15:58:05 -07:00
Rob Walker
3fe5f886d7
change store to store_account ( #4689 )
2019-06-14 13:34:15 -07:00
Rob Walker
4c6a6d63bf
add MiningPools, fund validator MiningPools from inflation ( #4676 )
...
* add MiningPool fund validator MinigPools from inflation
* fixup
* finish rename of MINIMUM_SLOT_LENGTH to MINIMUM_SLOTS_PER_EPOCH
* deterministic miningpool location
* point_value, not credit_value... use f64
2019-06-14 11:38:37 -07:00
Greg Fitzgerald
c6b4a3a706
Witness account data in Budget ( #4650 )
...
* Add support for contracts based on account data to Budget
* Add program_id to account constraints
* No longer require a signature for the account data witness
* Rename bank::store to store_account
* fmt
* Add a doc
* clippy
2019-06-13 18:20:28 -07:00
sakridge
9e3758983d
Find max root and purge roots below it. ( #4645 )
...
* Test for forking accounts
* Find max root and purge roots below it.
2019-06-13 17:35:16 -07:00
Tyera Eulberg
8abf22f34b
Temporarily revert: Convert System Transfer accounts to credit-only ( #4670 )
2019-06-13 11:01:09 -06:00
Rob Walker
767efab941
add inflation to genesis ( #4652 )
...
* add inflation to genesis
* avoid having to write new()
2019-06-11 21:42:31 -07:00
Rob Walker
575a897ffc
track market cap ( #4643 )
...
* track market cap
* fixup, rebase
* prettier
2019-06-11 17:04:13 -07:00
Rob Walker
3217a1d70c
use highest staked node as bootstrap leader, remove bootstrap_leader from genesis_block ( #4635 )
...
* use highest staked node as bootstrap leader, remove bootstrap_leader from genesis_block
* clippy
* fixup
* fixup
2019-06-11 11:44:58 -07:00
Rob Walker
e56430c9fb
make runtime depend on bpf_loader ( #4601 )
...
* make runtime depend on bpf_loader
* remove vote redundancy, move bpf_loader to genesis, export program\! from bpf_loader crate
* move bpf_loader specification into genesis
* bpf tests to use genesis with bpf
* need to avoid depending on programs, except for macros
2019-06-11 10:27:22 -07:00
Michael Vines
e4d8ea11ac
Make lamports_per_signature dynamic based on cluster load ( #4562 )
...
* Make lamports_per_signature dynamic based on cluster load
* Move transaction-fees.md to implemented
2019-06-10 22:18:32 -07:00
carllin
a4035a3c65
Remove record locks and parent locks from accounts ( #4633 )
...
* Revert "Fix parent record locks usage in child banks (#4159 )"
This reverts commit 69eeb7cf08
.
* Revert "Fix DuplicateSignatures caused by races on frozen banks (#3819 )"
This reverts commit 083090817a
.
* Remove unused imports
2019-06-10 22:05:46 -07:00
Tyera Eulberg
807c69d97c
Slimmer implementation of credit-only accounts ( #4592 )
...
* Add credit-only debit/data check to verify_instruction
* Store credits and pass to accounts_db
* Add InstructionErrors and tests
* Relax account locks for credit-only accounts
* Collect credit-only account credits before passing to accounts_db to store properly
* Convert System Transfer accounts to credit-only, and fixup test
* Functionalize collect_accounts to unit test
* Review comments
* Rebase
2019-06-10 20:50:02 -06:00
Rob Walker
37c2fa1d8d
add current to bank syscalls ( #4581 )
2019-06-07 11:41:34 -07:00
carllin
c9d63204eb
Replace unneeded seqcst with relaxed on atomic operations ( #4587 )
2019-06-06 23:53:21 -07:00
Sagar Dhawan
688f8a669a
Add a storage accounts cache to Bank ( #4578 )
2019-06-06 17:40:01 -07:00
Michael Vines
ff77789718
Collect fees at the end of a slot ( #4525 )
2019-06-03 18:40:20 -07:00
Rob Walker
482ef51502
register_tick() on the correct bank ( #4506 )
...
* skip syscall_id in hash and delta
* add more tests, skip syscalls
2019-06-03 09:04:26 -07:00
Tyera Eulberg
64e8a21d73
Add tick height syscall ( #4497 )
...
* Remove tick_height from entrypoint signature
* Impl tick_height syscall and use in storage program
* Properly remove tick height from bpf handling
2019-05-31 16:29:21 -06:00
Rob Walker
1c1d83bd56
skip syscall_id in hash and delta ( #4500 )
...
* skip syscall_id in hash and delta
* add more tests, skip syscalls
2019-05-31 12:26:45 -07:00
Sathish
182096dc1a
Create bank snapshots ( #4244 )
...
* Revert "Revert "Create bank snapshots (#3671 )" (#4243 )"
This reverts commit 81fa69d347
.
* keep saved and unsaved copies of status cache
* fix format check
* bench for status cache serialize
* misc cleanup
* remove appendvec storage on purge
* fix accounts restore
* cleanup
* Pass snapshot path as args
* Fix clippy
2019-05-30 21:31:35 -07:00
Michael Vines
1de805e7cd
Add fees syscall to expose cluster fees into programs ( #4472 )
2019-05-30 15:18:48 -07:00
Rob Walker
441fed7a5b
check freeze before updating slot_hashes ( #4448 )
...
* check freeze before updating slot_hashes
* fixup
2019-05-28 12:25:55 -07:00
Tyera Eulberg
0e26ee854b
Add test indicating need for credit-only account handling ( #4441 )
...
* Add test indicating need for credit-only account handling
* Add commented correct future test lines
2019-05-28 11:57:22 -04:00
Michael Vines
9843c3a5cb
Restrict transaction fee payers to system accounts ( #4198 )
...
automerge
2019-05-24 13:06:55 -07:00
Michael Vines
cfe5afd34c
_id => _pubkey variable renaming ( #4419 )
...
* wallet: rename *_account_id to *_account_pubkey
* s/from_id/from_pubkey/g
* s/node_id/node_pubkey/g
* s/stake_id/stake_pubkey/g
* s/voter_id/voter_pubkey/g
* s/vote_id/vote_pubkey/g
* s/delegate_id/delegate_pubkey/g
* s/account_id/account_pubkey/g
* s/to_id/to_pubkey/g
* s/my_id/my_pubkey/g
* cargo fmt
* s/staker_id/staker_pubkey/g
* s/mining_pool_id/mining_pool_pubkey/g
* s/leader_id/leader_pubkey/g
* cargo fmt
* s/funding_id/funding_pubkey/g
2019-05-23 23:20:04 -07:00