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
Greg Fitzgerald
136b43f461
Fix whitespace
...
TODO: Why didn't "cargo fmt" fail the build.
2018-06-26 15:03:15 -07:00
Rob Walker
ac40c1818f
..
2018-06-26 13:57:10 -07:00
Rob Walker
eb63dbcd2a
an Entry needs to be multiple of 4 bytes long
2018-06-26 13:57:10 -07:00
Rob Walker
4e2f1a519e
whack next_entries_batched
2018-06-26 13:57:10 -07:00
Rob Walker
55ec7f9fe9
add entry.has_more
...
* quick fix for really big genesis
* longer term fix for possible parallel verification over multiple
Blobs/Entries
2018-06-26 13:57:10 -07:00
OEM Configuration (temporary user)
551f639259
Some pull request fixes(linting + documentation)
2018-06-26 12:31:04 -06:00
OEM Configuration (temporary user)
da3bb6fb93
ran linter
2018-06-26 12:31:04 -06:00
OEM Configuration (temporary user)
08bcb62016
added remote table to update respones
2018-06-26 12:31:04 -06:00
Greg Fitzgerald
4a534d6abb
Don't clone() Arc before recycling
...
This might fix an awful bug where the streamer reuses a Blob
before the current user is done with it. Recycler should probably
assert ref count is one?
* Also don't collect() an iterator before iterating over it.
2018-06-25 17:33:07 -06:00
Stephen Akridge
b48a8c0555
Chunk blobs into window size to avoid window overrun
...
Fixes #447
2018-06-25 17:33:07 -06:00
Rob Walker
1919ec247b
add a clock to validator windows (part 3 of #309 ) ( #448 )
...
* count entries processed by Bank
* initialize windows with initial height of Entries
2018-06-25 15:07:48 -07:00
Stephen Akridge
c22ef50cae
Client fixes, poll for unique last id and cache clients
...
So we don't keep running up the port range
2018-06-25 10:02:29 -06:00
Anatoly Yakovenko
8ef8a8dea7
borrow checker
2018-06-24 11:17:55 -06:00
Anatoly Yakovenko
e929404676
comments
2018-06-24 11:17:55 -06:00
Anatoly Yakovenko
c2258bedae
fixed!
2018-06-24 11:17:55 -06:00
Anatoly Yakovenko
215fdbb7ed
nits
2018-06-24 11:17:55 -06:00
Anatoly Yakovenko
ee998f6882
fix docs
2018-06-24 11:17:55 -06:00
Anatoly Yakovenko
826e95afca
fix logs
2018-06-24 11:17:55 -06:00
Anatoly Yakovenko
47583d48e7
get rid of dummy test
2018-06-24 11:17:55 -06:00
Anatoly Yakovenko
e759cdf061
tests
2018-06-24 11:17:55 -06:00
Anatoly Yakovenko
88503c2a09
generic array fail case
2018-06-24 11:17:55 -06:00
Tyera Eulberg
d5be23dffe
fmt
2018-06-24 10:44:17 -06:00
Tyera Eulberg
80c01dc085
Use leader.json or ReplicatedData to get ports for drone
2018-06-24 10:44:17 -06:00
Tyera Eulberg
45b2549fa9
Reset bad TestNode edit
2018-06-24 10:44:17 -06:00
Greg Fitzgerald
c7ce454188
Use pnet_datalink instead of all of pnet
...
pnet_transport takes a long time to build. It's been especially
painful from within a docker container for reasons I don't care
to understand. pnet_datalink is the only part of pnet we're using
so booting the rest.
2018-06-24 10:39:59 -06:00
Greg Fitzgerald
737dc1ddde
Per rustc 1.27.0, we can ensure nested results are used
2018-06-22 22:42:47 -07:00
Greg Fitzgerald
f2198c2e9a
cargo fmt
...
rustc 1.27.0
```
$ cargo fmt --version
rustfmt 0.6.1-stable (49279d71 2018-05-08)
```
2018-06-22 22:23:55 -07:00
Rob Walker
eec19c6d2c
move genesis to new Entry generation
2018-06-22 17:46:45 -07:00
Tyera Eulberg
662bfb7b88
fmt
2018-06-22 14:52:36 -07:00
Tyera Eulberg
5f3e3a17d3
Fix test_send_airdrop cap; add helpful panic msgs
2018-06-22 14:52:36 -07:00
Tyera Eulberg
feba2d9975
Set request cap to a reasonable number, based on 30min reset noted in issue #341
2018-06-22 14:52:36 -07:00
Tyera Eulberg
e3e3a1c457
Better drone request cap handling
2018-06-22 14:52:36 -07:00
Tyera Eulberg
90628f3c8d
Edit TestNode port logic to be consistent with new_leader (fixes hanging test_send_airdrop)
2018-06-22 14:52:36 -07:00
Tyera Eulberg
f6bcadb79d
Make airdrop amount variable
2018-06-22 14:52:36 -07:00
Tyera Eulberg
d4ac16773c
fmt
2018-06-22 14:52:36 -07:00
Tyera Eulberg
96f044d2bf
Clean up; add new_from_server_addr routine
2018-06-22 14:52:36 -07:00
Tyera Eulberg
f31868b913
Rename drone bin; fix usage statement
2018-06-22 14:52:36 -07:00
Tyera Eulberg
73b0ff5b55
Add request-count check and tests; fmt
2018-06-22 14:52:36 -07:00
Tyera Eulberg
64cf69045a
Add request-count check; Clean up solana-drone and fmt
2018-06-22 14:52:36 -07:00
Tyera Eulberg
e57dae0f31
Update config and dependencies for solana-drone
2018-06-22 14:52:36 -07:00
Tyera Eulberg
6386e7d5cf
Leave some tokens in the mint for solana-drone
2018-06-22 14:52:36 -07:00
Tyera Eulberg
4bad103da9
Add solana-drone CLI
2018-06-22 14:52:36 -07:00
Tyera Eulberg
30a26adb7c
Add solana-drone module to library
2018-06-22 14:52:36 -07:00
Stephen Akridge
8be4adfc0a
Rename tr => tx and add back comments
2018-06-22 14:34:46 -07:00
Stephen Akridge
fed4cc3965
Remove commented code/imports
2018-06-22 14:34:46 -07:00
Stephen Akridge
7d1e074683
bump last_ids
2018-06-22 14:34:46 -07:00
Stephen Akridge
00516e50a1
last_ids opt
2018-06-22 14:34:46 -07:00
Stephen Akridge
e83d76fbd9
Remove mutexes
2018-06-22 14:34:46 -07:00
Stephen Akridge
304f152315
rwlock balances table
2018-06-22 14:34:46 -07:00
Stephen Akridge
3a82ebf7fd
Add multiple source accounts for benchmark
2018-06-22 14:34:46 -07:00
Rob Walker
3dbbb398df
use next_entries() in recorder, recycle blobs in reconstruct_from_blobs
2018-06-22 14:17:36 -07:00
Rob Walker
5e91d31ed3
issue 309 part 1
...
* limit the number of Tntries per Blob to at most one
* limit the number of Transactions per Entry such that an Entry will
always fit in a Blob
With a one-to-one map of Entries to Blobs, recovery of a validator
is a simple fast-forward from the end of the initial genesis.log
and tx-*.logs Entries.
TODO: initialize validators' blob index with initial # of Entries.
2018-06-22 09:58:51 -07:00
Greg Fitzgerald
fad9d20820
Add assertion for now next_entry must be called
2018-06-21 21:24:32 -07:00
Greg Fitzgerald
fe9a1c8580
Fix comment
2018-06-21 21:24:32 -07:00
Greg Fitzgerald
cd6d7d5198
Remove redundant clones
2018-06-21 21:24:32 -07:00
Anatoly Yakovenko
effcef2184
fixed sleep bug
2018-06-20 16:58:10 -07:00
Greg Fitzgerald
410272ee1d
Update generic_array
...
Warning: this may have performance implications.
2018-06-20 11:41:54 -07:00
Greg Fitzgerald
1c97bf50b6
Fix nightly
...
No longer ignore failures in the nightly build.
2018-06-19 17:38:04 -07:00
Greg Fitzgerald
2f4a92e352
Cleanup test
2018-06-19 12:36:02 -07:00
OEM Configuration (temporary user)
ceafc29040
fix linting errors, add retransmission fix to repair requests
2018-06-19 12:36:02 -07:00
OEM Configuration (temporary user)
b20efabfd2
added retransmission of repair messages
2018-06-19 12:36:02 -07:00
Rob Walker
6aced927ad
improve ledger initialization for fullnode
...
* use a line iterator on stdin instead of a line iterator on a buffer
* move some unwrap() to expect(), documenting failures
* bind entry type earlier (for kicks)
2018-06-19 09:28:35 -07:00
Rob Walker
0de5e7a285
attempt to understand entry
2018-06-18 16:48:59 -07:00
Greg Fitzgerald
c40000aeda
Fix compiler warning
2018-06-18 15:49:41 -07:00
Stephen Akridge
31198bc105
Fix cargo bench nightly
2018-06-18 13:20:39 -07:00
Michael Vines
92599acfca
Abort when -l is not present or unreadable
2018-06-16 09:55:03 -07:00
Greg Fitzgerald
f6e70779fe
Don't panic if sent a bad packet
2018-06-16 09:51:45 -06:00
Greg Fitzgerald
9d84ec4bb3
Delete TODO
...
That comment predates the separation of RPU and TPU.
2018-06-16 08:59:30 -06:00
Anatoly Yakovenko
586141adb2
Cleanup TVU docs
2018-06-15 22:45:35 -06:00
Michael Vines
15c7f36ea3
Improve error reporting
2018-06-15 17:10:00 -07:00
Greg Fitzgerald
327ee1dae8
Apply feedback from @aeyakovenko
2018-06-15 17:01:38 -06:00
Greg Fitzgerald
22885c3e64
Add TVU ASCII art
2018-06-15 17:01:38 -06:00
Stephen Akridge
94ededb54c
Add comments and limit digits for tps prints
2018-06-15 11:54:01 -06:00
Stephen Akridge
af6a07697a
Change client-demo to run continuosly for some amount of time
...
Also retry for get_last_id/transaction_count if dropped.
2018-06-15 11:54:01 -06:00
Stephen Akridge
5f1d8c95eb
Fix blob data size
2018-06-15 11:54:01 -06:00
Anatoly Yakovenko
7d9e032407
make sure we test large tables
2018-06-15 06:56:35 -06:00
Anatoly Yakovenko
bc918a5ad5
purger
2018-06-15 06:56:35 -06:00
Anatoly Yakovenko
ee54ce4727
min table size before purge
2018-06-15 06:56:35 -06:00
Anatoly Yakovenko
e85bf2f2d5
tests pass
2018-06-15 06:56:35 -06:00
Anatoly Yakovenko
a7460ffbd1
purge validators we havent seen for a long time
2018-06-15 06:56:35 -06:00
Rob Walker
7fe1fd2f95
clean up fullnode cmdline
...
* fix documentation, other opt parameters
* add support for a named output file, remove hardcoded "leader.log"
* resurrect stdout as the default output
2018-06-15 00:41:07 -07:00
Greg Fitzgerald
9b202c6e1e
No longer flood log with emtpy entries
2018-06-14 18:04:36 -06:00
Stephen Akridge
87946eafd5
Lower processing transaction message to debug by default
2018-06-14 17:08:11 -06:00
Greg Fitzgerald
7575d3c726
Add timestamp to log messages
...
Upgraded env_logger and now we have timestamps and colorful messages.
Fixes #318
2018-06-14 17:07:58 -06:00
Stephen Akridge
8b9713a934
Skip link_local v4 addresses and v6 address when v6 is not enabled
2018-06-14 16:10:31 -06:00
anatoly yakovenko
c24b0a1a3f
TVU rework ( #352 )
...
Refactored TVU, into stages
* blob fetch stage for blobs
* window stage for maintaining the blob window
* pulled out NCP out of the TVU so they can be separate units
TVU is now just the fetch -> window -> request and bank processing
2018-06-13 21:52:23 -07:00
Robert Kelly
34e0cb0092
cargo fmt
2018-06-13 19:17:21 -07:00
Robert Kelly
7b7c7cba21
changed atty library
2018-06-13 19:17:21 -07:00
Anatoly Yakovenko
c45343dd30
comments
2018-06-13 16:11:44 -06:00
Anatoly Yakovenko
b7f6603c1f
fix coverage build
2018-06-13 16:11:44 -06:00
anatoly yakovenko
2d3b052dea
allow for insertion of dummy entry points into the local table ( #346 )
...
* Needed for #341 . Create a dummy entry with public key 0..., but with a valid gossip address that we can ask for updates. This will allow validators to discover the full network by just knowing a single node's gossip address without knowing anything else about their identity.
* once we start removing dead validators this entry should get purged since we will never see a message from public key 0, #344
2018-06-13 11:42:30 -07:00
Greg Fitzgerald
5435bb734c
Upgrade rand
2018-06-11 15:51:25 -06:00
Stephen Akridge
0fce3368d3
Fix json perf counter print and add script to generate a chart
2018-06-09 10:55:22 -07:00
Stephen Akridge
1ee5c81267
Fix benchmarking banking_stage
2018-06-08 15:50:36 -07:00
Stephen Akridge
3bb9d5eb50
Use timing::timestamp for counters
2018-06-08 15:50:36 -07:00
Greg Fitzgerald
7aa05618a3
data_replicator -> ncp
...
Fixes #327
2018-06-07 17:11:17 -06:00
Greg Fitzgerald
cdfbbe5e60
Fix diagram typos
2018-06-07 17:11:17 -06:00
Greg Fitzgerald
fe7d1cb81c
Race -> Or
...
Thanks for the suggestion @FishmanL!
2018-06-07 17:11:03 -06:00
Anatoly Yakovenko
c2a9395a4b
perf counters
2018-06-07 14:59:21 -07:00
Greg Fitzgerald
586279bcfc
Add server diagrams
2018-06-07 15:24:44 -06:00
Greg Fitzgerald
8bd10e7c4c
Cleanup top-level lib doc
2018-06-07 15:24:44 -06:00
Greg Fitzgerald
928e6165bc
Add TPU & RPU diagrams
2018-06-07 15:24:44 -06:00
anatoly yakovenko
77c9e801aa
fixed client demo ( #325 )
...
* fixed client demo
2018-06-07 13:51:15 -07:00
Anatoly Yakovenko
c78132417f
fix deadlock
2018-06-07 13:52:33 -06:00
Anatoly Yakovenko
ba1163d49f
fix logs
2018-06-07 13:52:33 -06:00
Anatoly Yakovenko
6f9c89af39
fix deadlock
2018-06-07 13:52:33 -06:00
Greg Fitzgerald
f0d1fdfb46
Add missing module descriptions
2018-06-07 09:25:36 -06:00
Greg Fitzgerald
3b8b2e030a
Better docs for transaction
2018-06-07 09:25:36 -06:00
Greg Fitzgerald
b4fee677a5
Better docs for payment_plan
2018-06-07 09:25:36 -06:00
Greg Fitzgerald
fe706583f9
Better docs for sigverify_stage
2018-06-07 09:25:36 -06:00
Greg Fitzgerald
d0e0c17ece
Better docs for rpu
2018-06-07 09:25:36 -06:00
Greg Fitzgerald
5aaa38bcaf
Better docs for write_stage
2018-06-07 09:25:36 -06:00
Greg Fitzgerald
6ff9b27f8e
Better docs for entry
2018-06-07 09:25:36 -06:00
Greg Fitzgerald
3f4e035506
Better docs for budget
2018-06-07 09:25:36 -06:00
Greg Fitzgerald
57d9fbb927
Better docs for banking_stage
2018-06-07 09:25:36 -06:00
Greg Fitzgerald
ee44e51b30
Better docs for the bank
2018-06-07 09:25:36 -06:00
Stephen Akridge
a710d95243
Fix non-erasure blob nulling
2018-06-05 15:32:25 -06:00
Stephen Akridge
a06535d7ed
cargo fmt
2018-06-05 15:32:25 -06:00
Stephen Akridge
f511ac9be7
Fixes for receiving old blobs and nulling the window with coding
2018-06-05 15:32:25 -06:00
Stephen Akridge
e28ad2177e
Receive fixes
2018-06-05 15:32:25 -06:00
Stephen Akridge
cb16fe84cd
Rework to fix coding blob insertion
2018-06-05 15:32:25 -06:00
Stephen Akridge
ec3569aa39
Move receive_index to correct place
2018-06-05 15:32:25 -06:00
Stephen Akridge
246edecf53
Add receive_index for broadcast blobs and fix blobs_len position
2018-06-05 15:32:25 -06:00
Stephen Akridge
34834c5af9
Store another size in the data block so it is coded as well
2018-06-05 15:32:25 -06:00
Stephen Akridge
b845245614
Restore more of the blob window and add is_coding helper
2018-06-05 15:32:25 -06:00
Stephen Akridge
5711fb9969
Generate coding for the current blob set not just the first coding set
2018-06-05 15:32:25 -06:00
Stephen Akridge
d1eaecde9a
Fix deadlock and only push to contq if it's not a coding blob
2018-06-05 15:32:25 -06:00
Stephen Akridge
00c8505d1e
Handle set_flags error
2018-06-05 15:32:25 -06:00
Stephen Akridge
33f01efe69
Fixes for erasure coding
2018-06-05 15:32:25 -06:00
Stephen Akridge
377d312c81
Revert log levels
2018-06-05 15:32:25 -06:00
Stephen Akridge
badf5d5412
Add window recovery
2018-06-05 15:32:25 -06:00
Stephen Akridge
5455e8e6a9
Review comments
2018-06-05 15:32:25 -06:00
Stephen Akridge
d053f78b74
Erasure refinements, fix generating orders table
2018-06-05 15:32:25 -06:00
Stephen Akridge
93b6fceb2f
generate coding after indexing
2018-06-05 15:32:25 -06:00
Stephen Akridge
ac7860c35d
indexing blobs then coding
2018-06-05 15:32:25 -06:00
Stephen Akridge
cb81f80b31
Enable logging for client demo
2018-06-05 15:32:25 -06:00
Stephen Akridge
ea97529185
Fix erasure compilation
2018-06-05 15:32:25 -06:00
Greg Fitzgerald
f1075191fe
Clean up comments: Event -> Transaction
2018-06-04 21:43:46 -06:00
Greg Fitzgerald
7e788d3a17
No longer need explicit refs in rustc 1.26
2018-06-04 21:43:46 -06:00
anatoly yakovenko
69b3c75f0d
Power of two chance ( #314 )
...
* fix validator script
* 1/2^30 that we fail due to random returning the same value
2018-06-04 13:32:34 -07:00
Anatoly Yakovenko
b2c2fa40a2
comments
2018-06-03 22:08:25 -06:00
Anatoly Yakovenko
50458d9524
more tests
2018-06-03 22:08:25 -06:00
Anatoly Yakovenko
9679e3e356
more tests
2018-06-03 22:08:25 -06:00
Anatoly Yakovenko
6db9f92b8a
crdt gossip tests
2018-06-03 22:08:25 -06:00
Stephen Akridge
4a44498d45
Fix args in validator script, readme version, client-demo perf print
2018-06-02 21:55:27 -06:00
anatoly yakovenko
216510c573
repair socket and receiver thread ( #303 )
...
repair socket and receiver thread
2018-06-02 08:32:51 -07:00
Greg Fitzgerald
9b54c1542b
Move defaults from bash to Rust
2018-05-31 17:18:11 -07:00
Greg Fitzgerald
93d5d1b2ad
Default to 1 node
2018-05-31 17:18:11 -07:00
Greg Fitzgerald
4c0f3ed6f3
Attempt to revive the singlenode demo
2018-05-31 17:18:11 -07:00
Greg Fitzgerald
2580155bf2
Enable last of the ignored tests
2018-05-31 16:45:21 -06:00
Greg Fitzgerald
6ab0dd4df9
Remove config options from fullnode
2018-05-31 16:15:02 -06:00
Greg Fitzgerald
4b8c36b6b9
Add solana-fullnode-config
2018-05-31 16:15:02 -06:00
Greg Fitzgerald
359a8397c0
Make bootstrapping functions accessible to other binaries
2018-05-31 16:15:02 -06:00
Greg Fitzgerald
c9fd5d74b5
Boot futures 0.1
...
We added them thinking it'd be a good stepping stone towards an
asynchronous thin client, but it's used inconsistently and where
it used, the function is still synchronous, which is just confusing.
2018-05-31 14:13:09 -06:00
Greg Fitzgerald
391744af97
Speed up the creation of the million accounts
...
All threads were locked on the same set of signatures.
2018-05-31 12:13:18 -06:00
Greg Fitzgerald
587ab29e09
Don't register entry ID until after processing its transactions
2018-05-31 12:13:18 -06:00
Greg Fitzgerald
80f07dadc5
Generalize process_entries()
...
And use it in fullnode
2018-05-31 12:13:18 -06:00
Greg Fitzgerald
60609a44ba
Initialize recorder from bank's last_id
2018-05-31 12:13:18 -06:00
Greg Fitzgerald
7aab7d2f82
Sleep between events if PoH is disabled
2018-05-30 15:55:10 -06:00
Anatoly Yakovenko
a8e1c44663
names
2018-05-30 14:50:53 -06:00
Anatoly Yakovenko
a2b92c35e1
thread names
2018-05-30 14:50:53 -06:00
Anatoly Yakovenko
9f2086c772
names
2018-05-30 14:50:53 -06:00
Anatoly Yakovenko
3eb005d492
names for threds
2018-05-30 14:50:53 -06:00
Anatoly Yakovenko
e44e81bd17
fmt
2018-05-30 14:04:48 -06:00
Anatoly Yakovenko
f5eedd2d19
fmt
2018-05-30 14:04:48 -06:00
Anatoly Yakovenko
d327e0aabd
warn on tx verify sig
2018-05-30 14:04:48 -06:00
Anatoly Yakovenko
02c5b0343b
fixed cloned
2018-05-30 14:04:48 -06:00
Anatoly Yakovenko
f1311075d9
integration tests
2018-05-30 14:04:48 -06:00
Ubuntu
6c380e04a3
fix
2018-05-30 14:04:48 -06:00
Anatoly Yakovenko
cef1c208a5
Crdt pipeline, coalesce window repair requests in the listener by examining all of them at once, and ublock those threads from doing io.
2018-05-30 14:04:48 -06:00
Greg Fitzgerald
9c9c63572b
cargo fmt
...
rustfmt was updated with 1.26.1
2018-05-29 20:33:45 -07:00
Greg Fitzgerald
6c0c6de1d0
Better error names
2018-05-29 20:33:45 -07:00
Greg Fitzgerald
b57aecc24c
Better error if Bank doesn't recognize tx last_id
2018-05-29 20:33:45 -07:00
Greg Fitzgerald
290dde60a0
Test invalid tokens and fees
2018-05-29 20:33:45 -07:00
Greg Fitzgerald
38623785f9
Add fee to Transaction
...
Fixes #161
2018-05-29 20:33:45 -07:00
Greg Fitzgerald
76b06b47ba
Delete dead code
2018-05-29 18:09:03 -06:00
Greg Fitzgerald
cf15cf587f
spending plan -> budget
...
Review feedback from @sakridge
2018-05-29 18:09:03 -06:00
Greg Fitzgerald
134c7add57
Fix bench build
2018-05-29 18:09:03 -06:00
Greg Fitzgerald
ac0791826a
plan.rs -> payment_plan.rs
2018-05-29 18:09:03 -06:00
Greg Fitzgerald
d2622b7798
Allow for addtional smart contract languages
...
Fixes #159
2018-05-29 18:09:03 -06:00
Greg Fitzgerald
f82cbf3a27
Move Budget EDSL into its own module
2018-05-29 18:09:03 -06:00
Greg Fitzgerald
aa7e3df8d6
Plan -> Budget
...
Budget is now an EDSL. PaymentPlan is the interface to it.
2018-05-29 18:09:03 -06:00
Greg Fitzgerald
ad00d7bd9c
Move plan methods to a trait
2018-05-29 18:09:03 -06:00
Anatoly Yakovenko
8d1f82c34d
breaks
2018-05-29 16:53:26 -07:00
Anatoly Yakovenko
0cb2036e3a
comment on bad blob usage
2018-05-29 16:53:26 -07:00
Greg Fitzgerald
2b1e90b0a5
More idiomatic Rust
2018-05-29 14:04:27 -06:00
Greg Fitzgerald
f2ccc133a2
Finally made fetch happen
2018-05-29 14:04:27 -06:00
Greg Fitzgerald
5e824b39dd
Move multinode communication outside TPU
2018-05-29 14:04:27 -06:00
Greg Fitzgerald
41efcae64b
Remove dead code
...
History: we thought SigVerifyStage would use these, but it does
signature verification before deserializing transactions.
2018-05-29 10:38:58 -06:00
Greg Fitzgerald
cf5671d058
tr -> tx
...
Missed a few.
2018-05-29 10:38:58 -06:00
Greg Fitzgerald
2570bba6b1
Make apply_payment a method
...
History: the function was pulled out of Bank when each field wasn't
wrapped in a RwLock, and that locking 'balances' meant to lock
everything in the bank. Now that the RwLocks are here to stay,
we can make it a method again.
2018-05-29 10:38:58 -06:00
Greg Fitzgerald
71cb7d5c97
Better names
2018-05-29 10:38:58 -06:00
Greg Fitzgerald
0df6541d5e
Fewer public functions
2018-05-29 10:38:58 -06:00
Greg Fitzgerald
52145caf7e
Cleanup: make 'verified' qualifier implicit
...
History: Qualifying the method names with 'verified' was done to
distinguish them from methods that first did signature verification.
After we moved all signature verication to SigVerifyStage, we removed
those methods from Bank, leaving only the 'verified' ones.
This patch removes the word 'verified' from all method names, since
it is now implied by any code running after SigVerifyStage.
2018-05-29 10:38:58 -06:00
Anatoly Yakovenko
2dbf9a6017
rename
2018-05-26 20:13:42 -06:00
Anatoly Yakovenko
fe93bba457
logs
...
poll both endpoints in client
logs
logs
logs
names
verify plan not sig
log
set udp buffer to max
drop output
more verbose about window requests
log the leader
load leader identity
readme for single node demo
update
asserts
update
replay all
rsync
dynamic file read in testnode
fix
cleanup
readme
sum
fix scripts
cleanup
cleanup
readme
2018-05-26 20:13:42 -06:00
Greg Fitzgerald
58c1589688
More typos
2018-05-26 00:36:50 -06:00
Greg Fitzgerald
bb53f69016
Fix typos
2018-05-26 00:36:50 -06:00
Greg Fitzgerald
fc00594ea4
Move multinode test to integration tests
2018-05-26 00:36:50 -06:00
Greg Fitzgerald
8d26be8b89
Run benchmarks in nightly
...
And name functions the same way as test functions
2018-05-26 00:36:50 -06:00
Greg Fitzgerald
dcaeacc507
request_stage::serialize_packets -> packet::to_blobs
...
Good stuff - no need to hide them.
2018-05-25 17:31:07 -06:00
Greg Fitzgerald
4f377e6710
Generalize serialize_responses
2018-05-25 17:31:07 -06:00
Greg Fitzgerald
122db85727
Move channel-oriented code into request_stage
2018-05-25 17:31:07 -06:00
Greg Fitzgerald
a598e4aa74
Fix comments
2018-05-25 17:31:07 -06:00
Greg Fitzgerald
733b31ebbd
testnode -> fullnode
...
It's the real deal.
2018-05-25 17:31:07 -06:00
Greg Fitzgerald
dac9775de0
Replace client-demo with multinode-demo
2018-05-25 17:31:07 -06:00
Greg Fitzgerald
46c19a5783
Rename sigverify modules
2018-05-25 17:31:07 -06:00
Greg Fitzgerald
aaeb5ba52f
tr -> tx
2018-05-25 16:47:21 -06:00
Greg Fitzgerald
9f5a3d6064
events -> transactions
2018-05-25 16:47:21 -06:00
Greg Fitzgerald
4cdf873f98
Delete event.rs
2018-05-25 16:47:21 -06:00
Anatoly Yakovenko
6677a7b66a
verify plan not sig
2018-05-25 07:02:39 -06:00
Anatoly Yakovenko
75c37fcc73
names
2018-05-25 07:02:39 -06:00
Anatoly Yakovenko
5be71a8a9d
logs
2018-05-25 07:02:39 -06:00
Anatoly Yakovenko
b9ae7d1ebb
logs
2018-05-25 07:02:39 -06:00
Anatoly Yakovenko
8b02e0f57c
logs
2018-05-25 07:02:39 -06:00
Anatoly Yakovenko
342cc7350a
poll both endpoints in client
2018-05-25 07:02:39 -06:00
Anatoly Yakovenko
2335a51ced
logs
2018-05-25 07:02:39 -06:00
Anatoly Yakovenko
868df1824c
fmt
2018-05-24 17:40:33 -06:00
Anatoly Yakovenko
83c11f0f9d
logs
2018-05-24 17:40:33 -06:00
Anatoly Yakovenko
1022f1b0c6
logs
2018-05-24 17:40:33 -06:00
Anatoly Yakovenko
c2c80232e3
logs
2018-05-24 17:40:33 -06:00
Anatoly Yakovenko
669b1694b8
exponentail backoff for retransmit
2018-05-24 17:40:33 -06:00
Anatoly Yakovenko
2128c58fbe
logs and tps counting
2018-05-24 10:35:23 -06:00
Greg Fitzgerald
e12e154877
Boot Event timestamp/singature constructors
2018-05-24 10:10:41 -06:00
Greg Fitzgerald
73d3c17507
Migrate from Event to Transaction Timestramp/Signature
2018-05-24 10:10:41 -06:00
Greg Fitzgerald
7f647a93da
Add last_id to Event timestamp/signature constructors
2018-05-24 10:10:41 -06:00
Greg Fitzgerald
ecb3dbbb60
Add witness tx constructors
2018-05-24 10:10:41 -06:00
Greg Fitzgerald
cc907ba69d
Add Instruction type
2018-05-24 10:10:41 -06:00
Greg Fitzgerald
5a45eef1dc
Exit cleanup ( #252 )
...
* Ignore record_stage exit reason. We only really care about panic exit versus graceful exit.
* Ignore coverage build in CI
2018-05-24 10:03:17 -06:00
Greg Fitzgerald
0d980e89bc
cargo fmt
...
@aeyakovenko: https://github.com/rust-lang/rust.vim#formatting-with-rustfmt
2018-05-23 20:05:08 -06:00
Anatoly Yakovenko
7faa2b8698
fixed demo
2018-05-23 17:24:58 -06:00
Anatoly Yakovenko
65352ce8e7
fix
2018-05-23 17:24:58 -06:00
Anatoly Yakovenko
f1988ee1e3
help
2018-05-23 17:24:58 -06:00
Anatoly Yakovenko
82ac8eb731
use client ports
2018-05-23 17:24:58 -06:00
Anatoly Yakovenko
ae47e34fa5
fix
2018-05-23 17:24:58 -06:00
Anatoly Yakovenko
28e781efc3
break early
2018-05-23 17:24:58 -06:00
Anatoly Yakovenko
5c3ceb8355
aws demo2
2018-05-23 17:24:58 -06:00
Greg Fitzgerald
c9113b381d
Pull channel functionality into record_stage
...
This makes record_stage consistent with the other stages. The stage
manages the channels. Anything else is in a standalone object. In
the case of the record_stage, that leaves almost nothing!
2018-05-23 17:15:28 -06:00
Stephen Akridge
75e69eecfa
Fix nightly bench
2018-05-23 17:15:03 -06:00
Anatoly Yakovenko
f3c4acc723
cleanup multi node test
2018-05-23 16:59:17 -06:00
Stephen Akridge
2a0095e322
Remove unused variable in multinode-demo fix compiler warning
2018-05-23 16:55:45 -06:00
anatoly yakovenko
9ad5f3c65b
fix option ( #246 )
2018-05-23 14:48:00 -07:00
Greg Fitzgerald
d4200a7b1e
Fix build
...
GenKeys() fix and new multinode module crossed in flight.
2018-05-23 14:10:26 -06:00
Greg Fitzgerald
84477835dc
Fix nondeterministic key generation ( #243 )
...
Our one and only unsafe operation was ...unsafe.
2018-05-23 14:04:07 -06:00
anatoly yakovenko
504b318ef1
Hooks for binaries to run as leader or replicator and attach to network ( #221 )
2018-05-23 14:03:19 -06:00
Greg Fitzgerald
f154c8c490
Add data to errors to ease debugging
2018-05-23 12:50:23 -06:00
Greg Fitzgerald
d4959bc157
Test cleanup
...
GenKey unit tests were in the benchmark suite.
2018-05-23 12:50:23 -06:00
Anatoly Yakovenko
87e025fe22
fmt
2018-05-23 12:07:44 -06:00
Anatoly Yakovenko
8049323ca8
@garious review
2018-05-23 12:07:44 -06:00
Anatoly Yakovenko
b38c7ea2ff
fmt
2018-05-23 12:07:44 -06:00
Anatoly Yakovenko
239b925fb3
woop
2018-05-23 12:07:44 -06:00
Anatoly Yakovenko
60da7f7aaf
wip
2018-05-23 12:07:44 -06:00
Anatoly Yakovenko
8646ff4927
refactor wip
2018-05-23 12:07:44 -06:00
Anatoly Yakovenko
59be94a81f
cleanup
2018-05-23 12:07:44 -06:00
Anatoly Yakovenko
437c485e5c
cleanup
2018-05-23 12:07:44 -06:00
Greg Fitzgerald
086365b4c4
Merge pull request #237 from garious/hoist-lastid
...
Hoist last_id
2018-05-22 17:48:25 -06:00
Stephen Akridge
7b5b7feb63
Fix test_bad_sig on mac
2018-05-22 16:40:01 -07:00
Greg Fitzgerald
2e059f8504
Rename TransactionData to Contract
...
No longer a single place to get all the data that was signed.
2018-05-22 17:00:40 -06:00
Greg Fitzgerald
207b6686d1
Hoist last_id
...
First step in unifying Witness processing and Transaction processing
2018-05-22 17:00:40 -06:00
Greg Fitzgerald
abfd7d6951
Merge pull request #234 from sakridge/fix_events_addr
...
Send events to the right address
2018-05-22 16:59:28 -06:00
Anatoly Yakovenko
021953d59a
cleanup
2018-05-22 15:30:46 -07:00
Anatoly Yakovenko
bbe89df2ff
fmt
2018-05-22 15:18:07 -07:00
Anatoly Yakovenko
a638ec5911
builds
2018-05-22 15:17:59 -07:00
Anatoly Yakovenko
26272a3600
split out stages
2018-05-22 14:26:28 -07:00
Stephen Akridge
8454eb79d0
Send events to the right address and set recv socket timeout
2018-05-22 13:52:50 -07:00
Greg Fitzgerald
2786357082
Merge pull request #230 from garious/generalize-topackets
...
Benchmark the banking stage
2018-05-18 19:47:26 -07:00
Anatoly Yakovenko
63a0ba6ec8
fixed
2018-05-16 23:28:03 -07:00
Anatoly Yakovenko
9a4ce6d70e
fmt
2018-05-16 23:27:26 -07:00
Anatoly Yakovenko
35ee2d0ce1
cleanup
2018-05-16 23:27:26 -07:00
Anatoly Yakovenko
b04716d40d
fmt
2018-05-16 23:27:26 -07:00
Anatoly Yakovenko
051fa6f1f1
cleanup
2018-05-16 23:27:26 -07:00
Anatoly Yakovenko
8dc1b07e75
docs
2018-05-16 23:27:26 -07:00
Anatoly Yakovenko
bee1e7ebaf
compute convergence maximum
2018-05-16 23:27:26 -07:00
Anatoly Yakovenko
f3f0b9f0c5
update
2018-05-16 23:27:26 -07:00
Anatoly Yakovenko
a5cf745e1c
check convergence
2018-05-16 23:27:26 -07:00
Greg Fitzgerald
273b800047
Benchmark the banking stage
2018-05-16 23:18:58 -07:00
Greg Fitzgerald
6c1f1c2a7a
Promote create_entry() to Entry::new()
2018-05-16 23:18:58 -07:00
Greg Fitzgerald
9c62f8d81f
Add Event::Transaction constructor
2018-05-16 23:18:58 -07:00
Greg Fitzgerald
dc87effc0a
Merge pull request #229 from garious/fix-bench
...
Fix the benchmark build
2018-05-16 16:37:56 -06:00
Greg Fitzgerald
0b91dd6163
Fix the benchmark build
2018-05-16 16:35:50 -06:00
Greg Fitzgerald
4955c6f13a
request::to_request_packets -> packet::to_packets
2018-05-16 16:11:53 -06:00
Greg Fitzgerald
2e7beca9ba
Generalize to_request_packets
2018-05-16 16:01:19 -06:00
Greg Fitzgerald
59c1b9983d
Merge pull request #220 from garious/add-tpu
...
Add tpu
2018-05-16 12:21:07 -06:00
Greg Fitzgerald
f7083e0923
Remove transaction processing from RPU and request processing from TVU
2018-05-15 12:15:29 -06:00
Greg Fitzgerald
6d4defdf96
Offload event processing to the TPU
2018-05-15 11:33:43 -06:00
Greg Fitzgerald
b826f837f8
First attempt to pull TPU into the server
2018-05-15 11:25:55 -06:00
Greg Fitzgerald
5855e18a4e
Let server own the bank, not TPU/RPU
2018-05-15 11:21:48 -06:00
Greg Fitzgerald
3f38c0a245
Feed events socket into the server
2018-05-15 11:19:58 -06:00
Greg Fitzgerald
cfe8b3fc55
Wrap the RPU with new object Server
2018-05-15 11:00:01 -06:00
Greg Fitzgerald
e9ee020b5f
Rename constructors
2018-05-15 10:45:36 -06:00
Greg Fitzgerald
1bcf3891b4
New TPU/RPU constructors
2018-05-15 10:44:47 -06:00
Greg Fitzgerald
5456de63e9
Less state
2018-05-15 10:38:17 -06:00
Greg Fitzgerald
9026c70952
Inline Rpu::new
2018-05-15 10:33:16 -06:00
Greg Fitzgerald
99dc4ea4a9
Spin up threads from Rpu/Tpu constructors
2018-05-15 10:30:52 -06:00
Greg Fitzgerald
0aaa500f7c
Rpu/Tpu serve() functions now only spin up threads
2018-05-15 10:10:45 -06:00
Greg Fitzgerald
5f5be83a17
Hoist socket creation/configuration
...
TODO: Add a library for socket configuration.
2018-05-15 10:05:23 -06:00
Greg Fitzgerald
7e44005a0f
Don't do error-prone things in functions that spawn threads
2018-05-15 09:53:51 -06:00
Greg Fitzgerald
ee3fb985ea
Hoist set_timeout
2018-05-15 09:42:28 -06:00
Greg Fitzgerald
2a268aa528
Reorder to reflect dependencies
2018-05-15 09:17:48 -06:00
Robert Kelly
a1889c32d4
fixed CrdtToSmall typo
2018-05-15 10:29:56 -04:00
Robert Kelly
d42d024d9c
minor changes
2018-05-15 10:23:11 -04:00
Anatoly Yakovenko
4131071b9a
fix ignore tests
2018-05-14 22:06:42 -07:00
Greg Fitzgerald
ef6bd7e3b8
Add TPU
2018-05-14 17:36:19 -06:00
Greg Fitzgerald
374bff6550
Extract event processing from request_stage
2018-05-14 17:31:27 -06:00
Greg Fitzgerald
0a46bbe4f9
Merge pull request #219 from garious/add-write-stage
...
Move write_service and drain_service into new write_stage module
2018-05-14 17:18:04 -06:00
Anatoly Yakovenko
421273f862
disable tests that fail with kcov
2018-05-14 16:07:21 -07:00
Anatoly Yakovenko
2c7f229883
wait longer
2018-05-14 15:48:43 -07:00
Anatoly Yakovenko
904eabad2f
waint longer
2018-05-14 15:48:24 -07:00
Anatoly Yakovenko
8b233f6be4
update
2018-05-14 15:43:26 -07:00
Anatoly Yakovenko
08fc821ca9
rebase
2018-05-14 15:35:54 -07:00
Greg Fitzgerald
81706f2d75
Move write_service and drain_service into new write_stage module
2018-05-14 16:31:31 -06:00
Anatoly Yakovenko
7b50c3910f
fmt
2018-05-14 15:21:41 -07:00
Anatoly Yakovenko
2d635386af
rebased
2018-05-14 15:20:41 -07:00
Greg Fitzgerald
7736b9cac6
Boot Alice and Bob from the unit tests
2018-05-14 15:39:34 -06:00
Greg Fitzgerald
d2dd005a59
accountant -> bank
2018-05-14 15:33:11 -06:00
Greg Fitzgerald
6e8f99d9b2
Purge EventProcessor
2018-05-14 14:45:29 -06:00
Greg Fitzgerald
685de30047
Purge EventProcessor from RPU
2018-05-14 14:35:25 -06:00
Greg Fitzgerald
17cc9ab07f
Rename Historian to RecordStage
...
Historian was a legacy name. The new name reflects the new pipelined
architecture.
2018-05-14 14:19:19 -06:00
Greg Fitzgerald
3f10bf44db
Config recorder with any kind of Duration, not just milliseconds
2018-05-14 14:12:36 -06:00
Greg Fitzgerald
27984e469a
Multiply duration, not milliseconds
2018-05-14 13:58:42 -06:00
Greg Fitzgerald
a2c05b112e
Add historian to pipeline
...
No longer intercept entries to register_entry_id(). Intead,
register the ID in the Write stage.
EventProcessor is now just being used as a place to store data.
Fixes #216
2018-05-14 12:43:40 -06:00
Greg Fitzgerald
a578c1a5e3
Merge pull request #215 from garious/suppress_panic_message_in_tests
...
Don't output panic noise from panic test
2018-05-14 11:46:22 -06:00
Robert Kelly
4a94da8a94
Don't output panic noise from panic test
...
P.S. rustfmt 0.4.1-stable (7a807262 2018-04-20)
2018-05-14 10:38:59 -06:00
Greg Fitzgerald
cc447c0fda
Drop support for EntryInfo subscriptions
2018-05-14 09:53:57 -06:00
Greg Fitzgerald
0ae69bdcd9
Get transactionn_count via GetTransactionCount instead of EntryInfo
2018-05-14 09:45:09 -06:00
Greg Fitzgerald
5ba20a94e8
Panic on error to get same signature as transaction_count()
2018-05-14 09:43:40 -06:00
Greg Fitzgerald
f168c377fd
Get last_id via GetLastId instead of EntryInfo
2018-05-14 09:40:29 -06:00
Greg Fitzgerald
dfb754dd13
Revive GetLastId messages
2018-05-14 09:35:10 -06:00
Greg Fitzgerald
455050e19c
Expose the server-side transaction count
2018-05-14 07:21:12 -06:00
Greg Fitzgerald
317031f455
Add transaction count to accountant
2018-05-14 06:49:51 -06:00
Greg Fitzgerald
b132ce1944
Merge pull request #210 from aeyakovenko/buildite_coverage
...
ignore unstable tests
2018-05-13 22:00:32 -06:00
Anatoly Yakovenko
8b226652aa
unstable
2018-05-13 20:54:41 -07:00
Anatoly Yakovenko
2c7fe3ed8d
unstable
2018-05-13 20:51:07 -07:00
Anatoly Yakovenko
3d5f2b3c28
unstable
2018-05-13 20:45:55 -07:00
Anatoly Yakovenko
7a79afe4a6
unstable
2018-05-13 20:41:54 -07:00
Anatoly Yakovenko
1f7387a39b
increase sleep
2018-05-13 20:33:41 -07:00
Robert Kelly
791ae852a2
removed old keygen
2018-05-13 18:14:10 -04:00
Greg Fitzgerald
d239d4a495
Add missing files
2018-05-12 17:57:28 -06:00
Greg Fitzgerald
aec05ef602
Move RequestProcessor into its own module
2018-05-12 17:50:55 -06:00
Greg Fitzgerald
e5d46d998b
Move thin client messages into their own module
2018-05-12 17:41:27 -06:00
Greg Fitzgerald
b2e3299539
Only pass accountant write_service
2018-05-12 17:30:15 -06:00
Greg Fitzgerald
c308a6459f
cargo fmt
2018-05-12 17:27:15 -06:00
Greg Fitzgerald
4eb1bc08a7
Merge pull request #205 from rlkelly/203__test_key_generation
...
203 test key generation
2018-05-12 17:26:46 -06:00
Robert Kelly
ff5e1c635f
increased iterations
2018-05-12 18:18:18 -04:00
Robert Kelly
6149c2fcb5
added benchmarks for two GenKeys
2018-05-12 18:08:08 -04:00
Greg Fitzgerald
6264508f5e
Consistent naming of senders and receivers
2018-05-12 15:24:20 -06:00
Greg Fitzgerald
a3869dd4c1
Move entry_receiver to RequestStage
...
This can move to AccountingStage once RequestStage stops
calling process_events().
2018-05-12 15:14:37 -06:00
Greg Fitzgerald
a3d2831f8c
Free up the name 'accounting_stage'
2018-05-12 14:05:57 -06:00
Robert Kelly
4cd1fa8c38
refactored seed generation
2018-05-12 15:42:27 -04:00
Greg Fitzgerald
1511dc43d7
Move RequestProcessor out of Rpu/Tvu state
2018-05-12 11:39:24 -06:00
Greg Fitzgerald
3d82807965
Delete dead code
2018-05-12 11:24:40 -06:00
Greg Fitzgerald
4180571660
Don't pass events_socket to RPU
2018-05-12 11:11:30 -06:00
Greg Fitzgerald
421d9aa501
Free up the name 'tpu'
2018-05-12 10:53:25 -06:00
Greg Fitzgerald
898f4971a2
Free up name 'thin_client_service'
2018-05-12 10:50:22 -06:00
Greg Fitzgerald
7ab3331f01
Move validation processor to its own module
2018-05-12 00:31:32 -06:00
Greg Fitzgerald
b4ca414492
More object-oriented
2018-05-12 00:19:12 -06:00
Greg Fitzgerald
73abea088a
No need for TPU dependency
2018-05-11 23:51:35 -06:00
Greg Fitzgerald
2376dfc139
Let thin client own the receiver channel
2018-05-11 23:46:04 -06:00
Greg Fitzgerald
d2f95d5319
Move thin client service thread into thin_client_service.rs
2018-05-11 23:37:44 -06:00
Greg Fitzgerald
cd96843699
Free up name ThinClientService
2018-05-11 23:37:14 -06:00
Greg Fitzgerald
ca80bc33c6
Move the writer stage's utilities to its own module
2018-05-11 22:36:16 -06:00
Greg Fitzgerald
19607886f7
Move sig verification stage into its own module
2018-05-11 21:51:37 -06:00
Greg Fitzgerald
3c11a91f77
Cleanup verifier error handling
2018-05-11 21:01:07 -06:00
Greg Fitzgerald
b781fdbd04
Reorganize
2018-05-11 20:50:50 -06:00
Greg Fitzgerald
765d901530
Better names
2018-05-11 20:18:04 -06:00
Greg Fitzgerald
3cedbc493e
Reorder to reflect the pipeline order
2018-05-11 20:11:25 -06:00
Greg Fitzgerald
0488d0a82f
Extract sig verify functions
2018-05-11 19:59:40 -06:00
Greg Fitzgerald
f0be595e4c
Create function for thin client thread
2018-05-11 17:58:27 -06:00
Greg Fitzgerald
55100854d6
Better names
2018-05-11 16:41:35 -06:00
Greg Fitzgerald
600a1f8866
Initialize thin client with events port
2018-05-11 16:35:53 -06:00
Greg Fitzgerald
95bf68f3f5
Correct some strange naming
2018-05-11 16:24:18 -06:00
Greg Fitzgerald
bcdb058492
cargo fmt
2018-05-11 13:06:05 -06:00
Code Cobain
e779496dfb
Update signature.rs
2018-05-11 11:49:22 -07:00
Code Cobain
3d77fa5fbc
Merge branch 'master' into 153-panic-cleanup
2018-05-11 11:40:20 -07:00
Jackson Sandland
250830ade9
cargo fmt run
2018-05-11 11:38:52 -07:00
Code Cobain
458c27c6e9
Merge branch 'master' into 153-panic-cleanup
2018-05-11 11:18:45 -07:00
Robert Kelly
a49e664e63
Merge branch '156__remove_user_keys_in_mintdemo' of github.com:rlkelly/solana into 156__remove_user_keys_in_mintdemo
2018-05-11 14:07:48 -04:00
Robert Kelly
f20380d6b4
changed RwLock to RefCell
2018-05-11 14:07:41 -04:00
Rob Kelly
05a5e551d6
Merge branch 'master' into 156__remove_user_keys_in_mintdemo
2018-05-11 13:00:44 -04:00
Robert Kelly
d278b71cb2
added tests and utility method for key generation
2018-05-11 12:55:05 -04:00
Greg Fitzgerald
a485c141d5
Merge pull request #199 from garious/add-accounting-stage
...
Fix race condition in Accountant::apply_payment()
2018-05-11 10:54:32 -06:00
Tyera Eulberg
7144090528
Fix whitespace
2018-05-11 10:40:31 -06:00
Tyera Eulberg
ee0015ac38
Fix whitespace
2018-05-11 10:34:46 -06:00
Tyera Eulberg
8b7f7f1088
Generalize next tick functions to carry events
2018-05-11 09:45:42 -06:00
Jackson Sandland
c95c6a75f8
tpu.rs - panic cleanup
2018-05-10 20:49:58 -07:00
Jackson Sandland
44bf79e35f
transaction.rs - panic cleanup
2018-05-10 18:24:33 -07:00
Jackson Sandland
bb654f286c
tpu.rs - panic cleanup
2018-05-10 18:21:10 -07:00
Greg Fitzgerald
1acd2aa8cf
Fix race condition in Accountant::apply_payment()
2018-05-10 19:07:15 -06:00
Jackson Sandland
18d3659b91
timing.rs - panic cleanup
2018-05-10 17:47:27 -07:00
Jackson Sandland
63a4bafa72
thin_client - panic cleanup
2018-05-10 17:46:10 -07:00
Jackson Sandland
4eb2e84c9f
streamer.rs - panic cleanup
2018-05-10 17:38:00 -07:00
Jackson Sandland
73c7fb87e8
signature.rs - panic cleanup
2018-05-10 17:15:53 -07:00
Jackson Sandland
c1496722aa
packet.rs - panic cleanup
2018-05-10 17:11:31 -07:00
Jackson Sandland
d9f81b0c8c
mint.rs - panic cleanup
2018-05-10 17:06:43 -07:00
Jackson Sandland
d69beaabe1
historian.rs - panic cleanup
2018-05-10 17:00:37 -07:00
Jackson Sandland
b7a0bd6347
event.rs - panic cleanup
2018-05-10 16:59:13 -07:00
Jackson Sandland
882ea6b672
erasure.rs - panic cleanup
2018-05-10 16:54:21 -07:00
Greg Fitzgerald
af53197c04
cargo +nightly fmt
2018-05-10 16:58:37 -06:00
Greg Fitzgerald
cf186c5762
Better names
2018-05-10 16:58:37 -06:00
Greg Fitzgerald
f384a2ce85
Move streamer-specific utility into streamer module
2018-05-10 16:58:37 -06:00
Greg Fitzgerald
803b76e997
More idiomatic Rust
2018-05-10 16:58:37 -06:00
Greg Fitzgerald
230d7c3dd6
Move all Request processing into thin_client_service
2018-05-10 16:58:37 -06:00
Greg Fitzgerald
4f629dd982
Add events socket instead of modifying the existing socket
2018-05-10 16:54:43 -06:00
Greg Fitzgerald
4fdd891b54
More precise function names
2018-05-10 16:54:43 -06:00
Stephen Akridge
a80991f2b3
Fixes for serializing entries over blobs and reorg into ledger
2018-05-10 15:30:30 -07:00
Greg Fitzgerald
521ae21632
Merge pull request #193 from sakridge/serialize_entries_over_multiple_blobs
...
Serialize entries over multiple blobs
2018-05-10 13:53:48 -06:00
Jackson Sandland
bcd6606a16
ecdsa.rs - panic cleanup
2018-05-09 18:19:23 -07:00
Jackson Sandland
52ebb88205
accountant.rs - simplify error messages
2018-05-09 18:16:37 -07:00
Jackson Sandland
1e91d09be7
crdt.rs - panic cleanup
2018-05-09 18:10:48 -07:00
Jackson Sandland
02c573986b
historian / transaction updates
2018-05-09 17:22:14 -07:00
Jackson Sandland
f2de486658
accountant.rs - panic cleanup
2018-05-09 17:19:12 -07:00
Stephen Akridge
900b4f2644
Serialize entries over multiple blobs
2018-05-09 16:03:47 -07:00
Greg Fitzgerald
801468d70d
Fix nightly
2018-05-09 16:51:34 -06:00
Greg Fitzgerald
7ce11b5d1c
Cleanup: use full words for field names
...
and optionally for variable names
2018-05-09 16:19:42 -06:00
Greg Fitzgerald
f2d4799491
Cleanup: field names should be nouns
2018-05-09 16:14:40 -06:00
Greg Fitzgerald
ebc458cd32
Remove redundant Arcs
2018-05-09 15:45:10 -06:00
Greg Fitzgerald
43cd631579
Add thin_client_service
2018-05-09 14:56:34 -06:00
Greg Fitzgerald
bc824c1a6c
Reference count the accountant
...
So that the thin client can reference the AccountingStage's accountant
from separate threads.
2018-05-09 14:33:20 -06:00
Greg Fitzgerald
4223aff840
Remove useless ref counts
2018-05-09 14:25:52 -06:00
Greg Fitzgerald
f107c6c2ca
Don't wrap thread-safe objects with mutexes
2018-05-09 14:21:42 -06:00
Greg Fitzgerald
7daf14caa7
Don't depend on client from server
2018-05-09 13:33:33 -06:00
Greg Fitzgerald
ded28c705f
Tuck away the Historian
...
The Historian is now just a utility of the accounting stage.
2018-05-09 12:25:19 -06:00
Greg Fitzgerald
778bec0777
Intercept historian output from accounting stage
...
We were accessing the accountant from multiple stages just to
register the ID the historian adds to Events.
This change should cause a whole lot of Arcs and Mutexes to go away.
2018-05-09 12:00:37 -06:00
Greg Fitzgerald
6967cf7f86
Boot sync_channel()
...
This is less useful now that we send Vec<Event> instead of Event.
2018-05-09 11:43:16 -06:00
Greg Fitzgerald
0ee3ec86bd
Fix nightly
2018-05-09 10:48:56 -06:00
Greg Fitzgerald
e4c47e8417
Use AccountingStage in Tpu
2018-05-09 10:31:23 -06:00
Greg Fitzgerald
98ae80f4ed
Hoist historian
2018-05-09 09:26:58 -06:00
Greg Fitzgerald
876c77d0bc
Extract accounting stage code from tpu
2018-05-09 09:22:46 -06:00
Greg Fitzgerald
d44a6f7541
Move Accounting stage functionality into its own object
2018-05-09 09:03:00 -06:00
Greg Fitzgerald
9040c04d27
Remove redundant Tick
2018-05-09 08:18:52 -06:00
Greg Fitzgerald
ebbdef0538
Ignore flakey test
2018-05-09 08:16:59 -06:00
Greg Fitzgerald
bfbee988d0
No longer wait for a Tick signal to record events
2018-05-09 08:15:51 -06:00
Greg Fitzgerald
1d4d0272ca
Drop support for logging a single event
2018-05-09 08:12:33 -06:00
Greg Fitzgerald
77a76f0783
Record a batch of events
2018-05-09 08:11:19 -06:00
Greg Fitzgerald
d9079de262
Add a way of sending a batch of events
2018-05-09 08:05:40 -06:00
Greg Fitzgerald
b3d732a1a1
No longer artificially limit the size of entries
...
Instead, serialize the entries and split them up over multiple
blobs.
2018-05-09 07:59:55 -06:00
Greg Fitzgerald
52f1a02938
Delete historical artifact
...
This was just to explain Proof of History. We have better explanations
elsewhere. Delete!
2018-05-09 07:53:24 -06:00
Jackson Sandland
fe51669e85
signature.rs - panic cleanup
2018-05-08 23:21:45 -07:00
Jackson Sandland
670a6c50c9
event.rs - panic cleanup
2018-05-08 22:58:48 -07:00
Jackson Sandland
86c1aaf7d8
transaction.rs - panic cleanup
2018-05-08 22:46:22 -07:00
Jackson Sandland
658e787b60
timing.rs panic cleanup
2018-05-08 22:40:07 -07:00
Robert Kelly
40c50aef50
deterministic random wallet generationg
2018-05-09 00:07:19 -04:00
Greg Fitzgerald
1dca17fdb4
cargo +nightly fmt
2018-05-08 18:59:01 -06:00
Greg Fitzgerald
785e971698
AccountantSkel -> Tpu
...
The terms Stub and Skel come from OMG IDL and only made sense while
the Stub was acting as an RPC client for the the Accountant object.
Nowadays, the Stub interface looks nothing like the Accountant and
meanwhile we've recognized the multithreaded implementation is more
reminiscent of a pipelined CPU. Thus, we finally bite the bullet and
rename our modules.
AccountantSkel -> Tpu
AccountantStub -> ThinClient
Up next will be moving much of the TPU code into separate modules,
each representing a stage of the pipeline. The interface of each
will follow the precedent set by the Historian object.
2018-05-08 17:40:02 -06:00
Greg Fitzgerald
2bfa20ff85
Merge pull request #182 from garious/split-request
...
Control port prep
2018-05-08 17:11:34 -06:00
Greg Fitzgerald
474a9af78d
Merge pull request #187 from sakridge/fix_blob_size_check
...
Trust the recorder not to give us more than we can serialize
2018-05-08 17:11:18 -06:00
Stephen Akridge
4870def1fb
Fix default client port, server uses 8000-8002 for gossip.
2018-05-08 15:40:55 -07:00
Stephen Akridge
3e73fb9233
Trust the recorder not to give us more than we can serialize
...
Also run client for 10 seconds, 5 is bit too short
2018-05-08 15:23:41 -07:00
Stephen Akridge
bd0671e123
Rework sig processing threads and add perf for process/verify
2018-05-08 11:49:29 -07:00
Greg Fitzgerald
9ff1a6f0cd
Add a thread to support thin clients
2018-05-07 21:44:44 -06:00
Greg Fitzgerald
62bb78f58d
Prepwork to hoist processing requests
2018-05-07 15:09:08 -06:00
Greg Fitzgerald
893011c3ba
Process events instead of processing only transactions
...
Prep work to allow clients to send any type that can end up in
the ledger.
2018-05-07 14:51:13 -06:00
Anatoly Yakovenko
85f83f2c74
fmt
2018-05-06 22:29:33 -07:00
Anatoly Yakovenko
4751e459cc
fixed!
2018-05-06 22:25:05 -07:00
Anatoly Yakovenko
138efa6cec
fixed constant
2018-05-06 22:06:19 -07:00
Anatoly Yakovenko
a68e50935e
useless timeouts i think
2018-05-06 21:48:46 -07:00
Stephen Akridge
e8f5fb35ac
Multinode fixes and test
...
* Replace magic numbers for 64k event size
* Fix gossip, dont ping yourself
* Retransmit only to listening nodes
* Multinode test in stub marked unstable
2018-05-06 21:36:06 -07:00
Greg Fitzgerald
e162f24119
Limit 256 events per entry
...
Attempt to keep blob size under 64kb
2018-05-04 11:52:05 -06:00
Stephen Akridge
2d5313639a
Factor out entry processing and fix replicate test to call global setup fn
2018-05-03 22:24:30 -07:00
Stephen Akridge
888c2ffb20
Fix bind so we can talk on external interfaces and surface send error
2018-05-03 17:05:02 -07:00
Stephen Akridge
2cdd515b12
Compiles/fmt and add assert for forward progress
2018-05-03 14:58:08 -07:00
Anatoly Yakovenko
0aad71d46e
fix entry serialize
2018-05-03 14:35:04 -07:00
Greg Fitzgerald
68c7f992fa
Sooth all versions of rustfmt
2018-05-03 13:56:10 -06:00
Greg Fitzgerald
1feff408ff
Implement get_last_id() with transaction_count()
...
This is more precice than the previous implementation because it'll
drain the EntryInfo queue and return the most recent last_id instead
of the first one.
2018-05-03 13:34:57 -06:00
Greg Fitzgerald
f752e02487
Implement GetLastId with EntryInfo subscription
2018-05-03 13:31:43 -06:00
Greg Fitzgerald
c9c7fb0a27
Update comment
...
The last PR added a thread that logs entries without needing to
be driven by the client.
2018-05-03 13:27:37 -06:00
Greg Fitzgerald
de680c2a8e
Remove duplicate state
2018-05-03 13:24:37 -06:00
Anatoly Yakovenko
c2e2960bf7
Add broadcast impl
2018-05-03 10:34:01 -07:00
Greg Fitzgerald
385d2a580c
Merge pull request #168 from aeyakovenko/fix_multi_host_client_demo
...
multi host client demo
2018-05-03 10:21:41 -06:00
Greg Fitzgerald
ae29c9b4a0
Fix nightly build
2018-05-03 09:38:59 -06:00
Anatoly Yakovenko
078f917e61
useless assert
2018-05-03 08:34:57 -07:00
Anatoly Yakovenko
b65f04d500
multi host client demo
...
Bind to the same interface as the user supplied client address.
2018-05-03 08:28:11 -07:00
Greg Fitzgerald
4b9f115586
Hoist Historian input
2018-05-02 16:35:37 -06:00
Greg Fitzgerald
c5cc91443e
Rename sender/receiver to input/output
2018-05-02 15:54:53 -06:00
Greg Fitzgerald
48d94143e7
Fix CI
2018-05-02 11:05:11 -06:00
Robert Kelly
63cf6363a2
more rustfmt
2018-05-02 12:24:25 -04:00
Robert Kelly
cc6de605ac
rustfmt
2018-05-02 12:21:20 -04:00
Robert Kelly
d0151d2b79
restored original test logic
2018-05-02 12:07:42 -04:00
Robert Kelly
6b45d453b8
modified verification map
2018-05-02 10:44:41 -04:00
Robert Kelly
b992a84d67
modified verification to loop until success or failure
2018-05-02 10:15:08 -04:00
Robert Kelly
cb362e9052
rust format
2018-05-01 16:38:15 -04:00
Robert Kelly
ccb478c1f6
improved error handling and atomic transactions
2018-05-01 16:38:15 -04:00
Greg Fitzgerald
edf6272374
Merge pull request #154 from sakridge/replicator
...
Replicator
2018-04-27 14:30:52 -06:00
Stephen Akridge
7f6a4b0ce3
Deserialize the Entry structs and process them
2018-04-27 13:15:19 -07:00
Stephen Akridge
3be5f25f2f
Work on test_replicate to test replicate service
...
generate some messages to send to replicator service
2018-04-27 08:21:34 -07:00
Stephen Akridge
1b6cdd5637
Fix some compilation issues
2018-04-27 08:21:34 -07:00
Anatoly Yakovenko
f752e55929
update
2018-04-27 08:21:34 -07:00
Anatoly Yakovenko
ebb089b3f1
wip
2018-04-27 08:21:34 -07:00
Anatoly Yakovenko
ad6303f031
docs
2018-04-27 08:21:34 -07:00
Anatoly Yakovenko
828b9d6717
docs
2018-04-27 08:21:34 -07:00
Anatoly Yakovenko
444adcd1ca
update
2018-04-27 08:21:34 -07:00
Anatoly Yakovenko
69ac305883
wip
2018-04-27 08:21:34 -07:00
Anatoly Yakovenko
2ff57df2a0
state replication
2018-04-27 08:21:34 -07:00
Greg Fitzgerald
7077f4cbe2
Merge pull request #128 from garious/faster-demo
...
Utilize parallelized accountant in demo
2018-04-27 08:47:42 -06:00
Anatoly Yakovenko
d90ab90145
bind to all
2018-04-26 13:54:29 -07:00
Anatoly Yakovenko
48018b3f5b
docs
2018-04-26 13:50:57 -07:00
Anatoly Yakovenko
15584e7062
recover full network from a star
2018-04-26 13:48:42 -07:00
Greg Fitzgerald
d415b17146
sleepless demo to complement sleepless nights
...
18 ktps on macbook pro, no gpu
2018-04-26 13:17:38 -06:00
Greg Fitzgerald
9ed953e8c3
Fix rebase fails
2018-04-26 09:35:10 -06:00
Greg Fitzgerald
b60a98bd6e
Startup log can reference IDs without itself
2018-04-26 08:42:34 -06:00