Commit Graph

37 Commits

Author SHA1 Message Date
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
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
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
4b9f115586 Hoist Historian input 2018-05-02 16:35:37 -06:00
Greg Fitzgerald
b60a98bd6e Startup log can reference IDs without itself 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
38fdd17067 Add initializing log message to server
Handy when gesesis block is large.
2018-04-26 08:42:34 -06: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
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
46e8c09bd8 Revoke API access to first_id 2018-04-02 09:30:10 -06:00
Greg Fitzgerald
116166f62d Rename project: silk -> solana 2018-03-27 16:25:12 -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
803dcb0800 Mutex<bool> -> AtomicBool 2018-03-22 14:05:23 -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
a4336a39d6 Initialize the testnode from a log
$ cargo run --bin silk-genesis-file-demo > demo-genesis.json
$ cat demo-genesis.json | cargo run --bin silk-genesis-block > demo-genesis.log
$ cat demo-genesis.log | cargo run --bin silk-testnode
2018-03-05 15:34:44 -07:00
Greg Fitzgerald
572475ce14 Load the genesis block 2018-03-04 00:15:17 -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