Rob Walker
fef93958c8
fixups, tests
2018-08-01 14:42:58 -07:00
Rob Walker
cae88c90b1
add a persistent ledger of index and data files
2018-08-01 14:42:58 -07:00
Rob Walker
1a8da769b6
...
2018-08-01 14:42:58 -07:00
Rob Walker
ff254fbe5f
re-instate traces
2018-08-01 09:08:38 -07:00
Rob Walker
05153e4884
de-trace this function, new blob is not a dup
2018-08-01 09:08:38 -07:00
Rob Walker
2ece27ee3a
fix leak
2018-08-01 09:08:38 -07:00
Greg Fitzgerald
a58df52205
Fix build
...
Last two PRs crossed in flight. A keypair is now required for all
types of FullNode, not just validators.
2018-08-01 08:53:21 -07:00
sakridge
2ea6f86199
Submit leader's vote after observing 2/3 validator votes ( #780 )
...
* fixup!
* fixups!
* send the vote and count it
* actually vote
* test
* Spelling fixes
* Process the voting transaction in the leader's bank
* Send tokens to the leader
* Give leader tokens in more cases
* Test for write_stage::leader_vote
* Request airdrop inside fullnode and not the script
* Change readme to indicate that drone should be up before leader
And start drone before leader in snap scripts
* Rename _kp => _keypair for keypairs and other review fixups
* Remove empty else
* tweak test_leader_vote numbers to be closer to testing 2/3 boundary
* combine creating blob and transaction for leader/validator
2018-07-31 22:07:53 -07:00
pgarg66
7c5172a65e
Converted sigverify disable flag to runtime check instead of "cfg" ( #799 )
2018-07-31 16:54:24 -07:00
Michael Vines
821e3bc3ca
Avoid race between test_lograte and test_lograte_env
2018-07-31 16:08:01 -07:00
Rob Walker
5dd2f737a3
clear out old blobs in find_next_missing
2018-07-31 15:54:32 -07:00
anatoly yakovenko
308b6c3371
Follow Shared prefix convention for Window alias ( #798 )
...
Follow Shared prefix convention for Window alias.
2018-07-30 16:56:01 -07:00
Rob Walker
ea7fa11b3e
use size_of() instead of serialized_size() and magic number 8
2018-07-30 16:48:58 -07:00
Michael Vines
95b98b3845
Fix --addr option
2018-07-30 16:36:26 -07:00
Michael Vines
f27613754a
Report number of nodes found on failure too
2018-07-30 16:36:26 -07:00
Michael Vines
79ece53e3c
Don't panic the tokio worker thread when deserialize() fails
2018-07-30 14:56:53 -07:00
Rob Walker
f341b2ec10
fixups
2018-07-30 14:26:44 -07:00
Rob Walker
167b079e29
fixups
2018-07-30 14:26:44 -07:00
Rob Walker
7ded5a70be
fixups
2018-07-30 14:26:44 -07:00
Rob Walker
fc476ff979
implement iterator for parsing length + data ledger
2018-07-30 14:26:44 -07:00
Rob Walker
c3279c8a00
chugga
2018-07-30 14:26:44 -07:00
Rob Walker
e471ea41da
fixups
2018-07-30 14:26:44 -07:00
Rob Walker
552d4adff5
use a binary ledger: newline-separated, newline-escaped entries instead of json
2018-07-30 14:26:44 -07:00
pgarg66
0c33c9e0d7
Dynamic network test changes ( #795 )
...
- No sigverify if feature sigverify_cpu_disable is used
- Purge validators in the test if lag count increases beyond
SOLANA_DYNAMIC_NODES_PURGE_LAG environment variable
- Other useful log messages in the test
2018-07-30 13:57:10 -07:00
Michael Vines
fae9fff24c
Unify logging initialization
2018-07-29 19:08:27 -07:00
Michael Vines
79924e407c
Include nanoseconds in log timestamp
2018-07-29 19:08:27 -07:00
Michael Vines
af1a2e83bc
Don't panic again when waiting for a panicked validator thread
2018-07-28 16:35:35 -07:00
Michael Vines
029e2db2cf
Improve assert message
2018-07-28 10:40:50 -07:00
sakridge
0b47404ba6
Check for default leader and use cmp::max for a bit nicer code ( #779 )
2018-07-27 15:53:31 -07:00
Rob Walker
50e1e0ae47
use rust's rotate (in place, yay!)
2018-07-27 11:44:02 -07:00
Michael Vines
538c3b63e1
Log the last_id being voted on
2018-07-27 11:27:51 -07:00
Michael Vines
678b2870ff
i
2018-07-27 11:11:37 -07:00
Michael Vines
308d8c254d
poll_get_balance no longer fails intermittently for zero balance accounts
...
While polling for a non-zero balance, it's not uncommon for one of the
get_balance requests to fail with EWOULDBLOCK. Previously when a get_balance
request failure occurred on the last iteration of the polling loop,
poll_get_balance returned an error even though the N-1 iterations may have
successfully retrieved a balance of 0.
2018-07-26 21:41:07 -07:00
Michael Vines
f11aa4a57b
Ensure non-zero exit code if 'balance' command fails
2018-07-26 21:41:07 -07:00
Michael Vines
7672506b45
Validators now vote once a second regardless
2018-07-26 17:07:42 -07:00
Rob Walker
dd819cec3d
fix off by one in packet.rs
2018-07-26 09:24:44 -07:00
Rob Walker
cbb8dee360
rework broadcast to understand a separate transmit index for coding blobs
2018-07-25 20:45:16 -07:00
Rob Walker
e0cdcb0973
employ the simple choice for broadcast table of coding blobs: round-robin
2018-07-25 20:45:16 -07:00
Rob Walker
a6a2a745ae
fix broadcast of erasure coding blobs
...
erasure coding blobs were being counted as window slots, skewing transmit_index
erasure coding blobs were being skipped over for broadcast, because they're
only generated when the last data blob in an erasure block is added to the
window.... rewind the index to pick up and broadcast those coding blobs
2018-07-25 20:45:16 -07:00
Michael Vines
f372840354
Collect some datapoints while bench-tps is running
2018-07-25 20:15:43 -07:00
Stephen Akridge
212874e155
Use BlobError for get_size return
2018-07-25 15:54:04 -07:00
Rob Walker
75212f40e7
fix off by one for send_to() of blob
2018-07-25 15:16:56 -07:00
Rob Walker
6fde65577e
fixes #756
2018-07-25 11:07:03 -07:00
Stephen Akridge
edf2ffaf4e
Reduce complexity of main for clippy
...
...and readability
2018-07-25 10:16:46 -07:00
Stephen Akridge
6c275ea5ef
More knobs. Arg for tx count per batch and also sustained mode
...
sustained mode overlaps tx generation with transfer. This mode seems
to have lower peak performance but higher average performance
2018-07-25 10:16:46 -07:00
Stephen Akridge
23ed65b339
Transfer and sign at the same time in bench-tps
2018-07-25 10:16:46 -07:00
Rob Walker
9c7913ac9e
trying to raise an error
2018-07-25 08:12:20 -07:00
Rob Walker
8b01e6ac0b
implement Blob::get_size(), the counterpart of Blob::set_size()
2018-07-25 08:12:20 -07:00
Rob Walker
ff5854396a
deserialize using get_data_size(), which refers to blob.data()'s length,
...
instead of using msg.meta.size, which refers to the entire blob's length
fixes #752
2018-07-25 08:12:20 -07:00
Michael Vines
f0725b4900
Avoid panicking if poll_get_balance() fails while in the transaction loop
2018-07-24 23:31:28 -07:00
Michael Vines
327ba5301d
Log token balance throughout the transfer loop
2018-07-24 22:40:12 -07:00
Michael Vines
aa2104a21b
Reclaim tokens before exiting to avoid leaking tokens
2018-07-24 21:40:02 -07:00
Michael Vines
0206020104
Make airdrops more robust
2018-07-24 21:40:02 -07:00
Rob Walker
33bd1229d9
make next_entries() smarter about fitting Transactions into a Blob
2018-07-24 21:38:06 -07:00
Michael Vines
195098ca2b
Failure test case
2018-07-24 21:38:06 -07:00
Stephen Akridge
6bd18e18ea
Add error messages to ledger verify
2018-07-24 17:35:41 -07:00
Rob Walker
2b528e2225
fixups
2018-07-24 13:04:34 -07:00
Rob Walker
75505bbd72
fixups
2018-07-24 13:04:34 -07:00
Rob Walker
e1fc7444f9
fixups
2018-07-24 13:04:34 -07:00
Rob Walker
fcdb0403ba
eliminate unused parameter received, this branch fixes #636
2018-07-24 13:04:34 -07:00
Rob Walker
caeb55d066
placate clippy and reduce replicode
2018-07-24 13:04:34 -07:00
Rob Walker
f11e60b801
fix major bug: re-used blobs need to have their flags cleared
...
plus: lots of additional debug-ability
2018-07-24 13:04:34 -07:00
Rob Walker
54f2146429
fixups
2018-07-24 13:04:34 -07:00
Rob Walker
f60ee87a52
zero the tails of data blobs during generate() and recover() to enable blob reuse
2018-07-24 13:04:34 -07:00
Rob Walker
9c06fe25df
enhance unit test to fail when erasure encodes stray bytes of data blobs
2018-07-24 13:04:34 -07:00
Rob Walker
1eec8bf57f
fixups
2018-07-24 13:04:34 -07:00
Rob Walker
ddb24ebb61
fixups
2018-07-24 13:04:34 -07:00
Rob Walker
a58c83d999
prevent infinite loop on window wraparound
2018-07-24 13:04:34 -07:00
Rob Walker
6656ec816c
protect generate and recover from u64->usize casting issues
2018-07-24 13:04:34 -07:00
Rob Walker
8d2bd43100
fixups
2018-07-24 13:04:34 -07:00
Rob Walker
429ea98ace
mutable-coding-blocks
2018-07-24 13:04:34 -07:00
Rob Walker
3d80926508
fixups
2018-07-24 13:04:34 -07:00
Rob Walker
d713e3c2cf
send coding in broadcast(), fixups
2018-07-24 13:04:34 -07:00
Rob Walker
5d20d1ddbf
get test_window_recover_basic() passing
2018-07-24 13:04:34 -07:00
Rob Walker
257acdcda1
building now
2018-07-24 13:04:34 -07:00
Rob Walker
dab98dcd81
coded => coding
2018-07-24 13:04:34 -07:00
Rob Walker
99653a4d04
rework erasure to have data and coding blobs side-by-side in window
2018-07-24 13:04:34 -07:00
Rob Walker
dda563a169
document process_blob()
2018-07-24 13:04:34 -07:00
Michael Vines
813e438d18
Improve panic message
2018-07-24 11:20:13 -07:00
Michael Vines
48b5344586
Check for 0 TPS explicitly
2018-07-23 16:51:39 -07:00
Michael Vines
686b7d3737
Report panics if metrics are setup
2018-07-23 16:51:39 -07:00
Michael Vines
7c65e2fbfc
Rename variable to improve readability
2018-07-23 16:51:39 -07:00
Stephen Akridge
b3f823d544
Alternate between token reclaim and distribution
2018-07-23 13:17:52 -07:00
Stephen Akridge
ea21c7a43e
Limit bench-tps last_id poll to prevent infinite loop
2018-07-23 13:17:52 -07:00
Stephen Akridge
437fb1a8d7
Add -a argument to client in case you want to override the address
...
advertised by the client
2018-07-23 13:17:52 -07:00
Michael Vines
c707b3d2e7
Display the total number of transactions for each node once complete
2018-07-22 23:19:33 -07:00
Michael Vines
4ecd0a0e45
Improve bench-tps logging
2018-07-22 16:26:49 -07:00
Michael Vines
cdcf59ede0
Display a list of all discovered nodes
2018-07-22 11:32:44 -07:00
Greg Fitzgerald
69688a18c7
Fix clippy warnings
...
Seems clippy is not linting any of the benches.
2018-07-21 11:36:20 -04:00
Greg Fitzgerald
7193bf28b6
Move streamer bench into standalone executable
...
It doesn't make use of criterion (or libtest)
2018-07-21 11:36:20 -04:00
Greg Fitzgerald
637f890b91
Rename client-demo to bench-tps
2018-07-21 11:36:20 -04:00
Greg Fitzgerald
23428b0381
Migrate drone to poll_for_signature
2018-07-20 20:33:55 -04:00
Greg Fitzgerald
0e305bd7dd
Add poll_for_signature
2018-07-20 20:33:55 -04:00
Greg Fitzgerald
c068ca4cb7
Return Signature from transfer_signed and send_airdrop
2018-07-20 20:33:55 -04:00
Greg Fitzgerald
6a8379109d
Sleep between retries
...
Don't congest a congested network.
2018-07-20 20:33:55 -04:00
Stephen Akridge
cba3b35ac9
Change not_enough_peers to the default log rate
2018-07-20 11:37:12 -07:00
Stephen Akridge
313fed375c
Add counter for tx count and limit error messages
2018-07-20 11:37:12 -07:00
Greg Fitzgerald
1e63702c36
cargo fmt
2018-07-20 13:09:01 -04:00
Martius Lim
478ee9a1c4
move tests for 'is_valid_address()' into its own test
2018-07-20 13:09:01 -04:00
Martius Lim
eb1e5dcce4
add test for 'is_valid_address()'
2018-07-20 13:09:01 -04:00
Martius Lim
84225beeef
replace 'daddr' checks with 'is_valid_address()'
2018-07-20 13:09:01 -04:00
Greg Fitzgerald
bcc247f25f
Clarify code comment
2018-07-20 12:31:23 -04:00
pgarg66
686e61d50c
Display max TPS from all nodes at end of client demo ( #716 )
...
- Also lists node with 0 TPS and overall average TPS
2018-07-19 20:09:57 -07:00
Michael Vines
a67f58e9a5
Add -c option to easily interrogate the number of nodes
2018-07-19 09:41:09 -07:00
Rob Walker
0696f9f497
flush writer, makes partial deserialization a bit less likely
2018-07-18 22:53:33 -07:00
Michael Vines
3f659a69fd
Prevent nodes from gossiping with themselves with different ids
2018-07-18 19:38:38 -07:00
anatoly yakovenko
2c62be951f
boot invalid height ( #688 )
2018-07-18 18:10:53 -07:00
Stephen Akridge
2348733d6c
remove drone port magic number
2018-07-19 02:01:23 +02:00
anatoly yakovenko
7f810a29ff
Purge leader ( #687 )
...
* purge leader
* fixup!
* fixup!
2018-07-18 14:39:43 -07:00
Michael Vines
5deb34e5bd
Little more trace! logging
2018-07-18 12:54:50 -07:00
Michael Vines
39df087902
Permit more than the requested amount of nodes
2018-07-18 12:07:50 -07:00
Greg Fitzgerald
28af9a39b4
Don't clone before borrowing
...
Clippy told us to change function parameters to references, but
wasn't able to then tell us that the clone() before borrowing
was superfluous. This patch removes those by hand.
No expectation of a performance improvement here, since we were
just cloning reference counts. Just removes a bunch of noise.
2018-07-18 08:04:31 -04:00
anatoly yakovenko
8cf5620b87
crdt_insert_new_entry_counter ( #680 )
2018-07-17 22:55:53 -07:00
Anatoly Yakovenko
05c5603879
error counter
2018-07-17 17:28:23 -07:00
Anatoly Yakovenko
c2c48a5c3c
write stage broadcast counters
2018-07-17 17:28:23 -07:00
pgarg66
4af556f70e
Added tests for bad gossip address ( #672 )
2018-07-17 16:27:46 -07:00
anatoly yakovenko
8bad411962
env variable for default metrics rate that gets set for counters ( #670 )
...
* env variable for default metrics rate that gets set for counters
* ignore if env rate is set to 0
* use a slow rate by default
* fixed test
2018-07-17 15:26:10 -07:00
Anatoly Yakovenko
3d45b04da8
review comments
2018-07-17 15:51:32 -04:00
Anatoly Yakovenko
9e2f26a5d2
review comments
2018-07-17 15:51:32 -04:00
Anatoly Yakovenko
a016f6e82e
bulds
2018-07-17 15:51:32 -04:00
Anatoly Yakovenko
72282dc493
fast exit dynamic test
2018-07-17 15:51:32 -04:00
Michael Vines
47a22c66b4
Include program name in panic metric
2018-07-17 12:13:22 -07:00
Michael Vines
fb11d8a909
Install panic hook
2018-07-17 12:13:22 -07:00
Michael Vines
7d872f52f4
Add set_panic_hook
2018-07-17 12:13:22 -07:00
Michael Vines
d882bfe65c
Ignore/log RequestWindowIndex from self
2018-07-17 12:12:54 -07:00
pgarg66
103584ef27
Use public IP for client gossip, if UPnP fails ( #665 )
2018-07-17 11:23:32 -07:00
anatoly yakovenko
1fb537deb9
Do not generate gossip requests to unspecified addresses ( #657 )
...
* Do not generate gossip requests to unspecified addresses
* review comments
2018-07-17 09:44:48 -07:00
anatoly yakovenko
dd0c1ac5b2
Error counters for streamer ( #658 )
...
* error counters for streamer
* more counters
2018-07-17 08:20:35 -07:00
anatoly yakovenko
d8c9655128
Dynamic test assert ( #643 )
...
* log responder error to warn
* log responder error to warn
* fixup!
* fixed assert
* fixed bad ports issue
* comments
* test for dummy address in Crdt::new instaad of NodeInfo::new
* return error if ContactInfo supplied to Crdt::new cannot be used to connect to network
* comments
2018-07-16 19:31:52 -07:00
anatoly yakovenko
09f2d273c5
less intrusive counters ( #655 )
...
* less intrusive counters
* fixed arg
* tests
* comments
2018-07-16 18:33:50 -07:00
pgarg66
0d85b43901
Fix input parameter processing for client num nodes ( #653 )
2018-07-16 17:23:35 -07:00
anatoly yakovenko
015b7a1ddb
dash for namespaces ( #649 )
2018-07-16 15:55:54 -07:00
Anatoly Yakovenko
ab3e460e64
insert votes as they are observed
2018-07-16 13:39:20 -07:00
Anatoly Yakovenko
4631af5011
counters for vote not found
2018-07-15 20:31:23 -06:00
Michael Vines
5d28729b2a
Use ed25519_init() for faster failures
2018-07-15 20:30:32 -06:00
Michael Vines
94d015b089
Demote log level
2018-07-14 20:42:00 -07:00
Michael Vines
2b77f62233
Poll longer while waiting for an airdrop
2018-07-14 17:10:44 -07:00
Michael Vines
30e50d0f70
Log airdrop amount and client public key
2018-07-13 22:41:52 -07:00
Michael Vines
1f9152dc72
Detect and report airdrop failures
2018-07-13 18:08:28 -07:00
Michael Vines
084dbd7f58
Fail gracefully when leader.json is missing
2018-07-13 17:24:25 -07:00
Michael Vines
18e6ff4167
Fail gracefully when keypair file is unreadable
2018-07-13 10:00:55 -07:00
Rob Walker
710fa822a0
fixups
2018-07-12 22:51:55 -07:00
Rob Walker
34ea483736
step two: supply a ledger file argument to fullnode in the demo
...
(also whack unused "myip.sh", even though it was pretty)
2018-07-12 22:51:55 -07:00
Rob Walker
a3ff40476e
Banish stdin/stdout for ledger
...
step one: accept a "ledger file" argument instead of "outfile"
2018-07-12 22:51:55 -07:00
Greg Fitzgerald
3d9acdd970
Fix nightly
2018-07-12 21:50:28 -06:00
Greg Fitzgerald
f06a8dceda
Fix keygen docs
...
Thanks @rob-solana
2018-07-12 21:50:28 -06:00
Greg Fitzgerald
545f4f1c87
Pass the owner's keypair to fullnode-config
2018-07-12 21:50:28 -06:00
Greg Fitzgerald
77543d83ff
Fix default keypair paths
2018-07-12 21:50:28 -06:00
Greg Fitzgerald
eb6a30cb7c
In Wallet, make --tokens required and --to optional
2018-07-12 21:50:28 -06:00
Greg Fitzgerald
97372b8e63
Add --outfile option to solana-keygen
2018-07-12 21:50:28 -06:00