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
Pankaj Garg
637f58364a
remove io from the tests
2019-01-28 13:52:13 -08:00
Pankaj Garg
1bd04b26e5
Remove ignore flag from rpc_pubsub tests
2019-01-28 13:52:13 -08:00
Michael Vines
29ef9370a6
Remove LeaderSchedulerConfig options
2019-01-28 13:51:01 -08:00
Stephen Akridge
2262f279d5
Reduce boilerplate code with helper function to create
...
fullnode/bank/genesis
2019-01-28 13:48:58 -08:00
Michael Vines
e4f477cf90
Retype num_ticks as u64 to reduce casting
2019-01-28 11:24:50 -08:00
Greg Fitzgerald
33f921235d
Improve message-signing ergonomics
2019-01-26 14:57:22 -07:00
Greg Fitzgerald
1bae87d4b3
Add unit-test-friendly VoteSignerProxy constructor
2019-01-26 14:56:49 -07:00
Greg Fitzgerald
1e43fb587e
Rename the module that now contains only GenKeys
2019-01-26 06:57:24 -08:00
Sagar Dhawan
d65e7b9fcc
Speedup rotation ( #2468 )
...
Speedup leader to validator transitions
2019-01-26 13:58:08 +05:30
Michael Vines
4bb6549895
Genesis block is now a json file
2019-01-25 09:05:15 -08:00
Rob Walker
e9e01557b7
fix leaked threads from unclosed fullnode
2019-01-25 03:02:49 -08:00
Sathish
e0f046b7a5
Optimize Transaction/Instruction serialization with custom routine ( #2515 )
...
* Optimize transaction serialization with custom routine to reduce the serialized size.
* Update serialized_size to accept self as parameter
* Optimize serialize / deserialize operations
2019-01-24 21:14:15 -08:00
Pankaj Garg
81c82b5af9
Add test for ignore ProgramErrors in process_entries ( #2544 )
2019-01-24 13:37:12 -08:00
Pankaj Garg
a9b083e585
Set fetch stage socket non blocking to false while during recv ( #2542 )
...
* Set fetch stage socket non blocking to false while during recv
* remove ProgramError changes from this PR
2019-01-24 12:46:40 -08:00
Tyera Eulberg
b7be5b9a7a
Add no-signer argument
2019-01-24 10:47:37 -08:00
Greg Fitzgerald
aba9df8457
Remove get_stake placeholder
2019-01-23 17:03:20 -08:00
Michael Vines
27c10d4468
cargo fmt
2019-01-22 21:56:04 -08:00
Stephen Akridge
a17467aefd
Lower level of message from storage_stage
2019-01-22 21:23:10 -08:00
Rob Walker
965dbbe835
stop enumeration if next entry is disjoint, band-aid ( #2518 )
...
* stop enumeration if next entry is disjoint, band-aid, fies #2426
* clippy
2019-01-22 15:50:36 -08:00
Michael Vines
122a5b2f69
dedup the
2019-01-22 09:47:43 -08:00
Rob Walker
c84b796e17
remove dead code ( #2512 )
2019-01-21 16:24:11 -08:00
Pankaj Garg
7204bb40bf
Don't fail process_entries with ProgramErrors ( #2509 )
2019-01-21 15:26:06 -08:00
Mark
f37eb533f1
Replicator timeout ( #2480 )
...
* Add timeout to Replicator::new; used when polling for leader
* Add timeout functionality to replicator ledger download
Shares the same timeout as polling for leader
Defaults to 30 seconds
* Add docs for Replicator::new
2019-01-21 15:37:41 -06:00
Michael Vines
6e8b69fc88
Cleanup leader_addr, it's really entrypoint_addr
2019-01-21 13:06:30 -08:00
Tyera Eulberg
35764225ed
Remove socket from rpc test and move integration test
2019-01-21 12:29:04 -07:00
Rob Walker
e6030d66eb
split load+execute from commit in bank, insert record between them in TPU code ( #2487 )
...
* split load+execute from commit in bank, insert record between them in TPU code
* clippy
* remove clear_signatures() race with commit_transactions()
* add #[test] back
2019-01-21 10:17:04 -08:00
Pankaj Garg
6611188edf
Move subscriptions to rpc_pubsub ( #2490 )
...
* Move subscriptions to rpc_pubsub
- this helps avoid recreating pubsub_service on node's role change
* fixed tests and addressed review comments
* fix clippy errors
* address review comments
2019-01-21 09:59:09 -08:00
Stephen Akridge
abbb037888
Implement storage contract logic
2019-01-21 08:36:49 -08:00
Michael Vines
132d59ca6a
new_bank_from_db_ledger need not be public
2019-01-21 08:11:13 -08:00
Michael Vines
5b73a8eceb
Rework fullnode boot sequence
2019-01-19 21:35:46 -08:00
Michael Vines
2073188345
Fullnode no longer fails to process a ledger with ProgramErrors in it
2019-01-18 21:06:50 -08:00
Stephen Akridge
2f1107ff4f
Add randomness to broadcast
2019-01-18 13:05:35 -08:00
Stephen Akridge
1fd7bd7ede
Storage fixes
...
* replicators generate their sample values
* fixes to replicator block height logic
2019-01-18 13:05:35 -08:00
Michael Vines
c0c38463c7
Remove hard coded ports
2019-01-17 23:34:21 -08:00
Michael Vines
c1e142d1dc
Revert "test_rpc_new fails locally, ignore for now"
...
This reverts commit 0c46f15f94
.
2019-01-17 23:34:21 -08:00
Rob Walker
1f87d9ba4a
add bloom benchmarking, perf improvement from Fnv ~= 8X ( #2477 )
...
* add bloom benchmarking, perf improvement from Fnv ~= 8X
* have a look at bits.set()
* ignore new benches to pacify CI (solana_upload_perf?)
2019-01-17 18:22:21 -08:00
Michael Vines
e74574706e
Record Transactions with program errors in the ledger, they paid the fee
2019-01-17 13:55:56 -08:00
Stephen Akridge
b296a9a0c7
Rename slice to segment to match book terminology
2019-01-17 10:19:45 -08:00
Michael Vines
a84b6bc7e4
Overhaul wallet rpc/drone command-line arguments
2019-01-17 08:36:05 -08:00
Stephen Akridge
8e67a18551
Add network timeouts and fix tests
...
test_rpc_send_tx could fail if it didn't succeed on the first try
* add some retries to consistently pass
2019-01-16 15:59:40 -08:00
Michael Vines
526344c9ac
Log signature status uniformly
2019-01-16 12:17:46 -08:00
Michael Vines
f8bd19f5db
Log the time it look to process the ledger for easier log inspection
2019-01-16 10:45:47 -08:00
Pankaj Garg
03d4d1cb36
Store and resend votes if leader's TPU port is unknown ( #2438 )
...
* Store and resend votes if leader's TPU port is unknown
* fix build errors
* fix failing tests
2019-01-16 06:14:55 -08:00
Michael Vines
4369c1a113
RPC port is no longer reset on leader-to-validator transition
2019-01-15 16:06:56 -08:00
Michael Vines
b1e57e2a30
Retry rpc requests on connection failures
...
Applied a blanket default retry count of 5, which seems like enough but
not excessive retries.
2019-01-15 15:30:10 -08:00
Rob Walker
45c247fa5b
bloom for forking ( #2431 )
...
* bloom for forking
* clippy fixes
* remove bloom_hash_index
2019-01-15 13:56:54 -08:00
Pankaj Garg
fa4608a95d
Change leader rotation time to a multiple of ticks per block ( #2414 )
...
* Change leader rotation time to a multiple of ticks per block
* fix component dependencies
* review comments
2019-01-15 12:07:58 -08:00
Rob Walker
022a97da99
revert revert of kill window ( #2427 )
...
* remove window code from most places
* window used only for testing
* remove unecessary clippy directives
2019-01-15 10:51:53 -08:00
Michael Vines
a33c76a456
Remove JsonRpcRequestProcessor dependency
2019-01-14 17:39:31 -08:00
Michael Vines
11b1bd278a
Remove unused exit field
2019-01-14 17:39:12 -08:00
Michael Vines
e3a96ed3fc
Minor new cleanup
2019-01-14 16:04:29 -08:00
Rob Walker
447243f994
Revert "remove window code from most places" ( #2417 )
...
* Revert "Fix link to book in Local Testnet section (#2416 )"
This reverts commit 710c0c9980
.
* Revert "Add current leader information to dashboard (#2413 )"
This reverts commit f0300c1711
.
* Revert "remove window code from most places (#2389 )"
This reverts commit e3c0bd5a3f
.
2019-01-14 15:11:18 -08:00
Pankaj Garg
f0300c1711
Add current leader information to dashboard ( #2413 )
2019-01-14 14:20:05 -08:00
Rob Walker
e3c0bd5a3f
remove window code from most places ( #2389 )
...
* remove window code from most places
* window used only for testing
* remove unecessary clippy directives
2019-01-14 12:11:55 -08:00
Tyera Eulberg
8af61f561b
Improve Wallet coverage ( #2385 )
...
* Add trait for RpcRequestHandler trait for RpcClient and add MockRpcClient for unit tests
* Add request_airdrop integration test
* Add timestamp_tx, witness_tx, and cancel_tx to wallet integration tests; add wallet integration tests to test-stable
* Add test cases
* Ignore plentiful sleeps in unit tests
2019-01-14 00:10:03 -07:00
Michael Vines
74e503da92
Hold an accounts_db read lock as briefly as possible to avoid deadlocking
2019-01-13 21:49:09 -08:00
Greg Fitzgerald
9328ee4f63
Revert "Revert "Delete unused code and its tests""
...
This reverts commit d6b3991d49
.
2019-01-11 14:54:17 -07:00
Pankaj Garg
d7594b19fc
Implemented a trait for vote signer service ( #2386 )
...
* Implemented a trait for vote signer service
* removes need for RPC in unit tests for vote signing
* fix build errors
* address some review comments
2019-01-11 12:58:31 -08:00
Michael Vines
d6b3991d49
Revert "Delete unused code and its tests"
...
This reverts commit e713ba06f1
.
2019-01-11 07:30:28 -08:00
Greg Fitzgerald
e713ba06f1
Delete unused code and its tests
2019-01-10 23:19:38 -07:00
Greg Fitzgerald
7341298a11
Cleanup tpu forwarder ( #2377 )
...
* Use unwrap() on locks
An error there generally indicates a programmer error, not a
runtime error, so a detailed runtime message is not generally useful.
* Only clone Arcs when passing them across thread boundaries
* Cleanup TPU forwarder
By separating the query from the update, all the branches get easier to
test. Also, the update operation gets so simple, that we see it
belongs over in packet.rs.
* Thanks clippy
cute
2019-01-10 13:34:48 -07:00
Greg Fitzgerald
885fe38c01
Move BloomHashIndex into its own module
...
This trait is for bloom, not crds.
Slightly better would be to put it in the SDK so that the trait
implementations could go into hash and pubkey, but if we don't
want compatibility constraints, this is the next best thing.
2019-01-10 10:22:16 -08:00
Pankaj Garg
2dbe8fc1a9
Refactor vote signer code ( #2368 )
...
* Refactor vote signer code
* fixed test compilation errors
* address clippy errors
* fix missing macro_use
* move macro use
* review comments
2019-01-10 09:21:38 -08:00
Sagar Dhawan
7122139e12
Rewrite TPU forwarder test ( #2344 )
2019-01-10 13:50:28 +05:30
Michael Vines
4e6c03c9da
Avoid holding a read lock during IO
2019-01-10 00:34:50 -07:00
Stephen Akridge
0c90e1eff6
Make entry_sender optional on window_service
...
window_service in replicator has no need to consume the the produced entries.
2019-01-09 15:15:47 -08:00
Stephen Akridge
491bca5e4b
Remove ledger.rs
...
Split into entry.rs for entry-constructing functions and EntrySlice
trait and db_ledger.rs for ledger helper test functions.
2019-01-09 15:15:47 -08:00
Stephen Akridge
ebd676faaa
Rename Block to EntrySlice
2019-01-09 15:15:47 -08:00
Stephen Akridge
045c5e8556
Remove most of the old ledger code
...
Removes LedgerWriter, read_ledger, LedgerWindow
2019-01-09 15:15:47 -08:00
Stephen Akridge
45b4cf2887
Remove store_ledger_stage which is no longer needed
2019-01-09 15:15:47 -08:00
Stephen Akridge
73eca72f14
Switch test to send a repair request to try and download from replicator
...
Removes need for read_ledger in the test and also tests replicator
download path.
2019-01-09 13:24:12 -08:00
Rob Walker
94494b64d7
whack commented out, obsolete, superceded test
2019-01-09 11:30:07 -08:00
Rob Walker
b648f37b97
encapsulate erasure_cf ( #2349 )
2019-01-09 10:21:55 -08:00
Greg Fitzgerald
f53810fcd2
Remove unused exit variable
...
The exit variable was only used by a test.
2019-01-08 20:22:31 -08:00
Stephen Akridge
3c6afe7707
Rename get_blob_bytes to read_blobs_bytes
2019-01-08 16:00:39 -08:00
Stephen Akridge
09296e0d71
Fix two storage tests
...
* test_encrypt_files_many_keys_multiple_keys passing
- buffer chunk size unified between single key and multiple key path,
which shouldn't be necessary but can fix later.
* test_encrypt_file_many_keys_bad_key_length passing
2019-01-08 16:00:39 -08:00
Stephen Akridge
4b3d64ec9f
Convert chacha_encrypt_file to work with db_ledger blobs directly
2019-01-08 16:00:39 -08:00
Rob Walker
a904e15ecc
enscapsulate data_cf ( #2336 )
...
* enscapsulate data_cf
2019-01-08 15:53:44 -08:00
Greg Fitzgerald
a82a5ae184
Delete unused code
...
The ignored test is still broken, but at least no longer creates a
window for no reason.
Also removed all remaining references to "ncp".
2019-01-08 14:09:50 -08:00
Rob Walker
bafd90807d
encapsulate meta_cf ( #2335 )
2019-01-08 11:41:55 -08:00
jackcmay
0f8ea6872e
Add missing error counters and load_account test cases ( #2327 )
2019-01-08 09:20:25 -08:00
Greg Fitzgerald
d2431128c7
Remove WriteStage from TPU/TVU diagrams
...
Fixes #2312
2019-01-08 08:42:06 -08:00
Michael Vines
a8b9899dee
Add retry, restore ignored tests
2019-01-07 19:30:08 -08:00
Stephen Akridge
d2cb4e003c
Re-enable the --lib tests
2019-01-07 15:28:20 -08:00
Greg Fitzgerald
6000df9779
Optimize has_duplicates() for short slices
2019-01-07 13:20:04 -07:00
Greg Fitzgerald
24963e547c
with_subset() -> get_subset_unchecked_mut()
...
A simpler, safer, and better documented use of unsafe code
2019-01-07 13:20:04 -07:00
Michael Vines
46d44ca99c
Add make_rpc_request retry mechanism
2019-01-07 11:02:35 -08:00
jackcmay
0c52df7569
Consolidate locks and error handling when loading accounts( #2309 )
2019-01-06 22:06:55 -08:00
Pankaj Garg
91bd38504e
Use vote signer service in fullnode ( #2009 )
...
* Use vote signer service in fullnode
* Use native types for signature and pubkey, and address other review comments
* Start local vote signer if a remote service address is not provided
* Rebased to master
* Fixes after rebase
2019-01-05 12:57:52 -08:00
Michael Vines
b7dc9dbc76
RPC API now assumes a drone running on the bootstrap leader
2019-01-04 18:45:55 -08:00
Michael Vines
8b357dcb32
cargo fmt
2019-01-04 16:39:04 -08:00
Michael Vines
1f6346d880
De-dup ledgers - db_ledger is now the only ledger written to disk
2019-01-04 16:37:00 -08:00
Jack May
b7bd38744c
Spelling and formatting
2019-01-04 16:04:31 -08:00
Jack May
f8a67e282a
Ignore test_tpu_forwarder ( #2307 )
2019-01-04 16:02:50 -08:00
Greg Fitzgerald
0505d7bd32
Don't double-clone every account
2019-01-03 17:42:37 -07:00
Pankaj Garg
00d310f86d
Remove some metrics datapoint, as it was causing excessive logging ( #2287 )
...
- 100 nodes test was bringing down the influx DB server
2019-01-03 09:25:11 -08:00
Sagar Dhawan
0bea870b22
Dynamic N layer 'avalanche' broadcast and retransmit ( #2058 )
...
* Dynamic N layer avalanche broadcast and retransmit
2019-01-02 14:16:15 +05:30
Michael Vines
58f2598d5d
Revert "Validators make a transaction to advertise their storage last_id"
...
This reverts commit a1759aed19
.
2018-12-23 14:02:09 -08:00
carllin
58a4905916
Make reconstruct_entries_from_blobs() support Blobs and borrowed SharedBlobs, make distinction between to_blobs and to_shared_blobs ( #2270 )
2018-12-22 19:30:30 -08:00
Michael Vines
2c9607d5da
Rename getConfirmation -> getConfirmationTime
2018-12-22 12:47:02 -08:00
Stephen Akridge
a1759aed19
Validators make a transaction to advertise their storage last_id
...
* Also implement more storage contract logic
* Add transactions for proof validation,
* Move storage state members into system storage account userdata
2018-12-21 15:45:30 -08:00
Sathish
1a3387706d
Spawn threads based on cpu count ( #2232 )
2018-12-21 13:55:45 -08:00
Pankaj Garg
951d6398a0
Rename finality to confirmation ( #2250 )
...
* Rename finality to confirmation
* fix cargo fmt errors
2018-12-20 15:47:48 -08:00
Pankaj Garg
7c98545b33
Use newer votes to calculate confirmation time ( #2247 )
2018-12-20 15:27:47 -08:00
Pankaj Garg
bb1060bdad
Reduce ticks per block to increase voting frequency ( #2242 )
2018-12-20 14:43:03 -08:00
Michael Vines
7ad45a91ec
Fix compile error
2018-12-20 13:47:36 -08:00
Michael Vines
034c5d0422
db_ledger now fully encapsulates rocksdb
2018-12-20 12:32:25 -08:00
carllin
7148c14178
Debug broadcast ( #2233 )
...
* Account for duplicate blobs in process_blobs
* Increase max bytes for level base to match write buffer
2018-12-20 12:12:04 -08:00
Michael Vines
93fb61dc8f
Re-export rocksdb::DBRawIterator until it can be encapsulated
2018-12-20 10:38:03 -08:00
Michael Vines
b36ceb5be4
Remove rocksdb dependency from result.rs
2018-12-20 10:38:03 -08:00
Michael Vines
37d7ad819b
Purge DB::destroy() usage
2018-12-20 10:38:03 -08:00
carllin
666af1e62d
Debug broadcast ( #2208 )
...
* Add per cf rocksdb options, increase compaction and flush threads
* Change broadcast stage to bulk write blobs
* add db_ledger function specifically for broadcast
* fix broken tests
* fix benches
2018-12-19 16:11:47 -08:00
Rob Walker
b4f4347d6e
add some more tests ( #2217 )
2018-12-18 17:27:03 -08:00
Rob Walker
5c866dd000
test drive new coverage stuff ( #2216 )
2018-12-18 16:44:27 -08:00
Pankaj Garg
974249f2a5
Parallelize entry processing in replay stage in validators ( #2212 )
...
* Parallelize entry processing in replay stage in validators
- single threaded entry processing is not utlizing CPU cores to the fullest
* fix tests and address review comments
2018-12-18 16:06:05 -08:00
Rob Walker
a65022aed7
DbLedger doesn't need to be mut, doesn't need an RwLock ( #2215 )
...
* DbLedger doesn't need to be mut, doesn't need an RwLock
* fix erasure cases
2018-12-18 15:18:57 -08:00
Sagar Dhawan
ffdc1814c6
Add counters for gossip verification failures ( #2094 )
2018-12-17 20:12:50 -08:00
carllin
9720ac0019
Fix try_erasure() ( #2185 )
...
* Fix try_erasure bug
* Re-enable asserts in test_replicator_startup
* Add test for out of order process_blobs
2018-12-17 15:34:19 -08:00
anatoly yakovenko
9a6e27ac36
Accounts is to big, should be its own module ( #2198 )
...
Account module is to big, should be in its own module.
2018-12-17 12:41:23 -08:00
Michael Vines
07202205c4
Revert "ignore unstable tests"
...
This reverts commit bd7ef5d445071329a3b49b1f8be71b602226bbec.
2018-12-17 10:47:32 -08:00
Michael Vines
b7144560c9
Include port number when gossip bind_to fails
2018-12-17 09:31:31 -08:00
anatoly yakovenko
4be6d01dfb
Move last ids ( #2187 )
...
* Break out last_ids into its own module
* Boot SignatureNotFound from BankError
* No longer return BankError from LastIds methods
* No longer piggypack on BankError for a LastIds signature status
* Drop all dependencies on the bank
* SignatureStatus -> Status and LastIds -> StatusDeque
* Unstable tests, issue 2193
2018-12-17 07:55:56 -08:00
Michael Vines
fd562cb9e2
Rust 2018 cleanup
2018-12-14 21:57:15 -08:00
Michael Vines
5bf9a20d42
fullnode-config no longer depends on src/
2018-12-14 20:13:34 -08:00
Michael Vines
eedc8c7812
Move src/netutil.rs into its own crate
2018-12-14 20:13:34 -08:00
carllin
9ef5e51c0f
Cleanup slot remnants in db_ledger ( #2153 )
...
* Cleanup slot remnants in db_ledger
2018-12-14 17:05:41 -08:00
Sathish
8ee0e9632c
Switch to using hashbrown version of HashMap and ( #2158 )
...
HashSet for improved performance and memory usage
2018-12-14 15:10:10 -08:00
Michael Vines
6ac466c0a4
Move src/logger.rs into logger/ crate to unify logging across the workspace
2018-12-14 13:10:43 -08:00
Michael Vines
d45fcc4381
Move src/wallet.rs into wallet/ crate
2018-12-14 12:15:18 -08:00
carllin
6fcccedb70
align tick entries' tick_height with actual number of ticks in bank ( #2147 )
2018-12-14 02:25:50 -08:00
Michael Vines
0fe6d61036
Move binaries from src/bin into their own crate
2018-12-13 22:25:27 -08:00
Pankaj Garg
091b21fae7
Vote every number of ticks ( #2141 )
...
* Vote every number of ticks
* address review comments
* fix for failing leader rotation tests
* remove check for vote failure from replay tests
(as votes will be cached and transmitted when leader is available)
2018-12-13 18:43:10 -08:00
Sathish
7325b19aef
Do not allocate for each metrics submission ( #2146 )
2018-12-13 16:40:00 -08:00
Stephen Akridge
7cdbbfa88e
Storage stage updates
...
* Remove logging init from storage program: saw a crash in a test
indicating the logger being init'ed twice.
* Add entry_height mining proof to indicate which segment the result is
for
* Add an interface to get storage miner pubkeys for a given entry_height
* Add an interface to get the current storage mining entry_height
* Set the tvu socket to 0.0.0.0:0 in replicator to stop getting entries
after the desired ledger segment is downloaded.
* Use signature of PoH height to determine which block to download for
replicator.
2018-12-13 11:30:12 -08:00
Rob Walker
9880a86f80
remove prev_id, unused ( #2150 )
2018-12-13 09:24:38 -08:00
Michael Vines
647e5d76b0
Move solana-fullnode into fullnode/
2018-12-13 01:45:29 -08:00
Michael Vines
7e4af9382e
Move solana-upload-perf into upload-perf/
2018-12-13 01:06:40 -08:00
Michael Vines
282d4a3563
Move solana-keygen into keygen/
2018-12-13 01:06:40 -08:00
Michael Vines
cafeef33c3
Relocate all keypair generation into one location: sdk/src/signature.rs
2018-12-13 01:06:40 -08:00
Rob Walker
4f48f1a850
add db_ledger genesis, rework to_blob(), to_blobs() ( #2135 )
2018-12-12 20:42:12 -08:00
Carl
a05a378db4
cleanup
2018-12-12 19:12:51 -08:00
Carl
245362db96
Make a dummy version of serving repairs from db_ledger
2018-12-12 19:12:51 -08:00
Mark
b1b190b80d
Fix too many args in Tvu::new ( #2114 )
...
* Reduce args in Tvu::new under to 8
Now pass in sockets through a the crate::tvu::Sockets struct
Move ClusterInfo.keypair to pub(crate) in order to remove redundant
signing keypair parameter
* remove commented code
2018-12-12 18:57:48 -08:00
Rob Walker
3408ce89a7
add check_tick_height ( #2144 )
2018-12-12 18:52:11 -08:00
Michael Vines
75f407e191
Provide entire elf to bpf_loader
2018-12-12 17:14:50 -08:00
Mekagoza
9b81696a09
remove obsoleted TODO
2018-12-12 16:26:59 -08:00
Mekagoza
80e19e0ad7
Encapsulate accounts of solana: 🏦 :Accounts
...
Make the field private and expose an account_values() method that
returns the values iterator from the internal hashmap
2018-12-12 16:26:59 -08:00
carllin
ae903f190e
Broadcast for slots ( #2081 )
...
* Insert blobs into db_ledger in broadcast stage to support leader to validator transitions
* Add transmitting real slots to broadcast stage
* Handle real slots instead of default slots in window
* Switch to dummy repair on slots and modify erasure to support leader rotation
* Shorten length of holding locks
* Remove logger from replicator test
2018-12-12 15:58:29 -08:00
Pankaj Garg
3413ecc2bd
Change query used to find list of nodes in the network ( #2124 )
...
* Change query used to find list of nodes in the network
* include "All" option for host selection
2018-12-12 12:38:00 -08:00
Sagar Dhawan
4788a4f775
Correctly describe repair and retransmit peers ( #2110 )
2018-12-11 15:51:47 -08:00
Pankaj Garg
9243bc58db
Metrics for window repair ( #2106 )
...
* Metrics for window repair
- Also increase max repair length
* fix vote counters, and add repair window graph
* update per node graphs
* revert max repair length change
2018-12-11 15:43:41 -08:00
Rob Walker
4d67aca919
add genesis and read_ledger to db_ledger ( #2097 )
2018-12-11 09:14:23 -08:00