Rob Walker
35e8f966e3
add freeze_lock() and fix par_process_entries() failure to detect self conflict ( #4415 )
...
* add freeze_lock and fix par_process_entries failure to detect self conflict
* fixup
* fixup
2019-05-23 17:35:15 -07:00
Michael Vines
2ed77b040a
create_genesis_block() now returns a struct ( #4403 )
2019-05-22 20:39:00 -07:00
Pankaj Garg
b8f6c17dee
Don't filter transactions if we are buffering it locally ( #4395 )
...
automerge
2019-05-22 17:54:28 -07:00
sakridge
7153abd483
Revert "Performance tweaks ( #4340 )" ( #4350 )
...
* Revert "Performance tweaks (#4340 )"
This reverts commit 55cee5742f
.
* Revert Rc change
2019-05-20 17:48:42 -07:00
sakridge
7024c73e9b
Revert banking threads increase which seems to be slower in testing. ( #4349 )
2019-05-20 11:42:37 -07:00
Michael Vines
f079a78c5e
Remove fee arg from system_transaction::* ( #4346 )
...
automerge
2019-05-20 10:03:19 -07:00
sakridge
55cee5742f
Performance tweaks ( #4340 )
...
* Use Rc to prevent clone of Packets
* Fix min => max in banking_stage threads.
Coalesce packet buffers better since a larger batch will
be faster through banking and sigverify.
Deconstruct batches into banking_stage from sigverify since
sigverify likes to accumulate batches but then a single banking_stage
thread will be stuck with a large batch. Maximize parallelism by
creating more chunks of work for banking_stage.
2019-05-20 09:15:00 -07:00
Michael Vines
392a39dd54
Poh subsystem cleanup, genesis plumbing, enable real PoH on edge testnet ( #4292 )
...
* Remove unused PohServiceConfig::Step
* Clarify variable name
* Poh::hash() now takes an iteration counter
* man -> max
* Inline functions with single call site
* Move PohServiceConfig into GenesisBlock
* Add plumbing to enable real PoH on testnets
* Batch hashes to improve PoH hash rate
* Ensure a constant hashes_per_tick
* Remove PohEntry mixin field
* Poh/PohEntry no longer maintains tick_height
* Ensure a constant hashes_per_tick
* ci/localnet-sanity.sh: Use real PoH
* Rework Poh/PohService to keep PohRecorder unlocked as much as possible while hashing
2019-05-18 14:01:36 -07:00
Pankaj Garg
b2ce5dc9f5
Adjust log level for counter metrics ( #4323 )
2019-05-17 07:00:06 -07:00
Pankaj Garg
c9b86018c6
Filter out all unprocessed transactions before forwarding them ( #4266 )
...
* Filter out all unprocessed transactions before forwarding them
* fix clippy
2019-05-13 14:40:05 -07:00
Sagar Dhawan
5e91f8f59d
Update reported tx count to exclude errors ( #4201 )
2019-05-13 13:23:52 -07:00
Pankaj Garg
133be2df51
Check for transaction forwarding delay to detect an expired transaction before forwarding it ( #4249 )
...
Also refactored code for forwarding packets, and added test for it
2019-05-10 14:28:38 -07:00
Jack May
f567877d1d
Cleanup metrics ( #4230 )
2019-05-10 08:33:58 -07:00
sakridge
9cdffc7d64
Don't push empty vecs into the unprocessed buffers ( #4214 )
2019-05-08 17:58:07 -07:00
Pankaj Garg
1a2b131ceb
Don't forward transactions that are expired or failed signature check ( #4199 )
2019-05-08 10:32:25 -07:00
carllin
69eeb7cf08
Fix parent record locks usage in child banks ( #4159 )
...
* Introduce record locks on txs that will be recorded
* Add tests for LockedAccountsResults
* Fix broken bench
* Exit process_entries on detecting conflicting locks within same entry
2019-05-07 15:51:35 -07:00
Michael Vines
2c78a93001
GenesisBlock::new(X) => create_genesis_block(X)
2019-05-07 12:34:17 -07:00
Rob Walker
8e400fc4bd
rework genesis (passive staking groundwork) ( #4187 )
...
* rework genesis
* fixup
2019-05-07 11:16:22 -07:00
Pankaj Garg
29c2a63c8b
Retry transactions that failed due to account lock ( #4184 )
...
* added test
2019-05-07 10:23:02 -07:00
Pankaj Garg
e9f80e5542
Don't use default ticks per slot in calculating next slot leader ( #4169 )
2019-05-06 11:23:06 -07:00
Pankaj Garg
441e76ebeb
Index buffered transactions at the correct offset ( #4126 )
...
* tests
2019-05-02 19:05:53 -07:00
carllin
c2dfb9900e
Revert "Change forwarded metrics to be in line with fetch stage metrics ( #4068 )" ( #4135 )
...
automerge
2019-05-02 17:36:19 -07:00
Pankaj Garg
3eec3cfac2
Cleanup banking stage in lieu of recent transaction forwarding changes ( #4101 )
2019-05-01 15:13:10 -07:00
Pankaj Garg
4f18fc836f
Forward transactions to the next slot leader ( #4092 )
...
- this ensures that transactions will reach in time for the next node to process them
2019-05-01 11:37:29 -07:00
carllin
1a259d4a3f
Prevent Requests/Caching of leader schedules for epochs beyond confirmed roots ( #4033 )
...
automerge
2019-04-30 13:23:21 -07:00
carllin
3b2adbc9df
Change forwarded metrics to be in line with fetch stage metrics ( #4068 )
...
automerge
2019-04-29 13:50:14 -07:00
sakridge
a056c1f18f
Don't send packets when msgs len is 0 ( #4030 )
...
And don't send metrics every iteration.
2019-04-26 17:27:31 -07:00
Jack May
b912ee7fdf
Nit: Spelling ( #4025 )
2019-04-26 16:02:37 -07:00
Pankaj Garg
9c7ccc0e2b
More metrics to track memory usage ( #3966 )
...
automerge
2019-04-24 11:11:30 -07:00
carllin
ab11327e34
Fix mismatch between leader/validator bank votability ( #3942 )
...
* Fix mismatch between leader/validator bank votability
2019-04-23 15:32:19 -07:00
Pankaj Garg
7372ec9e1a
Use poh would_be_leader check in banking stage to hold or forward txs ( #3948 )
2019-04-23 11:56:30 -07:00
sakridge
95a16426f3
Cleanup bench-exchange ( #3919 )
...
* bench-exchange changes
Generate new keypair for each bench-exchange
Add metrics
Tweak network sleep parameters for better reliability.
* Bench-exchange contract metrics
2019-04-22 13:16:28 -07:00
carllin
512bfc93cb
Add a cache for leader schedules ( #3841 )
...
* Add a cache for leader schedules
2019-04-19 02:39:44 -07:00
Rob Walker
67b8ad6a0f
fix entries.to_blobs() ( #3882 )
...
* * rename Entry::serialized_size() to Entry::to_blob_size() to better
reduce confusion with bincode, et al. and to better reflect its
real meaning
* fix implementation of to_blob_size() to actually return what happens
when we do entries.to_blobs() (i.e. we serialize Vec<Entry>, not Entry)
* update tests to be more rigorous
* clippy
2019-04-18 14:45:41 -07:00
Pankaj Garg
f2187780d2
Do not forward vote transactions ( #3871 )
2019-04-18 11:18:49 -07:00
Pankaj Garg
2f4a3ed190
Use a separate channel to process votes in banking stage ( #3861 )
...
- This will help expedite the vote processing on peer nodes
2019-04-17 21:07:45 -07:00
Mark E. Sinclair
aa21f5343a
Remove broken read().unwrap() call to a non-shared packet
2019-04-17 21:24:40 -05:00
Sagar Dhawan
9c2809db21
Delete SharedPackets ( #3843 )
...
* Delete SharedPackets
* Fix bench and sigverify
2019-04-17 18:15:50 -07:00
Pankaj Garg
a2c8e3952f
Fixes to TPS calculation and reporting ( #3836 )
...
Fixes to TPS calculations and reporting
2019-04-17 15:37:01 -07:00
Pankaj Garg
2c745ce108
Shorten recv wait when there are buffered packets in banking stage ( #3757 )
...
- packets are buffered on leader rotation, when the next leader is
unknown
- shortening the wait allows the banking stage to poll for next
leader more frequently
2019-04-14 12:34:07 -07:00
Pankaj Garg
ee35ed5250
Refactored buffered packet forwarding code ( #3750 )
...
- Added unit tests
- Don't consume packets if bank is not known
2019-04-13 23:19:54 -07:00
Pankaj Garg
44ebfa736a
Don't forward buffered packet to the same node ( #3712 )
...
- instead, process the packets
2019-04-11 17:23:45 -07:00
Stephen Akridge
2c93062f54
Improve banking_stage performance messages
...
Use transaction count instead of batch count,
and set the recv_start from when we finished processing
the previous batch to get a more accurate number.
2019-04-09 14:54:12 -07:00
Greg Fitzgerald
46e6911ec1
Add get_signature_status() to SyncClient
...
And move bank::Result to transaction module.
2019-04-05 10:22:05 -07:00
Greg Fitzgerald
35298e01a8
Remove Instruction wrapper structs and name functions after enum fields
2019-04-03 13:34:27 -07:00
Greg Fitzgerald
867f6f107b
Rename SystemInstruction::Move to SystemInstruction::Transfer
2019-04-03 08:35:57 -06:00
Greg Fitzgerald
43bb813cbe
Rename 'new_account' to 'new_user_account'
...
And 'new_program_account' to 'new_account'
2019-04-02 21:24:42 -06:00
carllin
d228b6467c
Implement finalizer so that all locked accounts are dropped ( #3585 )
...
* Implement finalizer so that all locked accounts are dropped when finalizer goes out of scope
* Add test for tx error with lock conflict
* Fix double unlock from destructor running after a call to unlock
2019-04-02 03:55:42 -07:00
Greg Fitzgerald
fcef54d062
Add a constructor to generate random pubkeys
2019-03-31 16:23:18 -06:00
carllin
f886b3b12b
Fix resetting PohRecorder to wrong bank ( #3553 )
...
* Check whether future slot already has transmission
2019-03-29 20:00:36 -07:00