solana/ledger/src
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
..
blockstore Convert blockstore TransactionStatus column family to protobufs (#15733) 2021-03-05 09:05:35 -07:00
ancestor_iterator.rs Persistent tower (#10718) 2020-09-19 14:03:54 +09:00
bank_forks_utils.rs Cache account stores, flush from AccountsBackgroundService (#13140) 2021-01-11 17:00:23 -08:00
bigtable_upload.rs Rpc: enable getConfirmedBlock and getConfirmedTransaction to return confirmed (not yet finalized) data (#16142) 2021-03-26 16:47:35 -06:00
block_error.rs Lower blockstore processor error severity (#15578) 2021-03-01 14:57:37 -08:00
blockstore.rs Rpc: enable getConfirmedBlock and getConfirmedTransaction to return confirmed (not yet finalized) data (#16142) 2021-03-26 16:47:35 -06:00
blockstore_db.rs Rpc: enable getConfirmedBlock and getConfirmedTransaction to return confirmed (not yet finalized) data (#16142) 2021-03-26 16:47:35 -06:00
blockstore_meta.rs Add blockstore column to store performance sampling data (#12251) 2020-09-22 12:26:32 -07:00
blockstore_processor.rs removes OrderedIterator and transaction batch iteration order (#16153) 2021-03-31 23:59:19 +00:00
builtins.rs Fix up upgradeable bpf loader activation 2020-12-16 06:36:14 +00:00
entry.rs Add limit and shrink policy for recycler (#15320) 2021-02-24 00:15:58 -08:00
erasure.rs
genesis_utils.rs Initial solana-test-validator command-line program 2020-12-11 04:17:38 +00:00
leader_schedule.rs adds an inverted index to leader schedule (#15249) 2021-02-15 00:52:52 +00:00
leader_schedule_cache.rs rpc: add getSlotLeaders method (#16057) 2021-03-23 17:48:54 +00:00
leader_schedule_utils.rs rpc: add getSlotLeaders method (#16057) 2021-03-23 17:48:54 +00:00
lib.rs Re-allow clippy::integer_arithmetic at crate-level 2021-02-17 13:55:08 -07:00
next_slots_iterator.rs
poh.rs Throttle PoH ticks by cumulative slot time (#16139) 2021-03-26 18:54:16 +00:00
rooted_slot_iterator.rs
shred.rs buffers data shreds to make larger erasure coded sets (#15849) 2021-03-23 14:52:38 +00:00
sigverify_shreds.rs Add limit and shrink policy for recycler (#15320) 2021-02-24 00:15:58 -08:00
staking_utils.rs Account->AccountSharedData (#15691) 2021-03-09 15:06:07 -06:00