Commit Graph

123 Commits

Author SHA1 Message Date
Emmanuel Odeke ae9c5b1ca0 hd: optimize ReverseBytes + add tests
* Optimized ReverseBytes to:
a) Minimally allocate --> 60.0% reduction in the number of allocations
b) Only walk halfway the length of the string thus performing
byte swaps from left to right. Improves the performance as well.
Complexity is O(n/2) instead of O(n) which is still O(n) but
benchmarks show the new time is in deed 1/2 of the original time.

* Added unit tests and some common cases to ensure correctness.

* Benchmark shoot out results:
```shell
name            old time/op    new time/op    delta
ReverseBytes-4     554ns ± 4%     242ns ± 3%  -56.20%  (p=0.000 n=10+10)

name            old alloc/op   new alloc/op   delta
ReverseBytes-4      208B ± 0%      114B ± 0%  -45.19%  (p=0.000 n=10+10)

name            old allocs/op  new allocs/op  delta
ReverseBytes-4      10.0 ± 0%       4.0 ± 0%  -60.00%  (p=0.000 n=10+10)
```
2017-07-28 12:21:41 -06:00
Ethan Frey bf355d1b58 Merge pull request #23 from tendermint/feature/short-recover-text
Shorter recovery seed
2017-07-27 16:11:03 -04:00
Ethan Frey 050b965708 Code cleanup ala Emmanuel 2017-07-27 15:59:59 -04:00
Ethan Frey 10222adaf1 Remove deprecated code. Now in basecoin/weave 2017-07-26 16:12:25 -04:00
Ethan Frey c20e83565c Recovery also works with secp256 keys 2017-07-22 05:53:46 -04:00
Ethan Frey 4ff889a236 Use 16 random bytes for seed and key, crc16 by default 2017-07-22 05:44:09 -04:00
Ethan Frey 65da3cf340 Add crc16 support 2017-07-22 05:25:59 -04:00
Ethan Frey d31cfbaeaa Fixed up help text for "keys recover" 2017-06-23 09:10:59 +02:00
Ethan Frey ad70b22226 Update to 0.2.1 2017-06-21 19:35:57 +02:00
Ethan Frey 8bdb5ceda4 Merge pull request #19 from tendermint/feature/cli-improvements
cli improvements
2017-06-21 19:00:25 +02:00
Ethan Frey d665c9ef10 Code cleanup from review comments 2017-06-21 18:57:32 +02:00
Ethan Frey a944bdebfc Make sure prompt looks good in interactive mode 2017-06-20 20:46:00 +02:00
Ethan Frey 1ab9ab9494 Add delete and recover commands, and test them 2017-06-20 20:34:13 +02:00
Ethan Frey e9537b2da6 Freshen up existing cmd files 2017-06-20 19:50:39 +02:00
Ethan Frey 7d08ea4c09 Fixed all tests and binaries to compile 2017-06-20 18:50:53 +02:00
Ethan Frey 53e19e3dfa Add codec to keys.Manager, recovery test passes 2017-06-20 18:35:16 +02:00
Ethan Frey 7108dedc21 Fix broken key manager tests 2017-06-20 18:19:13 +02:00
Ethan Frey 15609e1219 Updated Manager interface to return seed on create, fix server tests 2017-06-20 18:15:49 +02:00
Ethan Frey 56200e167a Use go-bindata to embed wordlist in a binary 2017-06-20 18:03:17 +02:00
Ethan Frey 878c8b3a87 Removed obsolete file 2017-06-20 17:51:25 +02:00
Ethan Frey 1e15c8f75b Extend wordcodec benchmarks 2017-06-20 17:13:10 +02:00
Ethan Frey daab270ff7 First obvious speedup 2017-06-20 17:02:58 +02:00
Ethan Frey 1e978ba838 Import multiple language wordbanks, test them 2017-06-20 16:53:07 +02:00
Ethan Frey 2c0d52f4b5 Add typo detector test, fix panics 2017-06-20 16:52:04 +02:00
Ethan Frey 65c880e753 Test validation of word banks upon load 2017-06-20 16:32:33 +02:00
Ethan Frey ad029d1293 Integrate ecc into word-byte codec 2017-06-20 16:10:15 +02:00
Ethan Frey 0b0e994cd1 Add crc64, constructors 2017-06-20 16:02:47 +02:00
Ethan Frey ce6b08761e Improve crc32 2017-06-20 15:56:12 +02:00
Ethan Frey 55a25f0f62 Add first pass of ecc checksuming 2017-06-20 15:49:17 +02:00
Ethan Frey e20cdfcbae Cleanup wordcodec 2017-06-20 15:20:40 +02:00
Ethan Frey 2278f566bf Add beginning of wordcodec for bytes 2017-06-20 14:57:49 +02:00
Ethan Frey ea4f45828d Update circle ci for new cli tests 2017-06-19 17:52:45 +02:00
Ethan Frey 0c32d2722f #17 - better support passwords in tests, more cli tests 2017-06-19 17:49:16 +02:00
Ethan Frey 0edd1297a9 Got basic key test working 2017-06-19 17:07:12 +02:00
Ethan Buchman 7dff40942a Merge pull request #15 from tendermint/develop
v0.2.0
2017-05-18 11:37:23 +02:00
Ethan Buchman c61497b56e CHANGELOG: update release date 2017-05-18 11:35:32 +02:00
Ethan Frey 438b16f1f8 Merge pull request #16 from tendermint/data-codegen
Use codegen to create wrappers for interfaces
2017-05-16 17:10:26 +02:00
Ethan Frey db5cb8d92c Change codegen name holder->wrapper 2017-05-16 17:02:48 +02:00
Ethan Frey bee63ce4ff Cleaned up build process, moved codegen to separate package in go-wire 2017-05-16 17:01:30 +02:00
Ethan Frey 79c580492e add make codegen for gen 2017-05-16 17:01:15 +02:00
Ethan Frey 746a2e286d Codegen wrappers for privkey and signature as well 2017-05-16 17:01:15 +02:00
Ethan Frey ee200d998f Fix unwrap for proper json format 2017-05-16 17:01:15 +02:00
Ethan Frey f16f711992 First code from codegen... wrong names 2017-05-16 17:01:03 +02:00
Ethan Frey c38a6f55b3 Prepare for codegen 2017-05-16 17:01:03 +02:00
Ethan Buchman a42b10e0fe update glide 2017-05-15 09:41:07 -04:00
Ethan Buchman d901fba662 add changelog and version 2017-05-15 09:40:20 -04:00
Ethan Frey e71bbb2509 Update to make full use of new tmlibs/cli helpers 2017-05-05 19:25:44 +02:00
Ethan Frey 524ba917a3 Use new PrepareMainCmd from tmlibs/cli 2017-05-02 17:18:08 +02:00
Ethan Frey 197a2b270f Consolidate keys.Manager interface 2017-04-27 20:59:48 +02:00
Ethan Buchman 9b95da8fa4 go-data -> go-wire/data 2017-04-21 16:10:06 -04:00