Commit Graph

1839 Commits

Author SHA1 Message Date
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
sakridge
8f94e3f7ae Buffer tokens when switching directions to prevent errors (#1126)
Even if transactions are dropped, accounts will have buffer
of tokens. Should reduce or eliminate AccountNotFound errors seen in the
leader while bench-tps is running.
2018-09-06 14:20:01 -07:00
Pankaj Garg
05460eec0d Open multiple sockets for transaction UDP port (#1128)
* Reuse UDP port and open multiple sockets for transaction address

* Fixed failing crdt tests

* Add tests for reusing UDP ports

* Address review comments

* Updated bench-streamer to use multiple receive sockets

* Fix minimum number of recv sockets for bench-streamer

* Address review comments

Fixes #1132

* Moved bind_to function to nat.rs
2018-09-06 14:13:40 -07:00
sakridge
d9e4bce6ad Add drop stats to bench-tps (#1127)
See how many transactions made it through
2018-09-05 11:58:41 -07:00