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
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
Anatoly Yakovenko
6f991b3c11
Send keypair args for validators instead of leaders
2018-07-11 07:54:38 -06: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
Anatoly Yakovenko
63985d4595
renamed to contact_info
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
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
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
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
Greg Fitzgerald
5d8b2f899a
Fix wallet doc
2018-07-02 19:21:03 -07: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
b8fe5ae076
rename server to fullnode
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
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
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
Greg Fitzgerald
4e3526394e
Use IntoInterator to simplify write_entries() usage
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
669164bada
Boot EntryWriter's Mutex
...
Finally!
2018-07-01 17:29:24 -06:00
Greg Fitzgerald
b60802ddff
Refactor such that genesis can use entry_writer
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
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
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
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
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
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
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
e929404676
comments
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
88503c2a09
generic array fail case
2018-06-24 11:17:55 -06:00
Tyera Eulberg
80c01dc085
Use leader.json or ReplicatedData to get ports for drone
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
Rob Walker
eec19c6d2c
move genesis to new Entry generation
2018-06-22 17:46:45 -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
64cf69045a
Add request-count check; Clean up solana-drone and fmt
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
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
Greg Fitzgerald
c40000aeda
Fix compiler warning
2018-06-18 15:49:41 -07:00
Michael Vines
92599acfca
Abort when -l is not present or unreadable
2018-06-16 09:55:03 -07:00
Michael Vines
15c7f36ea3
Improve error reporting
2018-06-15 17:10:00 -07: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
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
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
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
Greg Fitzgerald
5435bb734c
Upgrade rand
2018-06-11 15:51:25 -06:00
Greg Fitzgerald
7aa05618a3
data_replicator -> ncp
...
Fixes #327
2018-06-07 17:11:17 -06:00
anatoly yakovenko
77c9e801aa
fixed client demo ( #325 )
...
* fixed client demo
2018-06-07 13:51:15 -07:00
Stephen Akridge
cb81f80b31
Enable logging for client demo
2018-06-05 15:32: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
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
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
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
ac0791826a
plan.rs -> payment_plan.rs
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
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
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
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
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
342cc7350a
poll both endpoints in client
2018-05-25 07:02:39 -06:00
Anatoly Yakovenko
c2c80232e3
logs
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
cc907ba69d
Add Instruction type
2018-05-24 10:10:41 -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
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
Anatoly Yakovenko
8049323ca8
@garious review
2018-05-23 12:07:44 -06:00
Anatoly Yakovenko
8646ff4927
refactor wip
2018-05-23 12:07:44 -06:00
Anatoly Yakovenko
437c485e5c
cleanup
2018-05-23 12:07:44 -06: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
Stephen Akridge
8454eb79d0
Send events to the right address and set recv socket timeout
2018-05-22 13:52:50 -07:00
Greg Fitzgerald
6c1f1c2a7a
Promote create_entry() to Entry::new()
2018-05-16 23:18:58 -07: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
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
ee3fb985ea
Hoist set_timeout
2018-05-15 09:42:28 -06:00
Greg Fitzgerald
d2dd005a59
accountant -> bank
2018-05-14 15:33:11 -06:00
Greg Fitzgerald
685de30047
Purge EventProcessor from RPU
2018-05-14 14:35:25 -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
a3d2831f8c
Free up the name 'accounting_stage'
2018-05-12 14:05:57 -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
b4ca414492
More object-oriented
2018-05-12 00:19:12 -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
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
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
Tyera Eulberg
8b7f7f1088
Generalize next tick functions to carry events
2018-05-11 09:45:42 -06:00
Greg Fitzgerald
4f629dd982
Add events socket instead of modifying the existing socket
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
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
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
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
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
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
Greg Fitzgerald
9ff1a6f0cd
Add a thread to support thin clients
2018-05-07 21:44:44 -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
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
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
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
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
Greg Fitzgerald
a15e30d4b3
Report transactions processed
2018-04-26 08:42:34 -06:00
Greg Fitzgerald
d5d133353f
Port blocking stub functions to new stateful ones
2018-04-26 08:42:34 -06:00
Greg Fitzgerald
58860ed19f
WIP: New demo that makes better use of the parallelized accountant
2018-04-26 08:42:34 -06:00
Greg Fitzgerald
583f652197
Generate genesis log for the demo
...
This log contains a bunch of transactions that generate new
accounts, so that transactions to and from them can be processed
in parallel.
2018-04-26 08:42:34 -06:00
Greg Fitzgerald
38fdd17067
Add initializing log message to server
...
Handy when gesesis block is large.
2018-04-26 08:42:34 -06:00
Greg Fitzgerald
807ccd15ba
Add solana-mint-demo CLI
...
This extends solana-mint with additional data that will be used by
both solana-client-demo and creating the demo's genesis block.
2018-04-26 08:42:34 -06:00
Robert Kelly
34d1805b54
Add FutureResult to return a Future that immediately resolves
2018-04-25 19:23:24 -07:00
rleungx
3da1fa4d88
improve the error messages
2018-04-21 21:52:55 +08:00
Stephen Akridge
8181bc591b
Add -h/--help options for client-demo and testnode
2018-04-19 10:22:31 -07:00
rleungx
60015aee04
report serde parse errors to stderr
2018-04-19 23:51:57 +08:00
rleungx
b91f6bcbff
report parse errors to stderr
2018-04-19 22:24:46 +08:00
Greg Fitzgerald
0a30bd74c1
Tell verifiers when not to parallelize accounting
...
Without this patch, many batches of transactions could be tossed
into a single entry, but the parallelized accountant can only
guarentee the transactions in the batch can be processed in
parallel.
This patch signals the historian to generate a new Entry after
each batch. Validators must maintain sequential consistency
across Entries.
2018-04-12 21:08:53 -06:00
Greg Fitzgerald
3b9ef5ccab
Fix the nightly build
2018-04-11 20:24:14 -06:00
Anatoly Yakovenko
c934a30f66
commandline options for client and testnode
2018-04-09 21:14:52 -07:00
Stephen Akridge
f4466c8c0a
Change for cuda verify integration
2018-04-05 20:00:44 -07:00
Greg Fitzgerald
0c60fdd2ce
Make accountant thread-safe
...
Before this change, parallel transaction processing required locking
the full accountant. Since we only call one method,
process_verified_transaction, the global lock equates to doing no
parallelization at all. With this change, we only lock the data that's
being written to.
2018-04-04 12:33:03 -06:00
Anatoly Yakovenko
5ac7df17f9
Implement window service
...
Batch out of order blobs until we have a contigious window.
2018-04-03 13:53:19 -07:00
Greg Fitzgerald
c323bd3c87
Fix clippy warnings
2018-04-03 09:55:33 -06:00
Greg Fitzgerald
94eea3abec
fmt
2018-04-02 21:15:21 -06:00
Greg Fitzgerald
daadae7987
Move replaying ledger out of accountant
2018-04-02 14:51:55 -06:00
Greg Fitzgerald
2b788d06b7
Move the historian up to accountant_skel
2018-04-02 14:41:07 -06:00
Greg Fitzgerald
da2b4962a9
Move verify_slice() into a trait
2018-04-02 11:43:38 -06:00
Greg Fitzgerald
46e8c09bd8
Revoke API access to first_id
2018-04-02 09:30:10 -06:00
Greg Fitzgerald
2f1e585446
Better benchmark
...
Tolerates dropped UDP packets
2018-03-29 13:41:11 -06:00
Greg Fitzgerald
878ca8c5c5
Add microbenchmark for signature verification
2018-03-28 22:02:47 -06:00
Greg Fitzgerald
0bec360a31
Revert TCP sync of ledger
...
The feature was too rushed. We technically don't need it until we
implement consensus. It'll come back another day (with many more tests!)
2018-03-28 20:16:15 -06:00
Greg Fitzgerald
98c0a2af87
tx confirmed/sec ---> tx processed/sec
...
Before this patch, we were waiting until the full log was
sent back across the wire, parsed, and interpreted. That was giving
us a metric of "transactions confirmed per second" instead of
"transactions processed per second". Instead, we'll just send one
tiny packet back with the balance. As soon as the balance is what
we expect it to be, we end the benchmark.
2018-03-28 16:51:21 -06:00
Greg Fitzgerald
849bced602
Fix up client demo
2018-03-28 14:40:58 -06:00
Greg Fitzgerald
27f29019ef
Merge pull request #83 from garious/tcp-client
...
TCP subscription service
2018-03-28 13:19:38 -06:00
Greg Fitzgerald
116166f62d
Rename project: silk -> solana
2018-03-27 16:25:12 -06:00
Greg Fitzgerald
13206e4976
Let clients subscribe to the ledger over TCP
...
TODO: Add more tests
Fixes #27
2018-03-27 14:46:24 -06:00
Greg Fitzgerald
ddb21d151d
Nightly rustfmt
...
Format code with the nightly version of rustfmt, which sorts imports.
2018-03-26 22:03:28 -06:00
Anatoly Yakovenko
14239e584f
fix writer
2018-03-26 21:36:29 -06:00
Greg Fitzgerald
9a437f0d38
Revive silk-testnode
2018-03-23 21:49:28 -06:00
Greg Fitzgerald
383d445ba1
Clippy review
2018-03-22 14:15:29 -06:00
Greg Fitzgerald
803dcb0800
Mutex<bool> -> AtomicBool
2018-03-22 14:05:23 -06:00
Greg Fitzgerald
9f232bac58
Allow clients to sync the ledger
...
Fixes #4
2018-03-21 15:46:49 -06:00
Greg Fitzgerald
64af37e0cd
logger -> recorder
...
Free up namespace for a traditional runtime logger.
2018-03-19 10:16:21 -06:00
Greg Fitzgerald
9f9b79f30b
log -> ledger
...
Free up namespace for traditional runtime logs.
2018-03-19 10:09:19 -06:00
Anatoly Yakovenko
eb94613d7d
Use streaming socket interface within accountant
...
Pull messages from streamer process them and forward them to the sender.
2018-03-11 23:41:09 -05:00
Greg Fitzgerald
49281b24e5
Move Tick out of Event
...
Every Entry is now a Tick and the entries contain events.
2018-03-09 17:22:17 -07:00
Greg Fitzgerald
cc9f0788aa
Batch events
...
It's now a Tick that locks down event order. Before this change, the
event order would be locked down in the order the server sees it.
Fixes #59
Fixes #61
2018-03-09 16:16:33 -07:00
Greg Fitzgerald
5dd567deef
Rename Genesis to Mint
...
Genesis is a story of creation. We should only use that term to
for the event log that bootstraps the system.
2018-03-07 17:08:15 -07:00
Greg Fitzgerald
b6d8f737ca
Introducing, the mint
...
Use the mint to pair a new private key with new tokens.
2018-03-07 16:58:04 -07:00
Greg Fitzgerald
491ba9da84
Add accessors to keypairs and signatures
2018-03-07 15:32:22 -07:00
Greg Fitzgerald
a420a9293f
Fix demo
2018-03-07 11:37:30 -07:00
Greg Fitzgerald
9834c251d0
Boot genesis block helper
...
Before this change, if you wanted to use a new Transaction
feature in the genesis block, you'd need to extend its
Creator object and associated methods. With yesterday's
addtions to Transcation, it's now so easy to work with
Transactions directly that we can get rid of the middleman.
Also added a KeyPair type alias, so that ring could be easily swapped
out with a competing library, if needed.
2018-03-07 11:10:15 -07:00
Greg Fitzgerald
d1b6206858
Monomorphisize Entry and Event
...
Transaction turned out to be the only struct worth making generic.
2018-03-06 20:29:18 -07:00
Greg Fitzgerald
b725fdb093
Sha256Hash -> Hash
...
Because in Loom, there's just the one. Hopefully no worries that it
shares a name with std::Hash.
2018-03-06 17:40:01 -07:00
Greg Fitzgerald
1436bb1ff2
Move entry into its own module
...
Hmm, Logger doesn't depend on log.
2018-03-06 17:40:01 -07:00
Greg Fitzgerald
5a44c36b1f
Move hash into its own module
2018-03-06 17:40:01 -07:00
Greg Fitzgerald
f09952f3d7
DRY up transaction signing
...
Cleanup the big mess I copy-pasted myself into.
2018-03-06 16:34:25 -07:00
Greg Fitzgerald
4376032e3a
data -> asset
...
'data' is too vague.
2018-03-06 14:50:32 -07:00