Commit Graph

20243 Commits

Author SHA1 Message Date
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 0eb6849fe3
Merge pull request #52 from garious/add-transaction-struct
Break dependency cycle
2018-03-06 17:53:48 -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 5d990502cb
Merge pull request #51 from jackson-sandland/50-proof-read-README
Issue #50 - proof read README
2018-03-06 17:39:33 -07:00
Jackson Sandland 64735da716 Issue #50 - proof read README 2018-03-06 16:21:45 -08:00
Greg Fitzgerald 95b82aa6dc
Merge pull request #49 from garious/add-transaction-struct
DRY up transaction signing
2018-03-06 16:48:27 -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 b98e04dc56
Update README.md 2018-03-06 15:03:06 -07:00
Greg Fitzgerald cb436250da
Merge pull request #48 from garious/add-transaction-struct
data -> asset
2018-03-06 15:01:56 -07:00
Greg Fitzgerald 4376032e3a data -> asset
'data' is too vague.
2018-03-06 14:50:32 -07:00
Greg Fitzgerald c231331e05
Merge pull request #47 from garious/add-transaction-struct
Reorg
2018-03-06 12:57:49 -07:00
Greg Fitzgerald 624c151ca2 Add signature module
Because things other than transactions can be signed.
2018-03-06 12:48:28 -07:00
Greg Fitzgerald 5d0356f74b Move verify_entry to a method as well 2018-03-06 12:35:12 -07:00
Greg Fitzgerald b019416518 Move verify into methods
A little overly-coupled to Serialize, but makes the code a lot tighter
2018-03-06 12:27:08 -07:00
Greg Fitzgerald 4fcd9e3bd6 Give Transaction its own module 2018-03-06 12:18:17 -07:00
Greg Fitzgerald 66bf889c39 Rename Transfer to Transaction
struct names should be nouns
2018-03-06 11:54:47 -07:00
Greg Fitzgerald a2811842c8 More cleanup
Far fewer branches when we process transfers outside the context
of events.
2018-03-06 11:43:55 -07:00
Greg Fitzgerald 1929601425 Cleanup
Now that Transfer is out of the enum, we don't need to pattern
match to access its fields.
2018-03-06 11:19:59 -07:00
Greg Fitzgerald 282afee47e Use Transfer struct on the client side too
Sharing is caring.
2018-03-06 11:03:43 -07:00
Greg Fitzgerald e701ccc949 Rename Request::Transfer to Request::Transaction 2018-03-06 10:59:47 -07:00
Greg Fitzgerald 6543497c17 Move Transaction data into its own struct
This will allow us to add addition transfer types to the log.
2018-03-06 10:50:32 -07:00
Greg Fitzgerald 7d9af5a937
Merge pull request #46 from garious/be-negative
Allow balances to be negative
2018-03-05 23:47:02 -07:00
Greg Fitzgerald 720c54a5bb Allow balances to be negative
* Will allow owners to loan token to others.
* Will allow for parallel verification of balances without spilling
  over 64 bits.

Fixes #43
2018-03-05 17:30:53 -07:00
Greg Fitzgerald 5dca3c41f2
Update README.md 2018-03-05 16:19:26 -07:00
Greg Fitzgerald 929546f60b
Update README.md 2018-03-05 16:18:46 -07:00
Greg Fitzgerald cb0ce9986c
Merge pull request #45 from garious/init-from-log
Towards sending the log to clients
2018-03-05 16:17:41 -07:00
Greg Fitzgerald 064eba00fd Update readme 2018-03-05 16:05:16 -07: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 298989c4b9 Generate log from Genesis 2018-03-05 13:03:56 -07:00
Greg Fitzgerald 48c28c2267 Transactions now require a hash of the last entry they've seen
This ensures the transaction cannot be processed on a chain
that forked before that ID. It will also provide a basis for
expiration constraints. A client may want their transaction
to expire, and the generators may want to reject transactions
that have been floating in the ether for years.
2018-03-05 12:48:14 -07:00
Greg Fitzgerald d76ecbc9c9 Don't block the server 2018-03-05 11:39:59 -07:00
Greg Fitzgerald 79fb9c00aa Boot wait_on_signature() from accountant
Instead, there should be a way to query for a page of log data,
and checking whether it has a signature should be done client-side.
2018-03-05 10:45:18 -07:00
Greg Fitzgerald c9e03f37ce Logger now only speaks when spoken to
Before this change, the logger's send channel could quickly be
flooded with Tick events. Those events should only be passed to
a writer.

Also, the log_event() function no longer sends entries. That
functionality moved to the new process_events() function. This
will allow us to initialize the with the genesis block without
flooding the send channel with events the historian won't read.
2018-03-05 10:33:12 -07:00
Greg Fitzgerald aa5f1699a7 Update the set of unique signatures when loading an existing log. 2018-03-04 22:31:12 -07:00
Greg Fitzgerald e1e9126d03
Merge pull request #44 from garious/genesis
Finally, genesis block generation without channels
2018-03-04 14:39:28 -07:00
Greg Fitzgerald 672a4b3723
Update historian diagram 2018-03-04 14:36:55 -07:00
Greg Fitzgerald 955f76baab Finally, genesis block generation without channels 2018-03-04 14:32:30 -07:00
Greg Fitzgerald 7da8a5e2d1
Merge pull request #42 from garious/genesis
Make num_hashes more intuitive
2018-03-04 13:05:38 -07:00
Greg Fitzgerald ff82fbf112 Make num_hashes mean the num_hashes since the last ID
Before this change, num_hashes meant the number of hashes since
the last ID, minus any hashing done on the event data. It made
no difference for Tick events, but logged Transaction events with
one less hash than actually occurred.
2018-03-04 09:52:36 -07:00
Greg Fitzgerald 8503a0a58f Refactor 2018-03-04 09:21:45 -07:00
Greg Fitzgerald b1e9512f44 Rename end_hash to id 2018-03-04 07:50:26 -07:00
Greg Fitzgerald 608def9c78 Consolidate imports 2018-03-04 07:28:51 -07:00
Greg Fitzgerald bcb21bc1d8 Delete dead code 2018-03-04 07:20:17 -07:00
Greg Fitzgerald f63096620a
Merge pull request #41 from garious/genesis
Add command-line tool for generating a genesis block
2018-03-04 01:27:59 -07:00
Greg Fitzgerald 9b26892bae Add a demo app to generate the genesis file 2018-03-04 01:21:40 -07:00
Greg Fitzgerald 572475ce14 Load the genesis block 2018-03-04 00:15:17 -07:00
Greg Fitzgerald 876d7995e1 Refactor to support loading an existing ledger 2018-03-03 22:25:40 -07:00
Greg Fitzgerald b8655e30d4 Make client-demo standalone
And remove deposit() methods from the API. Those should only be
used on the server to bootstrap.
2018-03-03 21:15:51 -07:00