Commit Graph

212 Commits

Author SHA1 Message Date
Greg Fitzgerald a86be9ebf2
Merge pull request #56 from garious/add-conditions
Add conditions to transactions
2018-03-08 11:15:31 -07:00
Greg Fitzgerald ad6665c8b6 Complete timestamp and signature transactions 2018-03-08 11:06:52 -07:00
Greg Fitzgerald 923162ae9d WIP: process timestamps 2018-03-08 10:19:54 -07:00
Greg Fitzgerald dd2bd67049 Add a barebones test for transaction conditions 2018-03-08 08:58:34 -07:00
Greg Fitzgerald d500bbff04 Add public key to mint
This turns the mint into a handy way to generate public keys
without throwing the private key away.
2018-03-08 08:33:00 -07:00
Greg Fitzgerald e759bd1a99 Add conditions to the signature to reject duplicates 2018-03-08 08:18:34 -07:00
Greg Fitzgerald 94daf4cea4 Add Cancel and Timestamp events
Fixes #31, #34, #39
2018-03-08 08:17:34 -07:00
Greg Fitzgerald 2379792e0a Add DateTime and Cancel conditions
Fixes #32, #33
2018-03-08 08:17:08 -07:00
Greg Fitzgerald dba6d7a8a6
Update README.md 2018-03-07 17:20:40 -07:00
Greg Fitzgerald 086c206b76
Merge pull request #55 from garious/the-mint
More intuitive demo, introducing The Mint
2018-03-07 17:18:24 -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 c1bc5f6a07
Merge pull request #54 from garious/imperative-genesis
Boot genesis block helper
2018-03-07 11:19:16 -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 54340ed4c6 Delete debugging println
Thanks @jackson-sandland!
2018-03-06 21:17:41 -07:00
Greg Fitzgerald 96a0a9202c
Update README.md 2018-03-06 21:12:50 -07:00
Greg Fitzgerald a4c081d3a1
Merge pull request #53 from garious/monorphic-entry
Monomorphisize Entry and Event
2018-03-06 20:39:11 -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 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