Rob Walker
835f29a178
off by 2
2018-08-13 15:12:12 -07:00
Pankaj Garg
bf15cad36b
Add get_finality request and use it from multinode test ( #941 )
2018-08-13 08:55:13 -07:00
anatoly yakovenko
288ed7a8ea
Vote should be valid ( #945 )
...
* test that fails
* fix for test
* rename
2018-08-12 18:19:54 -07:00
anatoly yakovenko
f07c038266
Fix bank coalescing ( #949 )
...
* fix bank coalescing
* comments
* fix bench
* fix bench
* backout banking stage coalescing
* 120 nodes
* 100
2018-08-12 10:04:21 -07:00
Rob Walker
5dbcb43abd
more enhancements
2018-08-10 19:53:58 -07:00
Rob Walker
dd1eefaf62
change verify-internal to precheck
...
update to new ledger API
2018-08-10 19:53:58 -07:00
Rob Walker
35de159d00
better error messages
2018-08-10 19:53:58 -07:00
Rob Walker
546a1e90d5
clippy fixups
2018-08-10 19:53:58 -07:00
Rob Walker
b033e1d904
enhance ledger-tool
...
* add json, which does the thing with json, move print to Rust's {:?}
* add --head NUM, to limit how much work gets done for print, json, verify
* add verify-internal, which very carefully checks ledger format without
trying first to "recover" it
* exit with errors on mis-usage
2018-08-10 19:53:58 -07:00
Rob Walker
96d6985895
rework read_ledger, LedgerWriter, and LedgerWindow for recover()
...
fixes #910
2018-08-10 18:07:23 -07:00
Stephen Akridge
a206f2570d
Add hostname to metrics on panic
2018-08-10 17:08:40 -07:00
anatoly yakovenko
2318ffc704
Use a different counter for validator account not found errors. ( #931 )
...
* Use a different counter for validator account not found errors. This is a usefull signal of something going wrong with the ledger
2018-08-10 15:18:44 -07:00
Rob Walker
bbf9ea89c5
add some flushing to ledger
2018-08-10 11:41:31 -07:00
Greg Fitzgerald
bca2294655
cargo fmt
2018-08-09 13:41:37 -06:00
Greg Fitzgerald
4a980568ac
Rename sig variables to signature
...
We'll avoid introducing three-letter terms to free up the namespace
for three-letter acronyms.
But recognize the term "sigverify", a verb, to verify a digital
signature.
2018-08-09 13:41:37 -06:00
Greg Fitzgerald
9d436fc5f8
Rename pk variables to pubkey
2018-08-09 13:41:37 -06:00
Greg Fitzgerald
ad331e6d56
Rename PublicKey type to Pubkey
...
Recognize pubkey as a noun meaning the public key of a keypair.
2018-08-09 13:41:37 -06:00
Greg Fitzgerald
d7e4e57548
Rename public_key variables to pubkey
2018-08-09 13:41:37 -06:00
Greg Fitzgerald
b2067d2721
Rename kp variables to keypair
2018-08-09 13:41:37 -06:00
Greg Fitzgerald
c2bbe4344e
Rename KeyPair to Keypair
2018-08-09 13:41:37 -06:00
Greg Fitzgerald
ca7d4c42dd
Rename cur_hashes to num_hashes
2018-08-09 10:15:10 -06:00
Rob Walker
ce8a4fa831
allow received to outpace window, we're already constraining repair
...
correctly identify sender in ledger_window repair responses, enabling re-transmission
2018-08-08 15:10:44 -07:00
Stephen Akridge
8331aab26a
Enable Crdt debug messages to debug validators
2018-08-08 14:22:20 -07:00
Rob Walker
9783d47fd1
write a "unit" test for WindowLedger (it was working ;)
...
clear flags on fresh blobs, lest they sometimes impersonate coding blobs...
fix bug: advance *received whether the blob_index is in the window or not,
failure to do so results in a stalled repair request pipeline
2018-08-08 04:28:09 -07:00
Stephen Akridge
38be61bd22
Check for log level before doing perf counter work
...
Perf counters, especially when running the dynamic test can cause
functions like crdt::apply_updates to be really slow (>500ms).
2018-08-08 00:16:53 -07:00
Rob Walker
c64e2acf8b
set destination address when for ledger window repair responses
2018-08-07 23:31:01 -07:00
Stephen Akridge
a200cedb4b
Lower UDP data size to 64k - 128 bytes
...
rust API gives errors for packets larger than ~65500 and
wikipedia says 65507 is the max size, lowering this avoids the errors.
2018-08-07 18:39:36 -07:00
Rob Walker
999534248b
fixups
2018-08-07 17:27:53 -07:00
Rob Walker
fbc754ea25
plug in LedgerWindow
...
fixes #872
2018-08-07 17:27:53 -07:00
pgarg66
1b6d472cb2
Fixed counters for coalescing and broadcast index ( #900 )
2018-08-07 16:46:48 -07:00
Rob Walker
2a0025bb57
get buffered IO back for ledger
2018-08-07 15:34:15 -07:00
pgarg66
64d6d3015a
Counters for broadcasted blob idx and coalesced packets ( #897 )
2018-08-07 14:54:26 -07:00
Stephen Akridge
90550c5b58
Switch to slice arguments and remove clippy exceptions
2018-08-07 14:43:44 -07:00
Stephen Akridge
1ac5d300a4
Rearrange start hash for process_ledger and add a unit test
2018-08-07 14:10:36 -07:00
pgarg66
16772d3d51
Coalesce multiple blobs if received close together ( #869 )
...
- This helps reduce unnecessary growth of window if small blobs
are received in small space of time
2018-08-07 10:29:57 -07:00
Pankaj Garg
ceb5a76609
Refactor validator windowing
...
- a unit test for windowing functions
- issue #857
2018-08-07 08:17:32 -07:00
Stephen Akridge
db2392a691
Use last_id from the entries stream instead of last_id from bank
...
bank will only register ids when has_more is not set because those are
the only ids it has advertised, so it will not register all ids,
however the entry stream will contain unbroken last_id chain, so we
need to track that to get the correct start hash.
2018-08-07 08:14:06 -07:00
Michael Vines
575179be8e
y
2018-08-06 23:55:00 -07:00
Michael Vines
5b6ffaecc0
s/r$/f/
2018-08-06 23:36:09 -07:00
Kazuyoshi Kato
efc72b9572
Support -V/--version on all CLI apps
...
All CLI apps that use clap (in other words, except for bench-streamer)
can use crate_version! to take the version from Cargo.toml.
This change addresses #700 .
2018-08-06 22:03:58 -07:00
Michael Vines
5dc7177540
Remove manually created help text, use clap's text instead.
2018-08-06 19:15:52 -07:00
Michael Vines
78a4b1287d
Initialize logger
2018-08-06 19:04:04 -07:00
Michael Vines
c5001869f1
Add verify subcommand
2018-08-06 19:04:04 -07:00
Stephen Akridge
7c31f217d5
Add voting metric even when there are not enough validators
2018-08-06 15:58:10 -07:00
Rob Walker
3beb38ac8a
/tmp/farf no good on multi-user machine
2018-08-06 14:53:40 -07:00
Michael Vines
8cbaa19d2e
Report the address that failed to bind
2018-08-06 11:21:25 -07:00
Rob Walker
63d2b2eb42
adjust bank notion of entry_count to aid debugging
2018-08-06 11:20:52 -07:00
Michael Vines
e02da9a15a
Clean up tx_count usage
2018-08-06 11:00:25 -07:00
Michael Vines
ae111a131c
Condense stdout
2018-08-06 11:00:25 -07:00
Michael Vines
4402e1128f
Cleanup
2018-08-06 11:00:25 -07:00
Michael Vines
f55bb6d95c
Send/confirm a loopback payment after each batch of transactions
2018-08-06 11:00:25 -07:00
Rob Walker
0514f5e573
sync() apparently imposes a serious performance penalty
2018-08-06 08:51:41 -07:00
Rob Walker
637d403415
move bank.process_entries() to firsties
2018-08-06 08:51:41 -07:00
Rob Walker
9fabd34156
remove trace! calls, re-arrange replicate_requests to have the bank earlier
2018-08-06 08:51:41 -07:00
Rob Walker
039ed01abf
on 2nd thought: do not copy_ledger() for this test
2018-08-06 08:51:41 -07:00
Rob Walker
ead0eb2754
move copy_ledger() back into ledger.rs
...
Don't recover() for copy(), as copy() is already tolerant of things
recover() guards against. Note: recover() is problematic if the ledger is
"live", i.e. is currently being written to.
2018-08-06 08:51:41 -07:00
Rob Walker
c3db2df7eb
tweak random access ledger
...
* add recover_ledger() to deal with expected common ledger corruptions
* add verify_ledger() for future use cases (ledger-tool)
* increase ledger testing
* allow replicate stage to run without a ledger
* ledger-tool to output valid json
2018-08-06 08:51:41 -07:00
Rob Walker
ee6c15d2db
start on ledger recovery with a description of what that might mean
2018-08-06 08:51:41 -07:00
Rob Walker
715a3d50fe
Revert "Revert "clippy fixup""
...
This reverts commit d173e6ef87
.
2018-08-06 08:51:41 -07:00
Rob Walker
692b125391
Revert "Revert "fixups""
...
This reverts commit e2c68d8775
.
2018-08-06 08:51:41 -07:00
Rob Walker
5193819d8e
Revert "Revert "plug in new ledger""
...
This reverts commit 57e928d1d0
.
2018-08-06 08:51:41 -07:00
Stephen Akridge
210b9d346f
Add voting metrics and -h/--help to get usage for client.sh script
2018-08-05 14:21:49 -07:00
Rob Walker
4c4b0f551e
clippy fixups
2018-08-05 13:30:45 -07:00
Rob Walker
6800ff1882
solana-ledger-tool initial commit
...
does nothing but convert from random-access ledger to json
2018-08-05 13:30:45 -07:00
Michael Vines
399a3852b1
Add sigverify_stage-total_verify_time datapoint
2018-08-04 21:45:58 -07:00
Rob Walker
906d18a709
move VOTE to trace, info too verbose
2018-08-03 23:04:54 -07:00
pgarg66
7fd7310b96
Prevent a node from overrunning it's receive window ( #846 )
...
- The node drops blobs that will cause it to overrun window
- The node does not ask to repair a blob that overruns the window
2018-08-03 20:15:14 -07:00
Michael Vines
1a9e6ffdd7
Try multiple times to confirm a non-zero balance
2018-08-03 19:57:38 -07:00
Rob Walker
4aab413154
recycle the skipped, outside-window blob, fixes #843
2018-08-03 15:02:55 -07:00
Rob Walker
f2b1a04bca
cargo fmt fixups
2018-08-03 11:59:25 -07:00
Rob Walker
57e928d1d0
Revert "plug in new ledger"
...
This reverts commit 46d9ba5ca0
.
2018-08-03 10:24:51 -07:00
Rob Walker
e2c68d8775
Revert "fixups"
...
This reverts commit b72e91f681
.
2018-08-03 10:24:51 -07:00
Rob Walker
d173e6ef87
Revert "clippy fixup"
...
This reverts commit 384b486b29
.
2018-08-03 10:24:51 -07:00
Rob Walker
384b486b29
clippy fixup
2018-08-02 21:50:47 -07:00
Rob Walker
b72e91f681
fixups
2018-08-02 21:50:47 -07:00
Rob Walker
46d9ba5ca0
plug in new ledger
2018-08-02 21:50:47 -07:00
pgarg66
f570ef1c66
Defer repair request for blobs that may still be in avalanche transit ( #814 )
2018-08-02 19:12:57 -07:00
Stephen Akridge
ee0195d588
Try to measure finality from time seen to when 2/3 of validator..
...
..set has voted. Add a timestamp to last_ids and use that to
see how long from when 2/3s validator set has voted on them.
2018-08-02 13:21:29 -07:00
Tyera Eulberg
448b8b1c17
Add Hash wrapper and supporting traits
2018-08-01 17:00:51 -07:00
Tyera Eulberg
4d77fa900b
Add Signature wrapper and supporting traits
2018-08-01 17:00:51 -07:00
Stephen Akridge
7ccd771ccc
Only send sigverify to GPU if batch size is >64
...
Seems to be a decent crossover point for Xeon E5-2620 v4 8c,16t vs. nvidia 1080ti
2018-08-01 16:38:15 -07:00
Greg Fitzgerald
aa9bc57b4d
Implement GenKeys without SecureRandom
2018-08-01 16:24:47 -07:00
Greg Fitzgerald
11df477b20
Make GenKey functions mut
...
We hide the mutability to implement SecureRandom, but that's going
away.
2018-08-01 16:24:47 -07:00
Greg Fitzgerald
7141750668
new_key -> gen_keypair
2018-08-01 16:24:47 -07:00
Greg Fitzgerald
68675bd1ab
Less pub
2018-08-01 16:24:47 -07:00
Greg Fitzgerald
19b3cacd60
Generate a fixed-size array instead of a vector
2018-08-01 16:24:47 -07:00
Tyera Eulberg
bcfaf5d994
Rebase ledger change
2018-08-01 16:15:14 -07:00
Tyera Eulberg
e9499ac5b8
Update PublicKey AsRef to slice
2018-08-01 16:15:14 -07:00
Tyera Eulberg
7ff721e563
Replace pub field with AsRef impl
2018-08-01 16:15:14 -07:00
Tyera Eulberg
cf70e5ff2f
Handle wrapped PublicKey struct
2018-08-01 16:15:14 -07:00
Tyera Eulberg
a86618faf3
Add PublicKey wrapper
...
Add custom formatting for PublicKey display and debug
2018-08-01 16:15:14 -07:00
Stephen Akridge
6693386bc5
Lower errors to warnings so they don't print during tests
...
Negative tests should trigger the warnings, but errors look like
something is wrong.
2018-08-01 16:56:12 -06:00
Michael Vines
4a8a0d03a3
Correct localhost address
2018-08-01 15:49:48 -07:00
Michael Vines
5cda0ed964
Airdrop from the leader
2018-08-01 15:21:20 -07:00
Rob Walker
0aba74935b
fixups
2018-08-01 14:42:58 -07:00
Rob Walker
4eb666d4f9
provide ledger::copy()
2018-08-01 14:42:58 -07:00
Rob Walker
d5e0cf81ff
fixups
2018-08-01 14:42:58 -07:00
Rob Walker
3ea784aff7
clippy fixups
2018-08-01 14:42:58 -07:00
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
Greg Fitzgerald
cea29ed772
More keygen
2018-07-12 21:50:28 -06:00
Greg Fitzgerald
b5006b8f2b
Migrate to solana-keygen
...
Most of #593
2018-07-12 21:50:28 -06:00
Greg Fitzgerald
81c44c605b
Add solana-keygen
...
Same as solana-mint, but without a tokens field.
2018-07-12 14:06:43 -06:00
Greg Fitzgerald
30f0c25b65
Fix all remaining clippy warnings
...
Fixes #586
2018-07-12 09:40:40 -06:00
Greg Fitzgerald
73ae3c3301
Apply most of clippy's feedback
2018-07-12 09:40:40 -06:00
Greg Fitzgerald
f98e9aba48
Apply clippy feedback to CLI apps
2018-07-12 09:40:40 -06:00
Tyera Eulberg
350cf62b90
Sequence client outgoing and incoming txs
2018-07-12 07:24:15 -06:00
Tyera Eulberg
aa4f30c491
Repay transactions from test accounts to client
2018-07-12 07:24:15 -06:00
Tyera Eulberg
3de979aa7c
Check client balance and only airdrop if less than TPS quota
2018-07-12 07:24:15 -06:00
Greg Fitzgerald
87156e1364
Fix flaky test
...
The test would fail any time the original value was coincidently
the same as the new bogus value.
2018-07-11 14:16:21 -07:00
Greg Fitzgerald
2710ff271e
cargo fmt
2018-07-11 11:38:41 -06:00
OEM Configuration (temporary user)
468ac9facd
Refactor the "ReplicatedData" struct
...
Rename the "ReplicatedData" struct to the "NodeInfo" struct.
Also refactors and renames the members in this struct.
2018-07-11 11:38:41 -06:00
Rob Walker
705720f086
fixups
2018-07-11 10:37:47 -07:00
Rob Walker
a219e78f00
fixups
2018-07-11 10:37:47 -07:00
Rob Walker
7a41868173
fixups
2018-07-11 10:37:47 -07:00
Rob Walker
e16acec901
fixups
2018-07-11 10:37:47 -07:00
Rob Walker
de44d7475e
fixups
2018-07-11 10:37:47 -07:00
Rob Walker
c2dd009e0b
fixups
2018-07-11 10:37:47 -07:00
Rob Walker
5a8da75d06
optimize process_ledger()
2018-07-11 10:37:47 -07:00
Greg Fitzgerald
3144a70b18
Move all benchmarks to benches/
2018-07-11 11:18:18 -06:00
Stephen Akridge
bed5438831
Improved streamer debug messages
...
distinguish between threads
2018-07-11 18:26:16 +02:00
Anatoly Yakovenko
6f991b3c11
Send keypair args for validators instead of leaders
2018-07-11 07:54:38 -06:00
Anatoly Yakovenko
03a8a5ed55
only submit to influx when we log
...
test accumilated value logging
lots of counters
higher influx rate
fix counter name
replicate-transactions
2018-07-11 07:53:39 -06:00
Greg Fitzgerald
dfa05a8742
Move bank benchmark outside src
...
This will make it available to third party benchmarking tools.
2018-07-10 19:38:29 -06:00
anatoly yakovenko
0d4e4b18c2
Quiet counter ( #574 )
...
* only submit to influx when we log
* test accumulated value logging
2018-07-10 15:14:59 -07:00
Anatoly Yakovenko
d531b9645d
review comments
2018-07-10 13:32:31 -06:00
Anatoly Yakovenko
be2bf69c93
initial vote stage
...
wip
voting
wip
move voting into the replicate stage
update
fixup!
fixup!
fixup!
fixup!
fixup!
fixup!
fixup!
fixup!
fixup!
fixup!
update
fixup!
fixup!
fixup!
tpu processing votes in entries before write stage
fixup!
fixup!
txs
make sure validators have an account
fixup!
fixup!
fixup!
exit fullnode correctly
exit on exit not err
try 50
add delay for voting
300
300
startup logs
par start
100
no rayon
retry longer
log leader drop
fix distance
50 nodes
100
handle deserialize error
update
fix broadcast
new table every time
tweaks
table
update
try shuffle table
skip kill
skip add
purge test
fixed tests
rebase 2
fixed tests
fixed rebase
cleanup
ok for blobs to be longer then window
fix init window
60 nodes
2018-07-10 13:32:31 -06:00
Greg Fitzgerald
c65c0d9b23
Expose fewer exit variables
2018-07-10 11:11:36 -06:00
Michael Vines
0ee86ff313
Map counters to metrics
2018-07-10 11:11:21 -06:00
Rob Walker
1dd467ed7d
fix issue #568
2018-07-09 22:27:11 -06:00
Anatoly Yakovenko
922dffb122
fix erasure
2018-07-09 20:40:14 -06:00
Anatoly Yakovenko
63985d4595
renamed to contact_info
2018-07-09 20:40:14 -06:00
Anatoly Yakovenko
97dd1834d7
fix tests, more logs
2018-07-09 20:40:14 -06:00
Anatoly Yakovenko
2ea030be48
stick all the addrs into one struct
2018-07-09 20:40:14 -06:00
Tyera Eulberg
606cfbfe1e
Migrate fullnode and fullnode-config to clap for CLI arguments
2018-07-09 20:38:32 -06:00
Rob Walker
ed0a590549
support an initial window filled with last up-to-WINDOW_SIZE blobs
2018-07-09 14:50:14 -07:00
Greg Fitzgerald
71f05cb23e
Vet timestamp source from contract, not leader
...
Per @aeyakovenko, contracts shouldn't trust the network for
timestamps. Instead, pass the verified public key to the
contract and let it decide if that's a public key it wants
to trust the timestamp from.
Fixes #405
2018-07-09 08:40:07 -06:00
Greg Fitzgerald
5f99657523
Remove last_time from bank
...
We had a test for this, but without `Bank::time_sources` (removed in the last
commit), there's no last_time that can be trusted.
2018-07-09 08:40:07 -06:00
Greg Fitzgerald
587ae1bf3c
Remove time_sources from bank
...
I wrote this, but per
https://github.com/solana-labs/solana#code-coverage , if it doesn't
break a test, it's fair game to delete.
2018-07-09 08:40:07 -06:00
Michael Vines
22c0e3cd54
Metrics v0.1
2018-07-07 19:40:09 -07:00
Greg Fitzgerald
3ed9567f96
Remove exit variable from RequestStage
2018-07-05 17:32:41 -06:00
Greg Fitzgerald
c4fa841aa9
Remove exit variable from respond [stage]
...
And drop the sender that feeds input to the responder.
2018-07-05 17:32:41 -06:00
Greg Fitzgerald
f284af1c3d
Remove exit variable from WindowStage and retransmit [stage]
2018-07-05 17:32:41 -06:00
Greg Fitzgerald
46602ba9c3
Remove exit variable from ReplicateStage
2018-07-05 17:32:41 -06:00
Greg Fitzgerald
81477246be
Remove exit variable from VerifyStage
2018-07-05 17:32:41 -06:00
Greg Fitzgerald
9bd63867aa
No longer need to ignore downstream send errors
...
By removing the exit variables, the downstream stages wait for
upstream stages to drop their senders before exiting.
2018-07-05 17:32:41 -06:00
Greg Fitzgerald
d1c317fd5f
Remove exit variable from broadcast [stage]
2018-07-05 17:32:41 -06:00
Greg Fitzgerald
cbd664ba4b
Remove exit variable from BankingStage
2018-07-05 17:32:41 -06:00
Greg Fitzgerald
4bb7cefa15
Remove exit variable from WriteStage
2018-07-05 17:32:41 -06:00
Greg Fitzgerald
82c86daa78
Exit write_stage on channel errors
2018-07-05 17:32:41 -06:00
Greg Fitzgerald
b95db62be3
Handle errors consistently
...
Error handling is still clumsy. We should switch to something like
`error-chain` or `Result<T, Box<Error>>`, but until then, we can
at least be consistent across modules.
2018-07-05 17:32:41 -06:00
Greg Fitzgerald
0f7fdd71cc
Remove executable bit from nat.rs
2018-07-05 17:32:41 -06:00
Greg Fitzgerald
af1a7da0d5
Fix code comments
2018-07-05 17:32:41 -06:00
Tyera Eulberg
d698b3da3a
Revert tps_demo marker
2018-07-05 15:15:23 -06:00
Tyera Eulberg
6d275d571c
Clean up commented code
2018-07-05 15:15:23 -06:00
Tyera Eulberg
63acb82c87
Update drone airdrop test for tps_demo functionality
2018-07-05 15:15:23 -06:00
Tyera Eulberg
4d05b74314
Port solana-client-demo to clap crate for CLI arguments
2018-07-05 15:15:23 -06:00
Tyera Eulberg
96c321da76
Update drone to allow TPS-sized airdrops
2018-07-05 15:15:23 -06:00
Tyera Eulberg
4701540cc9
Migrate solana-client-demo to use drone
2018-07-05 15:15:23 -06:00
Pankaj Garg
f54615b4e3
UDP port for client demo in range
...
* This change will allow clients to run behind a firewall
with only certain port range opened for access
2018-07-05 10:17:35 -06:00
Greg Fitzgerald
77bf17064a
Add Service trait
...
Added a consistent interface to all the microservices.
2018-07-04 16:40:34 -06:00
Tyera Eulberg
44150b2e85
Remove unused crate from wallet CLI
2018-07-04 16:39:26 -06:00
Tyera Eulberg
8ec2fe15f3
Port solana-drone to clap crate for CLI arguments
2018-07-04 16:39:26 -06:00
Greg Fitzgerald
4b07772e22
Add helper functions for reading entries
...
```rust
let entries = entry_writer::read_entries_from_str(entries_str).unwrap();
let entries_len = entries.len();
assert_eq!(entries_len, 7);
let bank = Bank::default();
bank.process_ledger(entries).unwrap();
assert_eq!(bank.transaction_count(), entries_len - 2);
```
2018-07-03 19:32:01 -06:00
Anatoly Yakovenko
e771d36278
Better logs
2018-07-03 18:10:16 -06:00
Rob Walker
800c2dd370
make the leader append to the ledger file
2018-07-03 17:17:52 -06:00
Greg Fitzgerald
f38842822f
Cleanup code duplication
2018-07-03 16:33:36 -06:00
Greg Fitzgerald
88a6fb86bf
Clean up read_entries() and its usage
2018-07-03 16:33:36 -06:00
Greg Fitzgerald
f6fe998ed4
Revert 1dd8c5ed362693fa46e4a281e1caaae427a88edc
...
Per @sakridge, this might cause a performance degradation. Need
to benchmark it.
2018-07-03 14:00:53 -06:00
Anatoly Yakovenko
16337d7c1e
unstable test
2018-07-03 14:00:39 -06:00
Anatoly Yakovenko
fa70b3bf70
split out files, fixed a bug @garious!
2018-07-03 14:00:39 -06:00
Anatoly Yakovenko
3a90f138b2
dynamit network test
...
* cleaned up fullnode api
* added debug_id to ReplicatedData and crdt for debugging
2018-07-03 14:00:39 -06:00
Michael Vines
033f6dcbcb
Demote 'sorted leader' log
2018-07-03 08:24:28 -07:00
Greg Fitzgerald
5d8b2f899a
Fix wallet doc
2018-07-02 19:21:03 -07:00
Greg Fitzgerald
0dabdfd48e
Use zero to represent a nonexistent account
...
This also fixes a bug in the thin client where a nonexistent account
would have triggered a panic because we were using `balances[k]` instead
of `balances.get(key)`.
Fixes #534
2018-07-02 18:48:40 -06:00
Greg Fitzgerald
d2bb4dc14a
Purge empty accounts
2018-07-02 18:48:40 -06:00
Michael Vines
2cbfe41422
Abort nicer on drone connection failure
2018-07-02 15:57:30 -07:00
Michael Vines
c72dced8fa
Report error when an invalid confirmation signature or public key is provided
2018-07-02 15:57:30 -07:00
Anatoly Yakovenko
6feed5fd56
rebased
2018-07-02 16:34:49 -06:00
Anatoly Yakovenko
b8fe5ae076
rename server to fullnode
2018-07-02 16:34:49 -06:00
Anatoly Yakovenko
7e657d65f3
merged f2ab08c65e
2018-07-02 16:34:49 -06:00
Anatoly Yakovenko
a166bb816e
wtfr
2018-07-02 16:34:49 -06:00
Anatoly Yakovenko
2952027d04
wtfr
2018-07-02 16:34:49 -06:00
Anatoly Yakovenko
430d9d9314
fixup!
2018-07-02 16:34:49 -06:00
Anatoly Yakovenko
fa247196c0
fullnode lib
2018-07-02 16:34:49 -06:00
Greg Fitzgerald
5d17c2b58f
Return output receivers from each stage
...
Reaching into the stages' structs for their receivers is, in hindsight,
more awkward than returning multiple values from constructors. By
returning the receiver, the caller can name the receiver whatever it
wants (as you would with any return value), and doesn't need to
reach into the struct for the field (which is super awkward in
combination with move semantics).
2018-07-02 16:18:32 -06:00
Michael Vines
3e0e09555a
Undo UPnP UDP port binding
2018-07-02 14:38:01 -07:00
Michael Vines
67e0100866
Bind to 0.0.0.0
2018-07-02 14:38:01 -07:00
Michael Vines
f2ab08c65e
Reuse request UDP port for responses
2018-07-02 14:38:01 -07:00
Greg Fitzgerald
04a93050e7
No need to share a write lock across single-threaded methods
2018-07-02 15:25:16 -06:00
Michael Vines
03401041db
Correct signature argument name
2018-07-02 11:24:13 -07:00
Michael Vines
ae29e2085f
Init env_logger
2018-07-02 10:59:09 -07:00
Michael Vines
ea5663c0da
Demote log
2018-07-02 10:28:43 -07:00
Greg Fitzgerald
4e3526394e
Use IntoInterator to simplify write_entries() usage
2018-07-02 09:51:39 -06:00
Greg Fitzgerald
6806a14a3f
Use Cursor instead of tempfile.
...
Faster and one less dependency.
2018-07-02 09:51:39 -06:00
Greg Fitzgerald
ec7e50b37d
Consolidate ledger serialization code
...
The new read_entries() works, but is overly-contrained. Not
using that function yet, but adding it here in the hopes some
Rust guru will tell us how to get that lifetime constraint out
of there.
Fixes #517
2018-07-02 09:51:39 -06:00
Greg Fitzgerald
e7b7dfebf5
Add tests for process_ledger()
2018-07-02 09:51:39 -06:00
Greg Fitzgerald
669164bada
Boot EntryWriter's Mutex
...
Finally!
2018-07-01 17:29:24 -06:00
Greg Fitzgerald
4f3a291391
Move the writer into EntryWriter
2018-07-01 17:29:24 -06:00
Greg Fitzgerald
56e37ad2f4
Limit sticky mutex to WriteStage
2018-07-01 17:29:24 -06:00
Greg Fitzgerald
17de79a83a
Remove dead code
2018-07-01 17:29:24 -06:00
Greg Fitzgerald
09e9139855
Move channel code to write stage
2018-07-01 17:29:24 -06:00
Greg Fitzgerald
76fc5822c9
Send Vec<Entry> between stages instead of Entry
...
Might see a performance boost here.
2018-07-01 17:29:24 -06:00
Greg Fitzgerald
c767a854ed
Remove useless Arc
2018-07-01 11:35:32 -07:00
Greg Fitzgerald
b60802ddff
Refactor such that genesis can use entry_writer
2018-07-01 11:35:32 -07:00
Greg Fitzgerald
1c35d59f26
Receive entries first, then write
2018-07-01 11:35:32 -07:00
Greg Fitzgerald
adcaf715c6
Cleanup write_entries
2018-07-01 11:35:32 -07:00
Greg Fitzgerald
1f9494221b
Make space for a write_entry() that only writes entries
2018-07-01 11:35:32 -07:00
Greg Fitzgerald
466d6f76b9
Don't hide error in write_entry()
2018-07-01 11:35:32 -07:00
Greg Fitzgerald
b05e6ce3db
Cleanup solana-genesis
2018-07-01 11:35:32 -07:00
Michael Vines
450f271cf7
Move public IP address detection out of bash
2018-06-29 21:12:05 -07:00
Tyera Eulberg
ba6a6f5227
Use clap crate for wallet CLI subcommands and arguments
2018-06-29 21:30:20 -06:00
Michael Vines
903ec27754
Add BROKEN_NAT env variable to select Udp sender port workaround
2018-06-29 20:02:28 -07:00
Michael Vines
0b56d603c2
Client NAT traversal 0.1
...
UPnP is now used to request a port on the NAT be forwarded to the local machine.
This obviously only works for NATs that support UPnP, and thus is not a panacea
for all NAT-related connectivity issues.
Notable hacks in this patch include a transmit/receive UDP socket pair to work
around current protocol limitations whereby the full node assumes its peer can
receive on the same UDP port it transmitted from.
2018-06-29 17:36:26 -07:00
Greg Fitzgerald
816246ebee
Add doc
2018-06-29 17:28:12 -06:00
Greg Fitzgerald
a9881aee05
Add base58-encoded addresses
2018-06-29 17:28:12 -06:00
Greg Fitzgerald
7b5b989cfe
Print usage is a command is not provided
2018-06-29 17:28:12 -06:00
Greg Fitzgerald
c4b62e19f2
Do Proof of History verification before appending entries to the bank
...
Note: replicate_stage is still using `process_entries()` because
changing it to `process_blocks()` causes the `test_replicate` test to
fail.
2018-06-29 15:35:39 -06:00
Greg Fitzgerald
9a4733bde7
Remove interactive behavior from wallet
2018-06-29 13:22:20 -06:00
Greg Fitzgerald
517d08c637
Cleanup
2018-06-29 09:51:13 -07:00
Greg Fitzgerald
90dd794ae5
cargo fmt
...
rustfmt 0.6.1-stable (49279d71 2018-05-08)
2018-06-29 09:51:13 -07:00
Tyera Eulberg
e0dbbba8a3
fmt
2018-06-29 09:51:13 -07:00
Tyera Eulberg
d354e85a9a
Return bool on signature check
2018-06-29 09:51:13 -07:00
Tyera Eulberg
e4e1f8ec1e
Missing -m parameter handling
2018-06-29 09:51:13 -07:00
Tyera Eulberg
0112a24179
Add confirm command to wallet, and update RPU to check bank for a signature
2018-06-29 09:51:13 -07:00
Stephen Akridge
a094507bb8
Lower default benchmarking numbers to make CI timeout
2018-06-29 07:14:47 -06:00
Stephen Akridge
8effa4e3e0
Clear old blobs before putting in the new one
...
Otherwise we will just warn about overrun and not insert new blob
Also, break if the index we find is less than consumed otherwise
we can infinite loop
2018-06-29 07:14:47 -06:00
Stephen Akridge
1c9e7dbc45
Don't recycle in the replicate stage
...
Windowing stage owns all the blobs now
2018-06-29 07:14:47 -06:00
Stephen Akridge
799b249f02
Don't null blob window until we have to
2018-06-29 07:14:47 -06:00
Michael Vines
47917d00d1
Always bind to 0.0.0.0 regardless of what's being advertised to other nodes
2018-06-28 19:13:36 -07:00
Michael Vines
1c1d7d1e0e
Log get_last_id errors
2018-06-28 19:13:36 -07:00
Stephen Akridge
d28536d76e
Fix spelling of signature
2018-06-28 16:31:33 -07:00
Greg Fitzgerald
63cfbb9497
Only register last entry after a split
2018-06-28 16:54:06 -06:00
Greg Fitzgerald
231040b93e
Add tests
2018-06-28 12:28:43 -07:00
Greg Fitzgerald
7c74afc35a
Relax recycler
...
Instead of asserting ref count is 1 before recycling, allow users
to recycle items early. If it turns out that was too early, and
allocate() wants to return it, then boot it and take a memory
allocation performance hit instead.
2018-06-28 12:28:43 -07:00
Greg Fitzgerald
7878a011eb
Use a Mint to configure the wallet
...
* Send transactions from the mint's private key
* By default, send full balance to oneself
* By default, request the mint's number of tokens for airdrops
2018-06-27 17:35:50 -06:00
Greg Fitzgerald
c05416e27d
Turn simple-client-demo into a simpler wallet
2018-06-27 17:35:50 -06:00
Rob Walker
2f42658cd4
...
2018-06-27 14:51:18 -07:00
Rob Walker
d95e8030fc
...
2018-06-27 14:51:18 -07:00
Greg Fitzgerald
4aedd3f1b6
Cleanup type aliases and imports
2018-06-27 15:06:18 -06:00
Greg Fitzgerald
bb89d6f54d
Get back to 500k transactions
2018-06-27 13:50:27 -07:00
Greg Fitzgerald
ed10841e3d
No longer spin up accounts for client-demo
...
Now that the Bank is single-threaded again, we can spin up new
accounts on the fly without concern of thread contention. Likewise,
we can send all transactions from a single account, which was also
problematic in the multi-threaded bank. Sending from one account will
also make client-demo straightforward to port to solana-drone.
2018-06-27 13:50:27 -07:00
Tyera Eulberg
a167d0d331
CI cleanup
2018-06-27 13:01:29 -06:00
Tyera Eulberg
eed37820b5
Comments
2018-06-27 13:01:29 -06:00
Tyera Eulberg
ac40434cdf
Initial simple client demo commit
2018-06-27 13:01:29 -06:00
Greg Fitzgerald
56b09bf0ac
cargo fmt
2018-06-26 16:51:07 -06:00
Stephen Akridge
f4c4b9df9c
Only free in replicate if we did not hold the reference in window stage
...
And then free when we are consuming blobs
2018-06-26 16:51:07 -06:00
Greg Fitzgerald
6e568c69a7
Preemptive strike
...
Should that blob have been passed to a recycler, it would have
had too high a reference count.
2018-06-26 16:51:07 -06:00
Greg Fitzgerald
14d624ee40
Fix benchmarks too
...
This change will make these benchmarks way slower, because its now
cloning the transaction vector each iteration instead of the ref
counts. We need to rethink these.
2018-06-26 16:51:07 -06:00
Greg Fitzgerald
d5c0557891
Fix test_replicate too
2018-06-26 16:51:07 -06:00
Greg Fitzgerald
1691060a22
Assert recycler is given last reference to data
...
This patch likely fixes the sporadic failures in the following tests:
```
test server::tests::validator_exit ... FAILED
test streamer::test::streamer_send_test ... FAILED
test thin_client::tests::test_bad_sig ... FAILED
test drone::tests::test_send_airdrop ... FAILED
test thin_client::tests::test_thin_client ... FAILED
```
2018-06-26 16:51:07 -06:00
Greg Fitzgerald
05edfad13a
Fix compiler warnings
2018-06-26 15:03:15 -07:00