Greg Fitzgerald
0317583489
Move avalanche logic to ClusterInfo
...
The simulator doesn't depend on RetransmitStage. It depends on
just one function, which is similar in spirit to many of the
methods in ClusterInfo.
2019-02-18 09:08:18 -08:00
Greg Fitzgerald
1c3f2bba6d
Move avalanche simulator to integration tests
2019-02-18 09:08:18 -08:00
Greg Fitzgerald
7d62bf9a3d
Move crds_gossip simulator to integration tests
2019-02-18 09:55:52 -07:00
Greg Fitzgerald
7c248cd2ef
Move expensive test to integration tests
...
This test passes consistently when the test suite is run with a
single thread. It fails consistently on MacOS when run as part
of the unit-test suite.
No idea why it passes in CI.
2019-02-18 09:27:23 -07: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
5333bda234
test_3_partitions is unstable, ignore
2019-02-14 17:30:42 -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
carllin
3feda8a315
ReplayStage asking ledger for updates ( #2597 )
...
* Modify replay stage to ask db_ledger for updates instead of reading from upstream channel
* Add signal for db_ledger to update listeners about updates
* fix flaky test
2019-02-04 15:33:43 -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
Michael Vines
d62c9ac309
Create program/ crate avoid / crate dependency on bpfloader
...
The bpfloader crate was triggering cargo to perform excessive rebuilds
of in-workspace dependencies. Unclear why exactly, but seems related to
the special dual crate-type employed by bpfloader.
2019-02-01 12:42:46 -08:00
Michael Vines
40acaee446
Remove unnecessary abstractions and helper functions
2019-02-01 12:42:46 -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
Michael Vines
9767468b7f
Remove unneeded Option
2019-01-31 13:53:59 -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