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
Greg Fitzgerald
7cf0d55546
Remove optional 'from' field
2018-03-03 20:41:07 -07:00
Greg Fitzgerald
ce60b960c0
Special case sending money to self
...
In the genesis block, let matching 'from' and 'to' keys be used
to mint new coin.
2018-03-03 20:27:12 -07:00
Greg Fitzgerald
cebcb5b92d
Start genesis with a Tick, so that its hash can be used to bootstrap verification
2018-03-03 19:57:22 -07:00
Greg Fitzgerald
11a0f96f5e
Add command-line tool for generating a genesis block
2018-03-03 17:35:05 -07:00
Greg Fitzgerald
74ebaf1744
Merge pull request #40 from garious/add-logger
...
Add logger
2018-03-03 14:37:15 -07:00
Greg Fitzgerald
f7496ea6d1
Make create_logger a static method
...
Allows us to share the super long type signature in impl.
2018-03-03 14:26:59 -07:00
Greg Fitzgerald
bebba7dc1f
Give logger its own crate
2018-03-03 14:24:32 -07:00
Greg Fitzgerald
afb2bf442c
Use Instant instead of SystemTime for more precise ticking
...
And convert log_event from function to method
2018-03-03 14:08:53 -07:00
Greg Fitzgerald
c7de48c982
Convert log_events from function to method
2018-03-03 14:00:37 -07:00
Greg Fitzgerald
f906112c03
Move logging thread's state into a struct
2018-03-03 13:52:57 -07:00
Greg Fitzgerald
8ef864fb39
Merge pull request #37 from garious/split-benchmark
...
Split benchmark
2018-03-03 12:13:54 -07:00
Greg Fitzgerald
1c9b5ab53c
Report performance of signature verification too
2018-03-03 11:59:34 -07:00
Greg Fitzgerald
c10faae3b5
More readable metrics
2018-03-03 11:52:50 -07:00
Greg Fitzgerald
2104dd5a0a
Fix benchmark
...
Was measuring the creation of the iterator, not running it.
2018-03-03 11:45:23 -07:00
Greg Fitzgerald
fbe64037db
Merge pull request #35 from garious/split-benchmark
...
Move key generation and signing from transaction benchmark
2018-03-03 11:25:58 -07:00
Greg Fitzgerald
d8c50b150c
Move key generation and signing from transaction benchmark
...
Key generation, signing and verification are not the performance
bottleneck. Something is probably wrong here.
2018-03-03 11:11:46 -07:00
Greg Fitzgerald
8871bb2d8e
Merge pull request #30 from garious/simplify
...
Unify Claim and Transaction handling
2018-03-02 12:24:44 -07:00
Greg Fitzgerald
a148454376
Update readme
2018-03-02 12:07:05 -07:00
Greg Fitzgerald
be518b569b
Remove cyclic dependency between event and log
2018-03-02 12:03:59 -07:00
Greg Fitzgerald
c998fbe2ae
Sign the owner's public key
...
Without this, the accountant will reject transfers from different
entities if they are for the same amount and to the same entity.
2018-03-02 11:56:42 -07:00
Greg Fitzgerald
9f12cd0c09
Purge the Claim event type
...
It's now represented as a Transaction from an unknown party.
2018-03-02 11:48:58 -07:00
Greg Fitzgerald
0d0fee1ca1
Sign Claim's 'to' field
...
Otherwise, the accountant will treat deposits of the same amount as
duplicates.
2018-03-02 11:46:22 -07:00
Greg Fitzgerald
a0410c4677
Pipe all Claim constructors through a function
2018-03-02 10:58:43 -07:00
Greg Fitzgerald
8fe464cfa3
Rename Claim's key field to match same field in Transaction
2018-03-02 10:47:21 -07:00
Greg Fitzgerald
3e2d6d9e8b
Generalize Transaction to express a Claim
...
If a Transaction doesn't have an existing address, it's being used
to create new funds.
2018-03-02 10:41:15 -07:00
Greg Fitzgerald
32d677787b
Reduce transactions sent by demo
...
We don't do retries yet, so keep tx count to something that won't
trigger any packet loss.
2018-03-02 10:35:38 -07:00