Commit Graph

232 Commits

Author SHA1 Message Date
Greg Fitzgerald 778583ad08 Inline BlockConfig::ticks_per_slot 2019-02-21 20:37:21 -08:00
Michael Vines b501090443 Route BankForks into the ReplayStage 2019-02-21 19:25:17 -08:00
Carl fc48062867 Rename active_window_length to active_window_num_slots 2019-02-21 15:48:13 -08:00
Carl 60a6ff80ee Change votes and associated test/helper functions to vote based on slot height 2019-02-21 15:31:53 -07:00
Michael Vines dcf1200d2a Make Fullnode do less work on rotation, ReplayStage can just pass along more details 2019-02-21 11:13:06 -08:00
Greg Fitzgerald c57084de36 Ignore test_two_fullnodes_rotate integration tests 2019-02-18 06:19:46 -08:00
Greg Fitzgerald 643384e1ec Add LeaderScheduler constructor to Bank
By passing a config and not a Arc'ed LeaderScheduler, callers
need to use `Bank::leader_scheduler` to access the scheduler.
By using the new constructor, there should be no incentive to
reach into the bank for that object.
2019-02-16 10:55:58 -07:00
Michael Vines 71ab030ea4 Fiddle with timeouts to make CI happy 2019-02-14 18:40:31 -08:00
Michael Vines c4125b80ec Reduce max_tick_height to speed up CI 2019-02-14 18:40:31 -08:00
Michael Vines 626a381ddc Collect and re-forward packets received while TpuForwarder is shutting down 2019-02-14 18:40:31 -08:00
Michael Vines cceeb8e52d On leader rotation forward any unprocessed transaction packets to the new leader 2019-02-14 14:49:48 -08:00
Michael Vines 662d62f561 Always assert on the main test thread to abort quickly 2019-02-13 12:54:06 -08:00
Michael Vines cf4813a1ec Add tests to transact with a cluster rotating at 1 tick per slot 2019-02-13 12:54:06 -08:00
Michael Vines b03636dc33 Bolster test_fullnode_rotate() checks 2019-02-13 12:54:06 -08:00
Michael Vines 6187779d10 Wait for monitor threads to exit before Blocktree destruction 2019-02-13 12:54:06 -08:00
Michael Vines 863956d09c Add multinode test for two nodes rotating at 1 tick per slot 2019-02-12 21:17:06 -08:00
Michael Vines e341b33f21 Remove ticks_per_slot from Blocktree::write_entries(), it already knows 2019-02-12 15:52:27 -08:00
Michael Vines 6632c7026d Pass a BlocktreeConfig into all ledger helper functions 2019-02-12 15:52:27 -08:00
Michael Vines c474cf1eef Pass BlocktreeConfig around as a reference 2019-02-12 15:52:27 -08:00
Carl b33becabca rename flag 2019-02-12 15:06:52 -08:00
Carl 3c8a8640aa restructure test_broadcast_last_tick test to check for is_last_blob 2019-02-12 15:06:52 -08:00
Carl a1b5ea9cb1 test for is_last_blob at end of broadcast 2019-02-12 15:06:52 -08:00
Carl bc162637a6 Add is_last_blob flag to blob to signal the end of a slot 2019-02-12 15:06:52 -08:00
carllin be71f49d80
Change write_entries() and create_tmp_ledger() to take ticks_per_slot (#2736)
* Change write_entries() and create_tmp_ledger() to take ticks_per_slot

* PR nits
2019-02-12 13:14:33 -08:00
Michael Vines aa781811af Add mulitnode tests demonstrating leader rotation at 1 tick per slot 2019-02-11 19:50:33 -08:00
Michael Vines f6979a090e leader_scheduler: reduce the amount of special case handling for tick_height 0 2019-02-11 19:05:14 -08:00
Michael Vines aac1a58651 Try harder to keep LeaderSchedulerConfig and BlocktreeConfig in sync 2019-02-11 13:10:12 -08:00
Michael Vines 7dec40ff05 slot 0 now contains the same number of ticks as all subsequent slots 2019-02-10 16:34:10 -08:00
carllin 4b38ecd916
fix tpu tvu bank race (#2707)
* Fix tpu tvu bank race

* Test highlighting race between tvu and tpu banks during leader to leader transitions
2019-02-10 16:28:52 -08:00
carllin 6e7c5f205b
Rename db_ledger to blocktree (#2698) 2019-02-07 20:52:39 -08:00
carllin fd7db7a954
Support multiple forks in the ledger (#2277)
* Modify db_ledger to support per_slot metadata, add signal for updates, and add chaining to slots in db_ledger

* Modify replay stage to ask db_ledger for updates based on slots

* Add repair send/receive metrics

* Add repair service, remove old repair code

* Fix tmp_copy_ledger and setup for tests to account for multiple slots and tick limits within slots
2019-02-07 15:10:54 -08:00
Michael Vines 1f0b3f954a leader_scheduler: replace older terminology with ticks, slots and epochs 2019-02-07 10:42:57 -08:00
Michael Vines c87e035302 Remove multinode test dependency on Fullnode internals 2019-02-06 20:38:22 -08:00
Michael Vines abb9a72b27 Reduce Fullnode public API surface 2019-02-06 20:04:51 -08:00
Michael Vines d9e2b94d7a bank::new_with_leader_scheduler_config() - remove Option<> 2019-02-06 19:47:09 -08:00
Michael Vines f789038baa Consolidate fullnode ledger helpers 2019-02-06 19:47:09 -08:00
Michael Vines c986a20bcf Disable unstable test: test_multi_node_dynamic_network 2019-02-06 14:23:10 -08:00
Michael Vines c5a74ada05 leader_scheduler: remove bootstrap_height 2019-02-06 14:23:10 -08:00
Michael Vines f90d96367d Add Fullnode::run() to optionally manage node role transitions automatically 2019-02-06 14:23:10 -08:00
Sagar Dhawan 9d34ded5f3
Update and fix test_broadcast_last_tick (#2644) 2019-02-01 17:13:15 -08:00
Sagar Dhawan 2985988f0d
Re-enable test_broadcast_last_tick (#2639) 2019-02-01 14:23:20 -08:00
Greg Fitzgerald dad0bfe447 Replace transaction traits with structs
Also:
* SystemTransaction::new -> new_account
* SystemTransaction::new_create -> new_program_account
2019-02-01 11:38:25 -08:00
Greg Fitzgerald 82a2080e45 Rename VoteSignerProxy to VotingKeypair
Works just like a normal Keypair, but will only sign voting
transactions.
2019-02-01 07:11:17 -07:00
Michael Vines d87c2eb903 Fullnode::new() - provide FullnodeConfig as a ref 2019-01-31 21:12:36 -08:00
carllin 37003da854
Fix potential of checking tvu bank for truth when its behind (#2614)
* Fix race between tpu and tvu, where tvu bank is not caught up to tpu bank

* Add test

* Cleanup Fullnode tests
2019-01-31 19:21:02 -08:00
carllin 84567d36cf
Leader scheduler groundwork for Blocktree (#2599)
* Groundwork for entry tree, align constants with definitions in the book

* Fix edge case in test, node can keep generating ticks between handle_role_transition and exit() call
2019-01-31 13:44:24 -08:00
Pankaj Garg 32162ef0f1
Connect TPU's broadcast service with TVU's blob fetch stage (#2587)
* Connect TPU's broadcast service with TVU's blob fetch stage

- This is needed since ledger is being written only in TVU now

* fix clippy warnings

* fix failing test

* fix broken tests

* fixed failing tests
2019-01-31 13:43:22 -08:00
Greg Fitzgerald 609e915169 Fix clippy warning
Always pass Arcs by reference. Then you'll only need to clone()
to cross thread boundaries.
2019-01-30 21:59:05 -07:00
Greg Fitzgerald e25992a011 Always give Fullnode a vote signer
This will allow us to use the the signer's pubkey as the node id.

Disable voting with a configuration option.
2019-01-30 21:59:05 -07:00
Rob Walker 1b50fbbc90
remove Result<> from Blob accessors, add parent (#2608)
* remove Result<> from Blob accessors, add parent
* update chacha's golden
* fixup benches
2019-01-30 20:18:28 -08:00