Updated Nimbus Roadmap (markdown)

Eugene Kabanov 2018-05-04 13:59:47 +03:00
parent e999d8b5b1
commit 5f6fdedbba
1 changed files with 15 additions and 9 deletions

@ -8,18 +8,18 @@ tasks are specified in the same level of detail.
## Development tasks:
### 1. Select an AES and SHA256 implementation
### 1. Select an AES and SHA256 implementation. (COMPLETED)
The AES library should support both AES256 in CTR mode (as per [the RLPx spec][1])
and GCM mode (used in [Whisper v6][2])
Suggested library: Crypto++
Library used: [NimCrypto](https://github.com/cheatfate/nimcrypto)
[1]: https://github.com/ethereum/devp2p/blob/master/rlpx.md
[2]: https://gist.github.com/gluk256/cbdf8d1f05c72c2273cc42bce905388a
### 2. Implement ECIES
### 2. Implement ECIES (COMPLETED)
Required for the [encyprted handshake][3]. Based on libsecp256k1.
Reference implementation:
@ -50,16 +50,22 @@ tasks are specified in the same level of detail.
- https://github.com/zielmicha/nim-bloom
### 5. Ethereum key file
### 5. Ethereum key file (PARTIALLY COMPLETED)
The key file stores the keys associated with one or more accounts in
password-protected encrypted form.
Reference implementation:
- https://github.com/ethereum/eth-keyfile
Implementation:
- https://github.com/status-im/nim-eth-keyfile
Sub-tasks:
* [ ] Safe storage
* [ ] Key generation / passphrase recovery
* [X] Safe storage (PBKDF2)
* [ ] Safe storage (SCRYPT)
* [X] Key generation (PBKDF2)
* [ ] Key generation (SCRYPT)
* [ ] Password recovery (is it possible at all?)
* [ ] Use native APIs on mobile platforms
Depends on:
@ -121,15 +127,15 @@ tasks are specified in the same level of detail.
routers. UPnP can be used to automate this.
### 9. Authenticated handshake
### 9. Authenticated handshake (PARTIALLY COMPLETED)
https://github.com/ethereum/devp2p/blob/master/rlpx.md#encrypted-handshake
Sub-tasks:
* [ ] Authenticate previously known nodes with an old session key
* [ ] Authenticate newly discovered nodes
* [X] Authenticate newly discovered nodes
* [ ] Support RLPx sub-protocol negotiation in the authentication message (capabilities)
* [ ] Derive shared secrets from handshake
* [X] Derive shared secrets from handshake
Depends on:
* [Select an AES implementation](#select-an-aes-implementation)