Commit Graph

59 Commits

Author SHA1 Message Date
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 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
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
Rob Walker 2f42658cd4 ... 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 d5c0557891 Fix test_replicate too 2018-06-26 16:51:07 -06: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
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
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
Anatoly Yakovenko 586141adb2 Cleanup TVU docs 2018-06-15 22:45:35 -06: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
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
Greg Fitzgerald 7aa05618a3 data_replicator -> ncp
Fixes #327
2018-06-07 17:11:17 -06:00
anatoly yakovenko 216510c573
repair socket and receiver thread (#303)
repair socket and receiver thread
2018-06-02 08:32:51 -07: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 cf5671d058 tr -> tx
Missed a few.
2018-05-29 10:38:58 -06:00
Greg Fitzgerald 58c1589688 More 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 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
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
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 437c485e5c cleanup 2018-05-23 12:07:44 -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
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 9c62f8d81f Add Event::Transaction constructor 2018-05-16 23:18:58 -07:00
Greg Fitzgerald f7083e0923 Remove transaction processing from RPU and request processing from TVU 2018-05-15 12:15:29 -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 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
Greg Fitzgerald 81706f2d75 Move write_service and drain_service into new write_stage module 2018-05-14 16:31:31 -06: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 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 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 cc447c0fda Drop support for EntryInfo subscriptions 2018-05-14 09:53:57 -06:00