Commit Graph

1649 Commits

Author SHA1 Message Date
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