Rob Walker
8ccfb26923
tests for my IP picker
2018-09-20 09:21:09 -07:00
Rob Walker
12a474b6ee
sort local interfaces before selecting one
2018-09-20 09:21:09 -07:00
Greg Fitzgerald
270fd6d61c
Fix compiler warnings
2018-09-20 09:47:36 -06:00
carllin
7b9c7d4150
Cleaned up find_leader_rotation function. Added testing for WriteStage find_leader_rotation_index() function ( #1276 )
2018-09-19 18:16:00 -07:00
Carl
55126f5fb6
Marked Tvu functionality in Fullnode as unused for now
2018-09-19 16:05:31 -07:00
Anatoly Yakovenko
431692d9d0
Use a Drop trait to keep track of lifetimes for recycled objects.
...
* Move recycler instances to the point of allocation
* sinks no longer need to call `recycle`
* Remove the recycler arguments from all the apis that no longer need them
2018-09-19 16:59:42 -06:00
Michael Vines
6732a9078d
Clarify AfterTimestamp wire format
2018-09-19 13:28:35 -07:00
sakridge
2981076a14
Add solana-upload-perf to parse json from bench and upload to influx ( #1166 )
2018-09-19 13:16:55 -07:00
Carl
cd2d50e06c
Changed transition to restart Rpu rather than modify bank to prevent lock contention
2018-09-19 10:48:05 -06:00
Carl
8c8a4ba705
debugging commit
2018-09-19 10:48:05 -06:00
Carl
b10de40506
Made LEADER_ROTATION_INTERVAL settable so that integration tests don't time out
2018-09-19 10:48:05 -06:00
Carl
2030dfa435
Implement PR comments, tidy up
2018-09-19 10:48:05 -06:00
Carl
bfe64f5f6e
Added integration test for transitioning leader to validator to see that tpu pipeline can exit and restart a tvu. Fixed Tpu and broadcast stage so that exiting later stages in the pipeline also causes earlier stages to exit.
2018-09-19 10:48:05 -06:00
Carl
6d27751365
give fullnode ownership of state needed to dynamically start up a tpu or tvu for role transition
2018-09-19 10:48:05 -06:00
Carl
1fb1c0a681
added jointypes to the stages in the tpu involved in leader rotation
2018-09-19 10:48:05 -06:00
Carl
062f654fe0
formatted code
2018-09-19 10:48:05 -06:00
Carl
d3cb161c36
Added broadcast stage test for leader rotation exit
2018-09-19 10:48:05 -06:00
Carl
98b47d2540
Added check in broadcast stage to exit after transmitting last blob before leader rotation. Also added tests
2018-09-19 10:48:05 -06:00
Carl
f28ba3937b
Added check in write stage to exit when scheduled entry_height for leader rotation is detected
2018-09-19 10:48:05 -06:00
Carl
91cf14e641
Rewrote service trait join() method to allow thread join handles to return values other than ()
2018-09-19 10:48:05 -06:00
Pankaj Garg
0ee6c5bf9d
Read multiple entries in write stage ( #1259 )
...
- Also use rayon to parallelize to_blobs() to maximize CPU usage
2018-09-18 21:45:49 -07:00
Michael Vines
6dee632d67
Remove Signature from ApplySignature
2018-09-18 20:00:42 -07:00
Michael Vines
51e5de4d97
Log specific send_transaction error messages
2018-09-18 16:17:08 -07:00
Michael Vines
1f08b22c8e
Tweak log messages
2018-09-18 16:17:08 -07:00
Michael Vines
83ae5bcee2
Detect binary changes in serialized contract userdata
2018-09-18 16:17:08 -07:00
Michael Vines
339a570b26
Update comment
2018-09-18 16:17:08 -07:00
Pankaj Garg
5310b6e5a2
Move entry->blob creation out of write stage ( #1257 )
...
- The write stage will output vector of entries
- Broadcast stage will create blobs out of the entries
- Helps reduce MIPS requirements for write stage
2018-09-18 13:49:10 -07:00
Pankaj Garg
7d14f44a7c
Move register_entry_id() call out of write stage ( #1253 )
...
* Move register_entry_id() call out of write stage
- Write stage is MIPS intensive and has become a bottleneck for
TPU pipeline
- This will reduce the MIPS requirements for the stage
* Fix rust format issues
2018-09-18 11:42:25 -07:00
Michael Vines
aebf7f88e5
Various spelling fixes
2018-09-17 19:37:59 -07:00
Michael Vines
aac1571670
mint now uses the SystemContract instead of Budget
2018-09-17 18:02:40 -07:00
Anatoly Yakovenko
8bae75a8a6
system contract tests
2018-09-17 14:34:55 -07:00
Tyera Eulberg
c2f7ca9d8f
Change process_command return type and improve test
2018-09-17 13:45:47 -07:00
anatoly yakovenko
6ec0e42220
budget as separate contract and system call contract ( #1189 )
...
* budget and system contracts and verification
* contract check_id methods
* system call contract
* verify contract execution rules
* move system into its own file
* allocate before transfer for budget
* store error in budget context
* budget contract and tests without bank
* moved budget of of bank
2018-09-17 13:36:31 -07:00
sakridge
072b244575
Add perf counters for record/write stages ( #1240 )
2018-09-17 11:07:04 -07:00
Tyera Eulberg
7ac9d6c604
Create keygen helper function for use in Wallet CLI, print keypair statement
2018-09-17 11:53:33 -06:00
Tyera Eulberg
0125163190
Remove wallet.sh, update entrypoint syntax for wallet network argument
2018-09-17 11:53:33 -06:00
Tyera Eulberg
a06f4b1d44
Update wallet to trigger keygen if no keypair provided and no keypair found in default location
2018-09-17 11:53:33 -06:00
Tyera Eulberg
10daa015c4
Simplify timeout arg
2018-09-17 11:53:33 -06:00
Tyera Eulberg
0babee39a4
Update wallet to take network arg
2018-09-17 11:53:33 -06:00
Tyera Eulberg
27986d7abb
Standardize CLI help text
2018-09-16 15:17:10 -06:00
Tyera Eulberg
8b7edc6d64
Alphabetize
2018-09-16 15:17:10 -06:00
Michael Vines
7dfab867fe
Mark --outfile parameter as required
2018-09-16 10:49:02 -07:00
Anatoly Yakovenko
fd36954477
clippy
2018-09-15 05:12:53 -06:00
Jay Kickliter
fd51599fa8
Replace replace(..., None) with take()
...
This is strictly for simplicity, since Option::take() is imlemented with replace().
2018-09-15 05:12:09 -06:00
Pankaj Garg
e142aafca9
Use multiple sockets for receiving blobs on validators ( #1228 )
...
* Use multiple sockets for receiving blobs on validators
- The blobs that are broadcasted by leader or retransmitted by peer
validators are received on replicate_port
- Using reuse_addr/reuse_port, multiple sockets can be opened for
the same port
- This allows the kernel to queue data to user space app on multiple
socket queues, preventing over-running one queue
- This helps with reducing packets dropped due to queue over-runs
Fixes #1224
* Fixed failing tests
2018-09-14 16:56:06 -07:00
Michael Vines
4196cf43e8
cargo fmt
2018-09-14 16:37:49 -07:00
Tyera Eulberg
bcb3b3c21f
Add integration tests to wallet module
2018-09-14 08:21:33 -06:00
Tyera Eulberg
d8c9a1aae9
Add method to run local drone for tests
2018-09-14 08:21:33 -06:00
Tyera Eulberg
9ca2f5b3f7
Move all handling except network/gossip from /bin to wallet module
2018-09-14 08:21:33 -06:00
sakridge
4dc30ea104
Add recycler stats ( #1187 )
2018-09-13 14:49:48 -07:00
Pankaj Garg
90df6237c6
Implements recvmmsg() for UDP packets ( #1161 )
...
* Implemented recvmmsg() for UDP packets
- This change implements binding between libc API for recvmmsg()
- The function can receive multiple packets using one system call
Fixes #1141
* Added unit tests for recvmmsg()
* Added recv_mmsg() wrapper for non Linux OS
* Address review comments for recvmmsg()
* Remove unnecessary imports
* Moved target specific dependencies to the function
2018-09-13 14:41:28 -07:00
carllin
8706774ea7
Rewrote service trait join() method to allow thread join handles to return values other than () ( #1213 )
2018-09-13 14:00:17 -07:00
Pankaj Garg
1d7e87d430
Increase number of sockets for transaction processing
2018-09-13 14:22:07 -06:00
sakridge
1a4cd763f8
Fix missing recycle in recv_from ( #1205 )
...
In the error case that i>0 (we have blobs to send)
we break out of the loop and do not push the allocated r
to the v array. We should recycle this blob, otherwise it
will be dropped.
2018-09-13 08:29:18 -07:00
Michael Vines
f06113500d
bench-tps/net sanity: add ability to check for unexpected extra nodes
2018-09-12 15:38:57 -07:00
Rob Walker
9ab5692acf
fix "leak" in Blob::recv_from ( #1198 )
...
* fix "leak" in Blob::recv_from
fixes #1199
2018-09-12 14:45:43 -07:00
Rob Walker
b52230097e
groom Fullnode's new_with_bank() to match new() more
2018-09-12 09:24:42 -07:00
Rob Walker
a8fdb8a5a7
use a single BlobRecycler per fullnode
2018-09-11 16:56:54 -07:00
sakridge
297f859631
Change '>=' back to '>' to fix recycling of blobs/packets ( #1192 )
...
Recycler will have a strong ref to the item so it will be at
least 1, >= will always prevent recycling.
2018-09-11 16:52:45 -07:00
Rob Walker
b313b7f6f9
Revert "move rpc_server to drop() semantics instead of having its own thread"
...
This reverts commit 40aa0654fa
.
2018-09-10 22:48:33 -07:00
Rob Walker
c3fc98c48f
use gossip to find the leader for every airdrop request
2018-09-10 21:29:45 -07:00
Rob Walker
40aa0654fa
move rpc_server to drop() semantics instead of having its own thread
2018-09-10 20:25:53 -07:00
Michael Vines
bace2880d0
Correct spelling
2018-09-10 19:58:21 -07:00
sakridge
9d80eefb81
Log the number of accounts each 250k txes ( #1178 )
2018-09-10 17:40:00 -07:00
Michael Vines
2be0dbddbb
Correct spelling
2018-09-10 13:48:43 -07:00
Rob Walker
a91b785ba5
move fullnode trace generation into crdt
2018-09-10 13:47:57 -07:00
Tyera Eulberg
0ef05de889
Add sleep to prevent spinning thread
2018-09-10 12:50:28 -07:00
Greg Fitzgerald
a093d5c809
Fix erasure build
2018-09-10 11:40:26 -06:00
Greg Fitzgerald
fc64e1853c
Initialize Window, not SharedWindow
...
Wrap with Arc<RwLock>> when/if needed, no earlier.
2018-09-10 11:40:26 -06:00
Greg Fitzgerald
7f669094de
Split window into two modules
2018-09-10 11:40:26 -06:00
Greg Fitzgerald
5025d89c88
Inline window method implementations
2018-09-10 11:40:26 -06:00
Greg Fitzgerald
2b44c4504a
Use WindowUtil for more idiomatic code
2018-09-10 11:40:26 -06:00
Greg Fitzgerald
d2c9beb843
Add a trait to pretend Window is an object
2018-09-10 11:40:26 -06:00
Michael Vines
9e6d3bf532
Correct spelling
2018-09-10 09:29:01 -07:00
anatoly yakovenko
a89b611e9e
comments ( #1165 )
2018-09-09 07:07:38 -07:00
Rob Walker
97c3125a78
improve localnet-sanity's robustness ( #1160 )
...
* fix poll_gossip_for_leader() loop to actually wait
for 30 seconds
* reduce reuseaddr use to only when necessary,
try to avoid already bound sockets
* move nat.rs to netutil.rs
* add gossip tracing to thin_client and bench-tps
2018-09-09 04:50:43 +09:00
Michael Vines
e8206cb2d4
Echo the network address before entering a quiet polling loop
2018-09-07 21:20:00 -07:00
anatoly yakovenko
c34d911eaf
Migrate Budget DSL to use the Account state ( #979 )
...
* Migrate Budget DSL to use the Account state instead of global bank data structures.
* Serialize Instruction into Transaction::userdata.
* Store the pending set in the Account::userdata
* Enforce the token balance rules on contract execution. This becomes the entry point for generic contracts.
* This pr will have a performance impact on the bank. The next set of changes will fix this by locking each account during multi threaded execution of all the contracts.
* With this change a contract transaction needs to store its state under an address. That address could be the destination of the tokens, or any random address. For the latter, an extra step would be needed to claim the tokens which isn't implemented by budget_dsl at the moment.
* test tracking issue 1157
2018-09-07 20:18:36 -07:00
Rob Walker
bf29590f41
WSL needs ReuseAddr in addition to ReusePort (which it doesn't honor) ( #1149 )
2018-09-08 07:28:22 +09:00
Rob Walker
51b27779c9
client changes for TODOs and looping ( #1138 )
...
* remove client.sh from snap
* default to ephemeral instead of ~/.config key
* rework CLI for bench-tps
* remote multinode-demo stuff from remote-client.sh
* remove multinode-demo from remote-sanity and localnet-sanity
2018-09-08 07:07:10 +09:00
Tyera Eulberg
5169c8d08f
Add method to return hash of bank state
2018-09-07 15:38:53 -06:00
Michael Vines
4b47abd3bf
Fix --num-nodes argument parsing
2018-09-07 12:20:42 -07:00
Greg Fitzgerald
71a617b4dc
Fix erasure build
2018-09-07 13:18:19 -06:00
Greg Fitzgerald
a722802c95
Window write lock to read lock
2018-09-07 13:18:19 -06:00
Greg Fitzgerald
e9f44b6661
window -> window_service
2018-09-07 13:18:19 -06:00
Greg Fitzgerald
9693de1867
Reposition parameters
2018-09-07 13:18:19 -06:00
Greg Fitzgerald
f7ea95aed1
Hoist lock, reposition parameters
2018-09-07 13:18:19 -06:00
Greg Fitzgerald
f07ce59be8
Toggle parameters
2018-09-07 13:18:19 -06:00
Greg Fitzgerald
da423b6cf0
Hoist read lock
2018-09-07 13:18:19 -06:00
Greg Fitzgerald
d5f60b68e4
Hoist window write lock
2018-09-07 13:18:19 -06:00
Greg Fitzgerald
78b3a8f7f9
Hoist repair_window() branches
...
This probably would have been done if repair_window() was unit-tested.
2018-09-07 13:18:19 -06:00
Greg Fitzgerald
d77699c126
Do the easy check first
...
All functions above operate on immutable values, so this shouldn't
change functionality, but no repair_window() tests to be certain.hI
2018-09-07 13:18:19 -06:00
Greg Fitzgerald
09ba0dae15
Remove redundant clone()
2018-09-07 13:18:19 -06:00
Greg Fitzgerald
a5c7575207
Rewrite find_next_missing, call it clear_slots
2018-09-07 13:18:19 -06:00
Greg Fitzgerald
50f040530b
Remove redundant cast
2018-09-07 13:18:19 -06:00
Greg Fitzgerald
7f99c90539
Simplify using early return and Result::ok()
2018-09-07 13:18:19 -06:00
Greg Fitzgerald
d8564b725c
Don't reference window to get each slot
2018-09-07 13:18:19 -06:00
Greg Fitzgerald
e4de25442a
Hoist write lock
...
It needed to be passed the lock before, because it contained a
branch where one side didn't require locking. Now that that
defensive programming was hoisted, we can hoist the write lock
as well, leaving a simpler function for unit testing.
2018-09-07 13:18:19 -06:00
Greg Fitzgerald
3b2ea8fd40
Hoist untested branch in window
...
If there were unit tests for this function, the author would have
written it this way to make their own life easier.
2018-09-07 13:18:19 -06:00
Greg Fitzgerald
0fa27f65bb
Use the default Pubkey formatter instead of debug_id()
2018-09-06 16:31:47 -06:00