Commit Graph

235 Commits

Author SHA1 Message Date
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
Greg Fitzgerald 9a38d61048
Version bump 2018-06-29 21:23:50 -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 a9881aee05 Add base58-encoded addresses 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 c05416e27d Turn simple-client-demo into a simpler wallet 2018-06-27 17:35:50 -06: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 ac40434cdf Initial simple client demo commit 2018-06-27 13:01:29 -06:00
OEM Configuration (temporary user) 551f639259 Some pull request fixes(linting + documentation) 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 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 25976771d9
Version bump 2018-06-22 22:38:18 -07:00
Tyera Eulberg f31868b913 Rename drone bin; fix usage statement 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
Greg Fitzgerald 410272ee1d Update generic_array
Warning: this may have performance implications.
2018-06-20 11:41:54 -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
Robert Kelly 7b7c7cba21 changed atty library 2018-06-13 19:17:21 -07:00
Greg Fitzgerald e44d423e83 Make version syntax consistent
Using no symbol implies its a symver caret requirement.

https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html
2018-06-11 15:51:25 -06:00
Greg Fitzgerald 5435bb734c Upgrade rand 2018-06-11 15:51:25 -06:00
Anatoly Yakovenko 849928887e undo 2018-06-07 13:52:33 -06:00
Anatoly Yakovenko ba1163d49f fix logs 2018-06-07 13:52:33 -06:00
Greg Fitzgerald 4f5ac78b7e
Add readme to crates.io 2018-06-06 15:00:25 -06:00
Greg Fitzgerald b66ebf5dec
Version bump 2018-06-01 17:10:37 -06:00
Greg Fitzgerald 53ecaa03f1 Need another beta 2018-05-31 19:08:09 -06:00
Greg Fitzgerald 205c1aa505 Version bump 2018-05-31 18:49:41 -06:00
Greg Fitzgerald 4b8c36b6b9 Add solana-fullnode-config 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 ef8eac92e3 Version bump 2018-05-29 20:33:45 -07: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 02ddd89653
Version bump
And solana.io -> solana.com
2018-05-25 15:37: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 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
Stephen Akridge bd0671e123 Rework sig processing threads and add perf for process/verify 2018-05-08 11:49:29 -07:00
Greg Fitzgerald 6af3680f99 Version bump 2018-04-30 22:38:39 -06:00
Greg Fitzgerald 3cfb571356 Version bump
Former-commit-id: f7385e866207b3ec2269bac36d52ef1e7f09337c
2018-04-27 15:49:48 -07: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
Anatoly Yakovenko d366a07403 add gregs abstract as an intro 2018-04-18 20:17:37 -07:00
Stephen Akridge dea5ab2f79 Add erasure rust logic under feature flag 2018-04-18 19:42:09 -07: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
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 e683c34a89 Version bump 2018-03-31 14:44:43 -06:00
Greg Fitzgerald eaec25f940
Version bump 2018-03-29 15:05:38 -06:00
Greg Fitzgerald 7656b55c22
nit 2018-03-27 17:22:31 -06:00
Greg Fitzgerald 116166f62d Rename project: silk -> solana 2018-03-27 16:25:12 -06:00
Greg Fitzgerald 26b19dde75
Rename project: silk -> solana 2018-03-27 16:19:28 -06:00
Greg Fitzgerald caa9a846ed Boot sha2-asm
Stick with pure Rust until someone can write a benchmark that
demonstrates that sha2-asm adds value. If we go with a GPU
implementation first, we may never need to do that.
2018-03-19 16:42:30 -06:00
Anatoly Yakovenko 069f9f0d5d add ipv6 flag to cargo.toml 2018-03-11 12:53:16 -05:00
Anatoly Yakovenko 0135971769 Fast UdpSocket reader
* message needs to fit into 256 bytes
* allocator to keep track of blocks of messages
* udp socket receiver server that fills up the block as fast as possible
* udp socket sender server that sends out the block as fast as possible
2018-03-10 21:09:23 -06:00
Greg Fitzgerald 209910299d Version bump
Next release probably won't have a compatible entry log with the
0.3.x line.
2018-03-09 14:33:37 -07:00
Greg Fitzgerald 957fb0667c Deterministic historian/accountant hashes
When in tick-less mode, no longer continuously hash on the
background thread. That mode is just used for testing and
genesis log generation, and those extra hashes are just noise.

Note that without the extra hashes, with lose the duration between
events. Effectively, we distinguish proof-of-order from proof-of-time.
2018-03-09 06:58:40 -07:00
Greg Fitzgerald 8d17aed785 Process timestamps as they are added 2018-03-08 15:39:03 -07:00
Greg Fitzgerald 2379792e0a Add DateTime and Cancel conditions
Fixes #32, #33
2018-03-08 08:17:08 -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 9b26892bae Add a demo app to generate the genesis file 2018-03-04 01:21:40 -07:00
Greg Fitzgerald 11a0f96f5e Add command-line tool for generating a genesis block 2018-03-03 17:35:05 -07:00
Greg Fitzgerald 4610de8fdd Switch to sync_channel to preserve order 2018-02-28 19:33:28 -07:00
Greg Fitzgerald 3fcc2dd944 Add testnode
Fixes #20
2018-02-28 18:05:20 -07:00
Greg Fitzgerald 604ccf7552 Add network interface for accountant 2018-02-28 14:00:04 -07:00
Greg Fitzgerald 0443b39264 Allow event log to hold events of any serializable (hashable) type 2018-02-26 16:42:31 -07:00
Greg Fitzgerald 944181a30e Version bump 2018-02-24 11:06:08 -07:00
Greg Fitzgerald 08e501e57b Extend the event log with a Claim event to claim possession
Unlike a Discovery event, a Claim event associates a public key
with a hash. It's intended to to be used to claim ownership of
some hashable data. For example, a graphic designer could claim
copyright by hashing some image they created, signing it with
their private key, and publishing the hash-signature pair via
the historian. If someone else tries to claim it as their own,
the designer can point to the historian's log as cryptographically
secure evidence that the designer's copy existed before anyone
else's.

Note there's nothing here that verifies the first claim is the actual
content owner, only that the first claim almost certainly happened
before a second.
2018-02-24 10:09:49 -07:00
Greg Fitzgerald 513a1adf57 Version bump 2018-02-21 12:01:17 -07:00
Greg Fitzgerald fa4e232d73 Add serialization/deseriation support to event log
See bincode and serde_json for usage:
https://github.com/TyOverby/bincode

Fixes #1
2018-02-20 16:26:13 -07:00
Greg Fitzgerald d97112d7f0 Explain proof-of-history in the readme
Also:
* Hash userdata so that verification works as the readme describes.
* Drop itertools package. Found a way to use std::iter instead.

Fixes #8
2018-02-20 14:04:49 -07:00
Greg Fitzgerald e57bba17c1 Version bump 2018-02-19 16:59:41 -07:00
Greg Fitzgerald 0297edaf1f Use sha256 hashes instead of Rust's builtin hasher.
Causes a 20x performance degradation. Enabling asm did not
speed things up.
2018-02-19 16:23:53 -07:00
Greg Fitzgerald d88d1b2a09 Reset historian's hasher between events
Hasher will generate different hashes for the same input if it
had already generated a hash.

Also add a binary to ensure the example in the README works.
2018-02-19 12:03:06 -07:00
Greg Fitzgerald a7186328e0 Add docs
Fixes #11
2018-02-19 09:27:14 -07:00
Greg Fitzgerald b7a95ab7cc Re-add docs link 2018-02-16 12:40:33 -07:00
Greg Fitzgerald bf35b730de More metadata 2018-02-16 12:37:20 -07:00
Greg Fitzgerald ebe00f40fa Version bump 2018-02-16 12:24:55 -07:00
Greg Fitzgerald ae41de91c2 Fix codecov badge url 2018-02-16 12:19:32 -07:00
Greg Fitzgerald daa594cc64 Use SPDX identifier for license name 2018-02-16 12:17:28 -07:00
Greg Fitzgerald 6a04ccca5b Add description and badge 2018-02-16 12:11:51 -07:00
Greg Fitzgerald 48ec84c399 Prep for ownership transfer and rename 2018-02-16 11:53:14 -07:00
Greg Fitzgerald da01f45d39 Rename the project 2018-02-16 11:49:21 -07:00
Greg Fitzgerald 306619c2a9 Upgrade dependencies
* This patch assumes Travis is already pointing 'stable' to 1.24
2018-02-15 15:26:52 -07:00
Greg Fitzgerald b5645bc776 Rename project 2018-02-15 13:59:33 -07:00
Greg Fitzgerald 31d79727b6 Parallelize verification 2018-02-14 15:23:13 -07:00
Greg Fitzgerald bad95b7712 cargo init 2018-02-14 07:23:59 -07:00