Christian Drappi
54a04bac3d
Apple M1 compatibility ( #16346 )
...
Co-authored-by: Christian Drappi <christiandrappi@Christians-MacBook-Pro.local>
2021-04-09 17:21:01 -07:00
carllin
1219842a96
No wallclock throttle tests ( #16396 )
2021-04-05 19:40:16 -07:00
behzad nouri
701fc93343
patches bug in banking stage where buffered packets are never retained ( #16276 )
...
banking_stage::handle_forwarding is retaining buffered packets with
empty index, so nothing is held:
https://github.com/solana-labs/solana/blob/6f3926b64/core/src/banking_stage.rs#L520
2021-04-05 12:46:21 +00:00
behzad nouri
3f63ed9a72
removes OrderedIterator and transaction batch iteration order ( #16153 )
...
In TransactionBatch,
https://github.com/solana-labs/solana/blob/e50f59844/runtime/src/transaction_batch.rs#L4-L11
lock_results[i] is aligned with transactions[iteration_order[i]]:
https://github.com/solana-labs/solana/blob/e50f59844/runtime/src/bank.rs#L2414-L2424
https://github.com/solana-labs/solana/blob/e50f59844/runtime/src/accounts.rs#L788-L817
However load_and_execute_transactions is iterating over
lock_results[iteration_order[i]]
https://github.com/solana-labs/solana/blob/e50f59844/runtime/src/bank.rs#L2878-L2889
and then returning i as for the index of the retryable transaction.
If iteratorion_order is [1, 2, 0], and i is 0, then:
lock_results[iteration_order[i]] = lock_results[1]
which corresponds to
transactions[iteration_order[1]] = transactions[2]
so neither i = 0, nor iteration_order[i] = 1 gives the correct index for the
corresponding transaction (which is 2).
This commit removes OrderedIterator and transaction batch iteration order
entirely. There is only one place in blockstore processor which the
iteration order is not ordinal:
https://github.com/solana-labs/solana/blob/e50f59844/ledger/src/blockstore_processor.rs#L269-L271
It seems like, instead of using an iteration order, that can shuffle entry
transactions in-place.
2021-03-31 23:59:19 +00:00
Tyera Eulberg
433f1ead1c
Rpc: enable getConfirmedBlock and getConfirmedTransaction to return confirmed (not yet finalized) data ( #16142 )
...
* Add Blockstore block and tx apis that allow unrooted responses
* Add TransactionStatusMessage, and send on bank freeze; also refactor TransactionStatusSender
* Track highest slot with tx-status writes complete
* Rename and unpub fn
* Add commitment to GetConfirmed input configs
* Support confirmed blocks in getConfirmedBlock
* Support confirmed txs in getConfirmedTransaction
* Update sigs-for-addr2 comment
* Enable confirmed block in cli
* Enable confirmed transaction in cli
* Review comments
* Rename blockstore method
2021-03-26 16:47:35 -06:00
sakridge
96ccc40f0a
Set ticks_per_slot higher for banking stage tests ( #16094 )
...
Tests are timing out because the bank hit the MaxTickHeight and
will not process the transactions.
2021-03-24 14:05:43 -07:00
Jeff Washington (jwash)
57ba86c821
eliminate lock on record ( #15929 )
...
* eliminate lock on record
* use same error as MaxHeightReached
* clippy
* review feedback
* refactor should_tick code
* pr feedback
2021-03-23 09:10:04 -05:00
carllin
f548a04fae
Allow unbounded wallclock processing time in tests ( #15961 )
2021-03-17 15:48:50 -07:00
Michael Vines
8a9b51952e
Ignore flaky test_banking_stage_entries_only and test_banking_stage_entryfication
2021-03-17 11:28:56 -07:00
carllin
c1ba265dd9
Wallclock BankingStage Throttle ( #15731 )
2021-03-15 17:11:15 -07:00
sakridge
d09112fa6d
PoH batch size calibration ( #15717 )
2021-03-05 16:01:21 -08:00
Jeff Washington (jwash)
be35c1c1b7
add execute detail timings ( #15638 )
2021-03-03 17:07:45 -06:00
carllin
aacb28c453
Only report metrics every second ( #15652 )
2021-03-03 10:58:47 -08:00
sakridge
830be855dc
Forward and hold packets ( #15634 )
2021-03-03 10:23:05 -08:00
behzad nouri
0bd0084b0d
adds more metrics for tx counts and batch sizes ( #15642 )
2021-03-03 01:28:15 +00:00
Michael Vines
5df36aec7d
Pacify clippy
2021-02-19 20:08:41 -08:00
Tyera Eulberg
170cb792eb
Return blockstore error if previous_blockhash cannot be determined ( #15382 )
...
* Return blockstore error if previous_blockhash cannot be determined
* Add require_previous_blockshash flag
2021-02-18 01:04:52 +00:00
carllin
629dcd0f39
Cleanup buffered packets ( #15210 )
2021-02-12 03:27:37 -08:00
Tyera Eulberg
cbb8b79a60
Add validator flag to opt in to cpi and logs storage ( #14922 )
...
* Add validator flag to opt in to cpi and logs storage
* Default TestValidator to opt-in; allow using in multinode-demo
* No clone
Co-authored-by: Carl Lin <carl@solana.com>
2021-02-01 14:00:51 -07:00
Ryo Onodera
d6873b82ab
Remove potentially too costly Packets::default() ( #14821 )
...
* Remove potentially too costly Packets::default()
* Fix test...
* Restore Packets::default()
* Restore Packets::default() more
2021-01-29 09:32:38 +09:00
sakridge
907f518f6d
Add load/execute/store timings ( #14561 )
2021-01-14 14:14:16 -08:00
Trent Nelson
fe667db910
validator: Add experimental flag to select PoH pinned core
2020-12-29 19:15:44 -07:00
sakridge
2074e407cd
Add poh speed check and tick speed calibration ( #14292 )
2020-12-29 09:35:57 -08:00
sakridge
da7d1e2302
Improved Transaction Forwarding ( #13944 )
...
* Forwarding
* Dedupe leaders
* Use consistent commitment for last_valid_slot in rpc send_transaction
* Plumb rpc send_transaction options into solana-validator
* Extend num slots banking-stage holds forwarded txs
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2020-12-17 15:37:22 -07:00
sakridge
5294f70189
Remove some non-warnings ( #14115 )
2020-12-14 16:26:17 -08:00
Michael Vines
7143aaa89b
Clippy
2020-12-14 08:03:29 -08:00
Josh
13db3eca9f
SPL token balance in transaction metadata ( #13673 )
...
* feat: store pre / post token balances
* move helper functions into separate include
* move token balance functionality to transaction-status crate
* fix blockstore processor test
* fix bigtable legacy test
* add caching to decimals
2020-12-10 19:25:07 -08:00
Trent Nelson
404fc1570d
runtime: Replace `HashAgeKind` with `NonceRollbackInfo`
2020-12-02 20:10:08 +00:00
Michael Vines
7bc073defe
Run `codemod --extensions rs Pubkey::new_rand solana_sdk::pubkey::new_rand`
2020-10-21 19:08:13 -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
c10da16d7b
Port instructions sysvar and secp256k1 program activation to FeatureSet
2020-09-25 11:40:36 -07: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
Justin Starry
731a943239
Remove transaction encoding from storage layer ( #12404 )
2020-09-24 13:10:29 +08: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
carllin
3f39ab1e04
Fix forwarding calculation ( #12014 )
...
Co-authored-by: Carl <carl@solana.com>
2020-09-03 02:31:28 -07: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
3fdd8ffdf0
Remove circular dep between InstructionError and SystemError ( #11427 )
2020-08-06 22:04:43 +00:00
Tyera Eulberg
ca6480a8ac
Use OrderedIterator in collect_balances ( #11166 )
2020-07-23 13:35:10 -06: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
anatoly yakovenko
ba83e4ca50
Fix fannout gossip bench ( #10509 )
...
* Gossip benchmark
* Rayon tweaking
* push pulls
* fanout to max nodes
* fixup! fanout to max nodes
* fixup! fixup! fanout to max nodes
* update
* multi vote test
* fixup prune
* fast propagation
* fixups
* compute up to 95%
* test for specific tx
* stats
* stats
* fixed tests
* rename
* track a lagging view of which nodes have the local node in their active set in the local received_cache
* test fixups
* dups are old now
* dont prune your own origin
* send vote to tpu
* tests
* fixed tests
* fixed test
* update
* ignore scale
* lint
* fixup
* fixup
* fixup
* cleanup
Co-authored-by: Stephen Akridge <sakridge@gmail.com>
2020-06-13 22:03:38 -07:00
Michael Vines
7e2651ca51
RPC simulateTransaction endpoint now returns program log output ( #10432 )
2020-06-06 10:18:28 -07:00
sakridge
10b1895357
Optimize banking processing of AccountInUse ( #10154 )
...
* Optimize banking processing of AccountInUse and thread count
* Add more options to banking-bench
2020-05-22 15:01:01 -07:00
Kristofer Peterson
58ef02f02b
9951 clippy errors in the test suite ( #10030 )
...
automerge
2020-05-15 09:35:43 -07:00
carllin
bab3502260
Push down cluster_info lock ( #9594 )
...
* Push down cluster_info lock
* Rework budget decrement
Co-authored-by: Carl <carl@solana.com>
2020-04-21 12:54:45 -07:00
Michael Vines
ad0997e15f
RPC: add `err` field to TransactionStatus, alongside the now deprecated `status` field ( #9296 )
...
automerge
2020-04-04 16:13:26 -07:00
Jack May
268e04cb4a
Rename CustomError to Custom ( #9207 )
2020-04-01 09:01:11 -07:00
sakridge
b7b4aa5d4d
move rpc types from client to client-types crate ( #9039 )
...
* Separate client types into own crate, so ledger does not need it
Removes about 50 crates of dependency from ledger
* Drop Rpc name from transaction-status types
2020-03-26 13:29:30 -07:00
Michael Vines
18c1f0dfe9
Remove stub core/src/genesis_utils.rs ( #8999 )
2020-03-21 10:54:40 -07:00
anatoly yakovenko
9cedeb0a8d
Pull streamer out into its own module. ( #8917 )
...
automerge
2020-03-17 23:30:23 -07:00
Tyera Eulberg
ab361a8073
Rename KeypairUtil to Signer ( #8360 )
...
automerge
2020-02-20 13:28:55 -08:00
anatoly yakovenko
17fb8258e5
Datapoints overwhelm the metrics queue and blow up ram usage. ( #8272 )
...
automerge
2020-02-14 11:11:55 -08:00
François Garillot
f016c9a669
Maintenance : simplify a few patterns, remove unneeded dependencies ( #8137 )
...
* Simplify a few pattern matches
* Removing unneeded dependencies, upgrading internal version #s
net-shaper: Removing log, semver, serde_derive
bench-tps: Removing serde, serde_derive
banking-bench: Removing solana
ledger-tool: Removing bincode, serde, serde_derive
librapay: Removing solana, language_e2e_tests
log-analyzer: Removing log, semver, serde_derive
exchange: Removing solana
core: Removing crc, memmap, symlink, untrusted
perf: Removing serde_derive
genesis: Removing hex, serde_derive
sdk-c: Removing sha2
sys-tuner: Removing semver
bench-exchange: Removing bincode, bs58, env_logger, serde, serde_derive, untrusted, ws
btc_spv_bin: Removing serde_json
btc_spv: Removing chrono
bpf_loader: Removing serde
ledger: Removing dlopen, dlopen_derive, serde_derive
move_loader: Removing byteorder, libc, language_e2e_tests
ownable: Removing serde, serde_derive
client: Removing rand
archiver-utils: Removing rand_chacha
validator: Removing serde_json, tempfile
param_passing_dep: Removing solana
failure: Removing log
vest: Removing log
vote-signer: Removing bs58, serde
local-cluster: Removing symlink
keygen: Removing rpassword
install: Removing bs58, log
upload-perf: Removing log
runtime: Removing serde_json
stake: Removing rand
* Add modified Cargo.lock
* fixup! Simplify a few pattern matches
* fixup! Simplify a few pattern matches
2020-02-06 10:02:38 -07:00
Tyera Eulberg
6d3b8b6d7d
Remove tuples from JSON RPC responses ( #7806 )
...
* Remove RpcConfirmedBlock tuple
* Remove getRecentBlockhash tuple
* Remove getProgramAccounts tuple
* Remove tuple from get_signature_confirmation_status
* Collect Rpc response types
* Camel-case epoch schedule for rpc response
* Remove getBlockCommitment tuple
* Remove getStorageTurn tuple
* Update json-rpc docs
2020-01-15 00:25:45 -07:00
Greg Fitzgerald
b5dba77056
Rename blocktree to blockstore ( #7757 )
...
automerge
2020-01-13 13:13:52 -08:00
Tyera Eulberg
a17d5795fb
getConfirmedBlock: add encoding optional parameter ( #7756 )
...
automerge
2020-01-12 21:34:30 -08:00
Michael Vines
4fe0b116ae
Measure heap usage while processing the ledger
2020-01-03 13:25:37 -07:00
Michael Vines
a0fb9de515
Move thread_mem_usage module into measure/
2020-01-03 13:25:37 -07:00
Greg Fitzgerald
a707c9410e
More thiserror ( #7183 )
...
* Less solana_core::result. Module now private.
* Drop solana_core::result dependency from a few more modules
* Fix warning
* Cleanup
* Fix typo
2020-01-02 20:50:43 -07:00
Parth
727be309b2
fix entryverification state ( #7169 )
...
automerge
2019-12-23 23:26:27 -08:00
Tyera Eulberg
6aaf742dfe
Extend getConfirmedBlock rpc to return account pre- and post-balances ( #7543 )
...
automerge
2019-12-18 09:56:29 -08:00
Trent Nelson
1ffd6b4b4d
Add program and runtime support for Durable Transaction Nonces ( #6845 )
...
* Rework transaction processing result forwarding
Durable nonce prereq
* Add Durable Nonce program API
* Add runtime changes for Durable Nonce program
* Register Durable Nonce program
* Concise comments and bad math
* Fix c/p error
* Add rent sysvar to withdraw ix
* Remove rent exempt required balance from Meta struct
* Use the helper
2019-12-07 12:54:10 -07:00
Tyera Eulberg
c965a110f2
Use unbounded channel ( #7081 )
2019-11-21 14:23:40 -07:00
Tyera Eulberg
97ca6858b7
Write transaction status and fee into persistent store ( #7030 )
...
* Pass blocktree into execute_batch, if persist_transaction_status
* Add validator arg to enable persistent transaction status store
* Pass blocktree into banking_stage, if persist_transaction_status
* Add validator params to bash scripts
* Expose actual transaction statuses outside Bank; add tests
* Fix benches
* Offload transaction status writes to a separate thread
* Enable persistent transaction status along with rpc service
* nudge
* Review comments
2019-11-20 16:43:10 -07:00
anatoly yakovenko
b150da837a
Use epoch as the gossip purge timeout for staked nodes. ( #7005 )
...
automerge
2019-11-20 11:25:18 -08:00
Greg Fitzgerald
a3a830e1ab
Delete Service trait ( #6921 )
2019-11-13 11:12:09 -07:00
Greg Fitzgerald
30a08f4282
Cleanup ledger macros ( #6916 )
...
automerge
2019-11-13 07:14:09 -08:00
Justin Starry
9807f47d4e
Rename genesis block to genesis config ( #6816 )
2019-11-08 23:56:57 -05:00
sakridge
8e81bc1b49
Fix pinning ( #6604 )
...
Remove Deref implementations and add more pass-throughs to the PinnedVec
wrapper.
Warm recyclers
set_pinnable
2019-11-07 19:48:33 -08:00
Jack May
9614d17024
Limit deserialization of data coming off the wire ( #6751 )
...
* Limit deserialization of data coming off the wire
* Feedback and cleanup
2019-11-06 00:07:57 -08:00
anatoly yakovenko
b825d04597
Pull perf into a separate module. ( #6718 )
...
automerge
2019-11-04 20:13:43 -08:00
Michael Vines
50a17fc00b
Use Slot and Epoch type aliases instead of raw u64 ( #6693 )
...
automerge
2019-11-02 00:38:30 -07:00
anatoly yakovenko
385b4ce959
Get rid of verified packets and use the Meta::discard flag ( #6674 )
...
* get rid of verified packets and use the disabled meta field everywhere
2019-11-01 14:23:03 -07:00
Rob Walker
b4119c454a
credit_only credits forwarding ( #6509 )
...
* credit_only_credits_forwarding
* whack transfer_now()
* fixup
* bench should retry the airdrop TX
* fixup
* try to make bench-exchange a bit more robust, informative
2019-10-23 22:01:22 -07:00
Justin Starry
31e9074ae5
Rename leader_after_slots to leader_after_n_slots ( #6459 )
2019-10-19 23:28:33 -04:00
Rob Walker
e2c316d2d0
system_instruction_processor updates ( #6448 )
...
* zero lamport account creation
* whack create_user_account, take 2
* target->to
* ..
* ..
* update chacha golden
* update chacha golden
* ..
* ..
2019-10-19 18:23:27 -07:00
Greg Fitzgerald
5468be2ef9
Add solana-ledger crate ( #6415 )
...
automerge
2019-10-18 09:28:51 -07:00
Justin Starry
7e6e7e8406
Remove special handling of first ledger tick ( #6263 )
...
* Remove special handling of first ledger tick
* Fix subtraction overflow
* @garious feedback
* Back to height
* More tick_height name changes
* Fix off-by-one
* Fix leader tick error
* Fix merge conflict
* Fix recently added test
2019-10-16 15:53:11 -04:00
Ryo Onodera
e267dfacdd
Stabilize some banking stage tests ( #6251 )
...
* Stabilize some banking stage tests
Fixes #5660
* Fix CI...
* clean up
* Fix ci
* Address review nits
* Use bank.max_tick_height due to off-by-one for no PohRecord's clearing bank
* Fix CI...
* Use bank.max_tick_height() instead for clarity
2019-10-16 12:37:27 -07:00
Sagar Dhawan
4b0250192a
Remove remnants of the cuda feature flag ( #6298 )
...
automerge
2019-10-09 16:09:36 -07:00
Pankaj Garg
f331f1d1e9
Don't forward transaction to self ( #6218 )
2019-10-02 14:07:34 -07:00
Pankaj Garg
ca9d4e34df
Broadcast stage tuning ( #5989 )
2019-09-19 16:29:52 -07:00
Rob Walker
5cbd1190b2
transaction batch ( #5962 )
...
* transaction batch
* fixup
2019-09-19 10:06:08 -07:00
Rob Walker
0d4a2c5eb0
simplify poh recorder => broadcast channel ( #5940 )
...
* simplify poh recorder broadcast channel
* fixup
* fixup
2019-09-18 12:16:22 -07:00
Rob Walker
a2595b44c6
test randomize with error ( #5916 )
...
* test randomize with error
* update magic numbers
* fixup
* fixup
* fixup
* no more blobs
* fixup
2019-09-17 15:11:29 -07:00
Michael Vines
e26f68fe62
Get transactions from LockedAccountsResults when possible ( #5923 )
2019-09-17 08:41:56 -07:00
Michael Vines
f10438d530
Respect randomized transaction order when unlocking accounts ( #5918 )
2019-09-16 21:45:16 -07:00
Pankaj Garg
b426dfb2c0
Change tx batching in banking process and record ( #5832 )
...
* Change tx batching in banking process and record
* Change batching to reduce impact on replay stage
2019-09-10 11:04:03 -07:00
Jack May
e8d88f3237
Split SDK's timing.rs ( #5823 )
2019-09-06 14:30:56 -07:00
Pankaj Garg
3237e897d7
Adjust packet batching post-decoupling from blobs ( #5783 )
2019-09-05 11:22:39 -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
Michael Vines
a0f3208828
Ignore flaky test_banking_stage_entryfication ( #5659 )
...
automerge
2019-08-26 16:49:34 -07:00
Rob Walker
52f6da5cee
upgrade rust to 1.37 ( #5611 )
2019-08-23 08:55:51 -07:00
Rob Walker
93ae98812b
change DEFAULT_NUM_TICKS_PER_SECOND to DEFAULT_TICKS_PER_SECOND ( #5559 )
2019-08-19 23:22:56 -07:00
Greg Fitzgerald
471bc73a23
Fix Rust 1.37.0 compiler warnings ( #5530 )
...
Looks like most usages of trait objects should have introduced
a type variable instead.
2019-08-15 14:00:09 -06: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
5884469d11
count commitable in banking_stage ( #5477 )
2019-08-09 21:14:20 -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
Pankaj Garg
a7a10e12c7
Forward transactions as packets instead of blobs ( #5334 )
...
* Forward transactions as packets instead of blobs
* clippy
2019-07-30 14:50:02 -07:00
Pankaj Garg
aef7bae60d
Let grace ticks to roll over into multiple leader slots ( #5268 )
...
* Let grace ticks to roll over into multiple leader slots
* address review comments
2019-07-26 11:33:51 -07:00
Rob Walker
afa05acb32
more replay_stage grooming ( #5163 )
2019-07-18 14:54:27 -07:00