dd2bd67049
Add a barebones test for transaction conditions
2018-03-08 08:58:34 -07:00
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
e759bd1a99
Add conditions to the signature to reject duplicates
2018-03-08 08:18:34 -07:00
94daf4cea4
Add Cancel and Timestamp events
...
Fixes #31 , #34 , #39
2018-03-08 08:17:34 -07:00
2379792e0a
Add DateTime and Cancel conditions
...
Fixes #32 , #33
2018-03-08 08:17:08 -07:00
dba6d7a8a6
Update README.md
2018-03-07 17:20:40 -07:00
086c206b76
Merge pull request #55 from garious/the-mint
...
More intuitive demo, introducing The Mint
2018-03-07 17:18:24 -07:00
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
b6d8f737ca
Introducing, the mint
...
Use the mint to pair a new private key with new tokens.
2018-03-07 16:58:04 -07:00
491ba9da84
Add accessors to keypairs and signatures
2018-03-07 15:32:22 -07:00
a420a9293f
Fix demo
2018-03-07 11:37:30 -07:00
c1bc5f6a07
Merge pull request #54 from garious/imperative-genesis
...
Boot genesis block helper
2018-03-07 11:19:16 -07:00
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
54340ed4c6
Delete debugging println
...
Thanks @jackson-sandland!
2018-03-06 21:17:41 -07:00
96a0a9202c
Update README.md
2018-03-06 21:12:50 -07:00
a4c081d3a1
Merge pull request #53 from garious/monorphic-entry
...
Monomorphisize Entry and Event
2018-03-06 20:39:11 -07:00
d1b6206858
Monomorphisize Entry and Event
...
Transaction turned out to be the only struct worth making generic.
2018-03-06 20:29:18 -07:00
0eb6849fe3
Merge pull request #52 from garious/add-transaction-struct
...
Break dependency cycle
2018-03-06 17:53:48 -07:00
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
1436bb1ff2
Move entry into its own module
...
Hmm, Logger doesn't depend on log.
2018-03-06 17:40:01 -07:00
5a44c36b1f
Move hash into its own module
2018-03-06 17:40:01 -07:00
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
64735da716
Issue #50 - proof read README
2018-03-06 16:21:45 -08:00
95b82aa6dc
Merge pull request #49 from garious/add-transaction-struct
...
DRY up transaction signing
2018-03-06 16:48:27 -07:00
f09952f3d7
DRY up transaction signing
...
Cleanup the big mess I copy-pasted myself into.
2018-03-06 16:34:25 -07:00
b98e04dc56
Update README.md
2018-03-06 15:03:06 -07:00
cb436250da
Merge pull request #48 from garious/add-transaction-struct
...
data -> asset
2018-03-06 15:01:56 -07:00
4376032e3a
data -> asset
...
'data' is too vague.
2018-03-06 14:50:32 -07:00
c231331e05
Merge pull request #47 from garious/add-transaction-struct
...
Reorg
2018-03-06 12:57:49 -07:00
624c151ca2
Add signature module
...
Because things other than transactions can be signed.
2018-03-06 12:48:28 -07:00
5d0356f74b
Move verify_entry to a method as well
2018-03-06 12:35:12 -07:00
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
4fcd9e3bd6
Give Transaction its own module
2018-03-06 12:18:17 -07:00
66bf889c39
Rename Transfer to Transaction
...
struct names should be nouns
2018-03-06 11:54:47 -07:00
a2811842c8
More cleanup
...
Far fewer branches when we process transfers outside the context
of events.
2018-03-06 11:43:55 -07:00
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
282afee47e
Use Transfer struct on the client side too
...
Sharing is caring.
2018-03-06 11:03:43 -07:00
e701ccc949
Rename Request::Transfer to Request::Transaction
2018-03-06 10:59:47 -07:00
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
7d9af5a937
Merge pull request #46 from garious/be-negative
...
Allow balances to be negative
2018-03-05 23:47:02 -07:00
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
5dca3c41f2
Update README.md
2018-03-05 16:19:26 -07:00
929546f60b
Update README.md
2018-03-05 16:18:46 -07:00
cb0ce9986c
Merge pull request #45 from garious/init-from-log
...
Towards sending the log to clients
2018-03-05 16:17:41 -07:00
064eba00fd
Update readme
2018-03-05 16:05:16 -07:00
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
298989c4b9
Generate log from Genesis
2018-03-05 13:03:56 -07:00
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
d76ecbc9c9
Don't block the server
2018-03-05 11:39:59 -07:00
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