Commit Graph

2334 Commits

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