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
e4119268ca
Delete expensive integration test in unit-test suite
2019-02-18 09:27:09 -07:00
anatoly yakovenko
fc2760e761
Remove bank dependency from poh_recorder ( #2810 )
...
* Remove bank dependency from poh_recorder
* clippy
2019-02-18 06:33:07 -08:00
Greg Fitzgerald
907aff3b43
Cleanup Poh code
2019-02-17 21:12:55 -07:00
Greg Fitzgerald
d850f67979
Remove 'Compute' from name ComputeLeaderConfirmationService
...
struct names should be a noun
2019-02-17 19:44:09 -08:00
Carl
8080063024
nit
2019-02-17 19:30:45 -07:00
Carl
f33c6eb95f
delete leader rotation signal from banking stage
2019-02-17 19:30:45 -07:00
Carl
4e3d71c2c9
Batch joins on entire tpumode struct instead of individual services
2019-02-17 19:30:23 -07:00
Carl
a074cb78cd
Ensure leader services are closed before starting new ones
2019-02-17 19:30:23 -07:00
Michael Vines
0dbc33f781
Finish removing getConfirmationTime
2019-02-17 16:27:50 -08:00
Anatoly Yakovenko
25bbc3bc2a
wrong error
2019-02-17 15:43:13 -08:00
Anatoly Yakovenko
5f55a9be84
fmt
2019-02-17 15:43:13 -08:00
Anatoly Yakovenko
300e3d151d
remove the signal sender since its superfelous to a recv error
2019-02-17 15:43:13 -08:00
Greg Fitzgerald
2f7911b62a
Boot BankError::MaxHeightReached
2019-02-17 16:30:01 -07:00
Anatoly Yakovenko
54dfe708c1
use ref for new_from_parent; test that transactions don't leak to parent
2019-02-17 15:02:08 -07:00
Anatoly Yakovenko
8166925f04
copy a new bank
2019-02-17 15:02:08 -07:00
Anatoly Yakovenko
64f1d93cc3
Use the accounts list from parents up to finalized bank for Account::load apis.
...
Borrow checker
query the previous parents accounts
cleanup!
s/tree/parents
Tests! Last_ids need to be inherited as well otherwise nothing works.
new_from_parent
2019-02-17 15:02:08 -07:00
Greg Fitzgerald
6d67568037
Delete useless wrappers
2019-02-17 14:10:34 -07:00
Greg Fitzgerald
5003e97479
Inline private functions
...
Better code coverage in exchange for calling `create_session()`
2019-02-17 14:10:34 -07:00
Greg Fitzgerald
e9b0e3cb9d
Move RpcSignatureStatus into its own module
...
And fixup some imports from previous commits.
2019-02-17 12:20:05 -07:00
Greg Fitzgerald
34fceca7ff
Fix compiler warnings
2019-02-17 12:20:05 -07:00
Greg Fitzgerald
c646845cd3
Move RpcService into its own module
2019-02-17 12:20:05 -07:00
Greg Fitzgerald
eb483bc053
Move RpcPubSubService into its own module
2019-02-17 12:20:05 -07:00
Greg Fitzgerald
50d3fa7437
Move RpcSubscriptions into its own module
2019-02-17 12:20:05 -07:00
Greg Fitzgerald
9f7fc5f054
Boot unused trait
...
Some ambitious unit-testing plans unimplemented?
2019-02-17 12:20:05 -07:00
anatoly yakovenko
c8c794e340
Use the accounts and status cache from parents up to finalized bank for calls. ( #2798 )
...
* Use the accounts list from parents up to finalized bank for Account::load apis.
* Borrow checker
* query the previous parents accounts
* cleanup!
* s/tree/parents
* Tests! Last_ids need to be inherited as well otherwise nothing works.
2019-02-17 08:01:31 -08:00
carllin
97a1e950ef
write entries in blocktree now sets parent slot properly ( #2800 )
2019-02-17 04:36:49 -08:00
Greg Fitzgerald
9fa8105ae8
Add a way to make a DAG of checkpointed Banks
2019-02-16 21:49:06 -07:00
Michael Vines
58f4709362
Reduce log severity of entry stream errors
2019-02-16 19:10:00 -08:00
anatoly yakovenko
f71cd2c6f3
Status cache runs out of space in the bloom filter ( #2796 )
...
The cache is designed for 1m statuses, about 1 second worth of transactions at full capacity. Refresh the cache every 1 second worth of ticks.
2019-02-16 16:41:03 -08:00
Greg Fitzgerald
e39094ac37
Hoist Slot Leader dependencies up to BankingStage
2019-02-16 15:36:31 -07:00
Greg Fitzgerald
b539389741
Move all Validator dependencies from Bank to blocktree_processor
2019-02-16 15:01:26 -07:00
Greg Fitzgerald
ac35fe9ed1
Flip the dependency; Create bank before scheduler
2019-02-16 14:16:48 -07:00
Greg Fitzgerald
3d70afc578
Boot leader scheduler from the bank
...
Functional change: the leader scheduler is no longer implicitly
updated by PohRecorder via register_tick(). That's intended to
be a "feature" (crossing fingers).
2019-02-16 14:16:48 -07:00
Greg Fitzgerald
b919b3e3b2
Bank no longer updates a leader scheduler by default
2019-02-16 14:16:48 -07:00
Greg Fitzgerald
7a7349f2ff
Don't update the leader scheduler in bank's default constructor
2019-02-16 14:16:48 -07:00
Greg Fitzgerald
07b57735b1
Move leader scheduler test out of bank
2019-02-16 14:16:48 -07:00
Greg Fitzgerald
3bfe2e75b5
Boot new_with_leader_scheduler_config
...
Only used in one place. Easy enough to use the one with the shared
leader scheduler.
2019-02-16 10:55:58 -07:00
Greg Fitzgerald
97c93629a5
Don't use the Bank's LeaderScheduler
2019-02-16 10:55:58 -07: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
Greg Fitzgerald
1809277e05
Encapsulate Bank accounts
...
That way we don't need to TODOs saying "don't forget to iterate
over checkpoints too". It should be assumed that when the bank
references its previous checkpoint all its methods would
acknowledge it.
2019-02-16 08:41:35 -07:00
Greg Fitzgerald
7981865fd2
Boot unused confirmation-time from Bank
...
This broken metric is already submitted to influx. Why make it
available via RPC too? If so, why store it in the bank and not
in the RPC service?
2019-02-16 08:11:43 -07:00
Greg Fitzgerald
4467d5eb4c
Extract process_ledger from Bank
...
Fullnode was the only real consumer of process_ledger and it was
only there to process a Blocktree. Blocktree is a tree, and a
ledger is a sequence, so something's clearly not right here.
Drop all other dependencies on process_ledger (only one test) so
that it can be fixed up in isolation.
2019-02-16 08:07:26 -07:00
Stephen Akridge
573116e259
Remove count_last_ids API
2019-02-15 11:05:41 -08:00
Michael Vines
71ab030ea4
Fiddle with timeouts to make CI happy
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
3f6aba23dd
Add custom BlocktreeConfig for bad tests that break with the default
2019-02-14 14:49:48 -08:00
Michael Vines
cd9dac4c7e
Use a reasonable max_tick_height
2019-02-14 14:49:48 -08:00
Michael Vines
f478894729
Revert "Set DEFAULT_TICKS_PER_SLOT = 32 to stabilize integration tests"
...
This reverts commit 2d2572d2cb
.
2019-02-14 14:49:48 -08:00
Michael Vines
97790480c9
Increase poll_for_signature retry timeout
2019-02-14 14:49:48 -08:00
Tyera Eulberg
9643c39bf6
Fix slot in block event
2019-02-14 14:25:54 -08:00
Carl
0a08d40237
fix repair service to support multinode tests that depend on repairs
2019-02-14 13:37:55 -08:00
Carl
d029997aef
add parent slot to broadcast
2019-02-14 13:37:55 -08:00
Carl
ceb27b431e
Add tree test to test multiple chaining children
2019-02-14 13:37:55 -08:00
Carl
b25d8ce764
Comment out repair service tests, to be fixed in another PR
2019-02-14 13:37:55 -08:00
Carl
34da362ee6
fix blocktree tests
2019-02-14 13:37:55 -08:00
Carl
de6109c599
replace num_blocks with parent block
2019-02-14 13:37:55 -08:00
carllin
736f08815e
Add protocol request for requesting the highest blob in a slot ( #2759 )
2019-02-14 12:47:21 -08:00
Sunny Gleason
106645d9bd
add message terminator (newline) to socket writer output to ease client integration
2019-02-14 12:27:53 -08:00
Greg Fitzgerald
4a0009365e
Use Account::owner as loader for executable accounts
2019-02-14 13:26:46 -07:00
Greg Fitzgerald
48671a1728
Let native_loader own native executable accounts
2019-02-13 20:55:36 -08:00
Greg Fitzgerald
72b6ec4aa8
Add native program account constructor
2019-02-13 20:55:36 -08:00
Michael Vines
8790a92f07
Adjust create_counter to avoid imposing an AtomicUsize import on users
2019-02-13 20:24:04 -08:00
Michael Vines
0f8ff07b51
tpu now hangs on to its cluster_info
2019-02-13 16:16:18 -08:00
Tyera Eulberg
be73db13e0
Improve EntryStream trait and struct names
2019-02-13 13:07:30 -08:00
Tyera Eulberg
cbaba5cbf3
Review comments
2019-02-13 13:07:30 -08:00
Tyera Eulberg
c1447b2695
Add block event logic to EntryStreamStage
2019-02-13 13:07:30 -08:00
Sunny Gleason
e58f08b60f
Refactor EntryStream
...
Co-authored-by: Sunny Gleason <sunny.gleason@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
2019-02-13 13:07:30 -08:00
Stephen Akridge
ddc8bfed29
Fix bad window_send_test channel logic
...
Test could hang if the blobs are not sent in the right order.
2019-02-13 11:23:54 -08:00
Stephen Akridge
f1221d724d
Consolidate logic with entry helper function
...
Creates an entry and updates the hash.
Also cleanup blobs creation in test_replay
2019-02-13 11:23:54 -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
7118178e2c
Correctly compute max_tick_height when starting up a node
2019-02-12 21:17:06 -08:00
Michael Vines
1eabe66c85
setup_leader_validator: remove unnecessary ticks_per_slot parameter
2019-02-12 21:17:06 -08:00
Michael Vines
2de0a9e453
Log on bogus blobs
2019-02-12 21:17:06 -08:00
Stephen Akridge
0bb6940c1a
Faster exit for storage_stage client
...
Shorten the timeout and check for exit on every iteration
of fetching a last id.
2019-02-12 20:45:22 -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
6abdd6401d
clippy: passing BlocktreeConfig by ref is ok
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
Sagar Dhawan
e26cd2eb26
Make Genesis block handle extra tokens for the leader ( #2743 )
2019-02-12 15:49:23 -08:00
Carl
b33becabca
rename flag
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
Sagar Dhawan
8f1b7c3fff
Enable test_replay ( #2741 )
...
* Enable test_replay
* Refactor get_last_id
* Fix test ledger path
2019-02-12 15:03:11 -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
Sagar Dhawan
8b39eb5e4e
Replace Blob Ids with Forward property ( #2734 )
...
* Replace Blob Id with Blob forwarding
* Update simulation to properly propagate blobs
2019-02-12 10:56:48 -08:00
Pankaj Garg
1173cf7ed4
review comments
2019-02-12 08:41:02 -08:00
Pankaj Garg
b4fd141105
fix broken test
2019-02-12 08:41:02 -08:00
Pankaj Garg
0002b5dd02
Write to ledger in BroadcastService
...
- Also disconnect the channel between TPU and TVU
2019-02-12 08:41:02 -08:00
Michael Vines
709598541f
Remove stale TODO comment
2019-02-11 22:13:07 -08:00
Michael Vines
b595bf8f44
Set blob_index correctly when tick_height is at the last tick of a 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
Sagar Dhawan
2e1dcd84f9
Add Avalanche Simulation ( #2727 )
...
- No packet drops yet
- Optimistic retransmits without leader-id
2019-02-11 16:20:31 -08:00
Pankaj Garg
144d321193
Remove Box for RPC pubsub subscriptions
2019-02-11 15:47:29 -08:00
Tyera Eulberg
d41dec9395
Make EntryStreamStage optional
2019-02-11 14:07:24 -08:00
Tyera Eulberg
f977327c7b
Move EntryStream into its own Tvu stage
2019-02-11 14:07:24 -08:00
Michael Vines
aac1a58651
Try harder to keep LeaderSchedulerConfig and BlocktreeConfig in sync
2019-02-11 13:10:12 -08:00
Michael Vines
095afdfe47
Merge leader_to_validator/validator_to_leader
2019-02-11 08:57:44 -08:00
Michael Vines
4ae1783b97
Remove code duplication between leader_to_validator/validator_to_leader
2019-02-10 17:53:42 -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
Stephen Akridge
1e58c585d3
Add retry_get_balance function
...
clients don't need to know about json
2019-02-10 09:08:16 -08:00
Michael Vines
1c61415cee
Remove stale TODO. #1899 was resolved a while ago
2019-02-09 16:57:46 -08:00
Michael Vines
da5b777ee7
Purge Default::default()
2019-02-09 10:12:32 -08:00
Michael Vines
a6aaca814c
Rename enum Config to enum PohServiceConfig
2019-02-09 10:12:32 -08:00
Stephen Akridge
95b28d4d8c
Move now to after super majority time is calculated
...
'now' could end up being earlier than the supermajority calculated time.
Leading to underflow errors and thread panic.
2019-02-08 15:53:23 -08:00
carllin
1278396bd5
Cleanup consecutive entries code from window_service ( #2697 )
...
* Remove returning entries from db_ledger on insert
* Fix tests to check for correctness
* Delete generate_repairs and max_repair_entry_height
2019-02-08 14:19:28 -08:00
Rob Walker
0e29868e34
add ticks_left_in_block ( #2694 )
...
* add ticks_left_in_block
* de-combine tests
2019-02-08 10:30:14 -08:00
Michael Vines
0115a1f834
Remove unused SocketAddr
2019-02-08 10:23:39 -08:00
Michael Vines
cf103add54
Remove old Tpu leader rotation shutdown mechanism
2019-02-08 09:07:35 -08:00
Michael Vines
766af58cd8
Prune unnecessary test imports
2019-02-08 08:43:11 -08:00
Michael Vines
5200435bab
Strip unused return type
2019-02-08 08:43:11 -08:00
Michael Vines
56734dca3b
Align Tpu::new() and Tpu::switch_to_leader() arguments
2019-02-07 21:33:49 -08:00
Michael Vines
dbaf8e66ab
Remove code duplication
2019-02-07 21:33:49 -08:00
carllin
6e7c5f205b
Rename db_ledger to blocktree ( #2698 )
2019-02-07 20:52:39 -08:00
Michael Vines
e7df3cfe22
thin_client grooming: remove dead code, improve var names and error reporting
2019-02-07 19:41:58 -08:00
Michael Vines
0e8540417f
Add get_next_last_id
2019-02-07 19:41:58 -08:00
Michael Vines
c3ad0eebec
Clean up get_last_id()
2019-02-07 19:41:58 -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
Tyera Eulberg
952ab2bde5
Runtime fix
2019-02-07 11:30:05 -08:00
Tyera Eulberg
3c6af52a71
Fix pay-to-self Accounts bug ( #2682 )
...
* Add failing tests
* Fix tests
* Plumb AccountLoadedTwice error
* Fixup budget cancel actions to not depend on duplicate accounts
* Use has_duplicates
* Update budget-based golden
2019-02-07 12:14:10 -07:00
Michael Vines
1f0b3f954a
leader_scheduler: replace older terminology with ticks, slots and epochs
2019-02-07 10:42:57 -08:00
Greg Fitzgerald
5128d7d6c3
Move runtime.rs into its own crate
2019-02-07 09:46:06 -08:00
Michael Vines
cedee73548
Temporarily bump DEFAULT_TICKS_PER_SLOT to 64
...
See solana-labs/solana#2675
2019-02-07 09:16:43 -08:00
Greg Fitzgerald
d1945c29d7
Don't depend on solana_native_loader for IDs in the SDK
2019-02-07 08:23:44 -08:00
Greg Fitzgerald
83b40e4f30
Inline assertions from overreaching helper
...
The assert_counters() helper creates unreadable tests and makes
us have to update every test any time a counter is added. Instead,
we can just assert the values of any particular counters the test
may have affected.
2019-02-07 08:43:52 -07:00
Michael Vines
95ac6305bc
Remove unnecessary dependencies on fullnode mod
2019-02-06 21:31:48 -08:00
Michael Vines
ab4828aae7
Replace role_notifiers tuple with two explicit fields
2019-02-06 21:31:48 -08:00
Michael Vines
c506423e70
Remove superfluous imports
2019-02-06 21:31:48 -08:00
Michael Vines
f0843fc5f1
NodeServices: de-pub, remove dead code
2019-02-06 21:31:48 -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
Sagar Dhawan
acc6bf1564
Don't over complicate the solution
2019-02-06 19:55:12 -08:00
Sagar Dhawan
db688207a5
Add abort signals to tvu/tpu receivers
2019-02-06 19:55:12 -08:00
Sagar Dhawan
9681c4d468
Fix resource hogging when waiting for role transition
2019-02-06 19:55:12 -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
2e23b03f94
Remove dead code
2019-02-06 19:47:09 -08:00
Michael Vines
5181a2a9b1
Guard against invalid tick heights
2019-02-06 14:23:10 -08:00
Michael Vines
2d2572d2cb
Set DEFAULT_TICKS_PER_SLOT = 32 to stabilize integration tests
2019-02-06 14:23:10 -08:00
Michael Vines
fa553029d5
Temporarily disable test_validator_to_leader_transition
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
Tyera Eulberg
0025d36880
Move solana proper back to paritytech/jsonrpc
2019-02-04 22:17:23 -07: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
Tyera Eulberg
03e6a56b3c
Add datetime to EntryStream message
2019-02-04 11:03:54 -08:00
Sagar Dhawan
9d34ded5f3
Update and fix test_broadcast_last_tick ( #2644 )
2019-02-01 17:13:15 -08:00
Greg Fitzgerald
511d8275d6
Document current vote program semantics
...
And add a new 'staker_id' VoteState member variable to offer a path to
work our way out. Update leader scheduler to use staker_id, but
continue setting it to 'from_id' for the moment.
No functional changes here.
2019-02-01 16:03:46 -08:00
Greg Fitzgerald
9c07a8c26a
VoteProgram -> VoteState
2019-02-01 16:03:46 -08:00
Sagar Dhawan
7a6d730db3
Skip retransmit when node is leader ( #2625 )
...
* Skip retransmit when node is leader
* Fix window test
2019-02-01 14:30:26 -08:00
Pankaj Garg
d9a22705ce
Broadcast Service should handle SendError
...
- After TVU shuts down, the brroadcast service will get a SendError
when it tries to send blobs to it
2019-02-01 12:28:00 -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
Michael Vines
43cce3a8fc
speling
2019-02-01 07:11:17 -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
Greg Fitzgerald
9a4abe96c7
Reduce VoteSignerProxy to KeypairUtil
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
Carl
b6b179af97
Fix bad merge
2019-01-31 20:15:04 -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
Sagar Dhawan
ed478675ba
Push and query the ClusterInfo for votes. ( #2622 )
2019-02-01 05:21:29 +05:30
Michael Vines
9767468b7f
Remove unneeded Option
2019-01-31 13:53:59 -08:00
Rob Walker
8ba1d5f426
treat genesis special ( #2615 )
...
* treat genesis special
* fix poh_recorder to understand new world order
2019-01-31 13:53:08 -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
Pankaj Garg
2dd20c38b2
fix the test
2019-01-31 12:55:17 -08:00
Pankaj Garg
aa1bd603e6
Fix recvmmsg test for timeout
2019-01-31 12:55:17 -08:00
anatoly yakovenko
2754ceec60
StatusDeque split into separate objects with their own root checkpoint strategy ( #2613 )
...
Split up StatusDeque into different modules
* LastIdQueue tracks last_ids
* StatusCache keeps track of signature statuses
* StatusCache stores success as a bit in a bloom filter
* Overhead for 1m Ok transactions is 4mb in memory
* Less concurrency between the objects, last_id and status_cache are read and written to at different points in the pipeline
* Each object has its own strategy for merging into the root checkpoint
2019-01-31 06:53:52 -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
11f1c00ca7
Only send pubkey to ReplayStage
2019-01-30 21:59:05 -07:00
Greg Fitzgerald
a74b24fdf0
Only store the fullnode's pubkey
...
Only vote_signer is used for signing
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
Pankaj Garg
a746969995
Don't set socket as blocking in recvmmsg for non Linux targets ( #2611 )
...
* Don't set socket as blocking in recvmmsg for non Linux targets
- The user of the function is controling this flag
* added a test
2019-01-30 19:47:53 -08:00
Michael Vines
c01290438f
Move virtual genesis tick into the ledger proper as entry 0
2019-01-30 14:02:07 -08:00
Michael Vines
9e9c82869a
create_tmp_sample_ledger() need not return the genesis block
2019-01-30 14:02:07 -08:00
Michael Vines
494b143453
Delete create_tmp_genesis
2019-01-30 14:02:07 -08:00
Michael Vines
8cc1cde0fe
create_tmp_sample_ledger() now returns entry_height and last_id
2019-01-30 14:02:07 -08:00
Greg Fitzgerald
883fc39c80
Rename EntryTree to Blocktree
2019-01-30 13:29:34 -07:00
Anatoly Yakovenko
1c0758e3bd
Accounts refactoring for forking.
...
* Move last_id and signature dup handling out of Accounts.
* Accounts that handle overlays.
2019-01-30 11:36:49 -08:00
Greg Fitzgerald
668d353add
Inline VoteSigner::new_vote_account
...
So that we can stop using the validator keypair to fund the
the voting account.
2019-01-30 10:42:42 -07:00
Greg Fitzgerald
06a1681fdc
Remove redundant annotations
2019-01-30 10:42:42 -07:00
Michael Vines
16e705dc75
Boil away unneeded Fullnode::new_* functions
2019-01-29 20:10:10 -08:00
Michael Vines
b52228feb9
Remove assumption that the mint starts with 10_000 tokens
2019-01-29 20:10:10 -08:00
Michael Vines
25f25d0f82
new_fullnode: don't return the genesis_block, nobody uses it
2019-01-29 17:51:07 -08:00
Greg Fitzgerald
85e7046caf
Use signer for signing transactions, not constructing them
2019-01-29 18:35:05 -07:00
Greg Fitzgerald
c741a960b9
Generalize Transaction::new to accept anything that implements KeypairUtil
2019-01-29 18:35:05 -07:00
Greg Fitzgerald
34c8b2cc2f
Remove redundant Arc
2019-01-29 18:35:05 -07:00
Greg Fitzgerald
278effad49
Implement KeypairUtil for VoteSignerProxy
2019-01-29 18:35:05 -07:00
Rob Walker
a0bed5375d
remove println!, add check to keep it out ( #2585 )
...
* remove debugging prints
* remove println!, add check to keep it out
2019-01-29 16:02:03 -08:00
Michael Vines
a2c3369713
storage_state field doesn't actually exist
2019-01-29 12:34:59 -08:00
Rob Walker
1f9ab7f58f
copy bank for TPU
2019-01-29 12:11:48 -08:00
Anatoly Yakovenko
3e1a926aa6
wip
2019-01-29 12:11:48 -08:00
Michael Vines
df136578d4
Remove unnecessary FullnodeConfig::rpc_port option
2019-01-29 10:22:39 -08:00
Michael Vines
ae7f169027
Add FullnodeConfig struct to Fullnode::new* functions
...
This avoids having to touch *every* Fullnode::new* call site when
a new fullnode option is added
2019-01-29 09:42:48 -08:00
Tyera Eulberg
6da7a784f2
Stream entries ( #2582 )
...
* Add entry streaming option
* Fix tests
* Remove obsolete comment
* Move entry stream functionality to struct w/ trait in order to test without i/o
2019-01-29 00:21:27 -08:00
Michael Vines
12cddf725e
Harmonize Fullnode::new* function arguments
2019-01-28 22:37:56 -08:00
Michael Vines
bfaf5634a1
.unwrap() in tests instead of assert!()ing .is_ok() for a better failure message
2019-01-28 16:10:32 -08:00
Stephen Akridge
53afa64634
Remove storage_state from the bank
...
Construct in TVU and pass to RPC and StorageStage instead.
2019-01-28 15:41:41 -08:00
Rob Walker
c9bf9ce094
eliminate re-use of a TX here, we're testing for empty account balance ( #2576 )
2019-01-28 15:21:08 -08:00