[#IDEA-146] : Added milestones definitions to the roadmap

This commit is contained in:
Adrià Cidre 2018-04-13 15:25:55 +02:00
parent 57af2bf758
commit 31835c31af
No known key found for this signature in database
GPG Key ID: D246A27D58A92CAB
6 changed files with 103 additions and 13 deletions

View File

@ -0,0 +1,22 @@
## 1 to 1 messages
The ssh_post message on 1 to 1 chats looks like:
```
{"jsonrpc":"2.0","id":3146,"method":"shh_post","params":[{"sig":"0x046f29b16371c05880c3da0279c7b8f958f97be79e00ca2a8f9e951eb254ccf8ead793af564a66c952668ad9e6e8f6dac5773bd1087d87273ebcece8da03420085","symKeyID":"7aee3646de46c5b175e5ff7cc16ebe1c4488844700f241fb36a2bc0829cea25d","payload":"0x5b227e236334222c5b2270757475222c22746578742f706c61696e222c227e3a757365722d6d657373616765222c3135323336313837323338323330312c313532333631383732333832315d5d","topic":"0xd977be6d","ttl":10,"powTarget":0.001,"powTime":1}]}
```
And its decrypted message is:
```
["~#c4",["hello world","text/plain","~:user-message",152361872382301,1523618723821]]
```
Basically the only difference between 1to1 and public is the field message type which in this case is set to `~:user-message`.s
### Ability to send 1 to 1 conversation
### Ability to subscribe to 1 to 1 conversation
### Ability to unsubscribe from a 1 to 1 conversation
### Documented API for 1 to 1 conversations
### Working examples for 1 to 1 conversations

View File

@ -1,4 +1,4 @@
## Milestone 1: Status messaging basic interaction ## Status messaging basic interaction
** * TODO its still not clear how username works on the new protocol, it may change the methods using it, as it's not used atm. ** ** * TODO its still not clear how username works on the new protocol, it may change the methods using it, as it's not used atm. **

View File

@ -0,0 +1,45 @@
## Contact management
### Invite new contact
The UI for Inviting a new contact should be something like:
```
if account, err := conn.Invite("my_friend_public_key"); err != nil {
panic("An error occurred while inviting a friend")
}
```
Before starting to chat with someone privately you should have its contact details. In order to do that, the next process should happen
##### Generate a new symkey (shh_newSymKey):
```
{"jsonrpc":"2.0","id":872,"method":"shh_newSymKey","params":[]}
```
##### GetSymKey (shh_getSymKey):
**[ TODO Describe what's this call doing...]**
```
{"jsonrpc":"2.0","id":873,"method":"shh_getSymKey","params":["14829092e1b30cb9ab643ef9aa3c37e5a576e69821259cc690f8cccedd08dc94"]}
```
##### Create filter for new topic (shh_newMessageFilter):
```
{"jsonrpc":"2.0","id":879,"method":"shh_newMessageFilter","params":[{"topics":["0x6c0b63af"],"symKeyID":"14829092e1b30cb9ab643ef9aa3c37e5a576e69821259cc690f8cccedd08dc94","allowP2P":true}]}
```
Main difference here with public channels is how the topic is calculated **[TODO DEFINE HOW'S CALUCULATED]**
##### Send first message with my contact information (shh_post)
```
{"jsonrpc":"2.0","id":880,"method":"shh_post","params":[{"sig":"0x046f29b16371c05880c3da0279c7b8f958f97be79e00ca2a8f9e951eb254ccf8ead793af564a66c952668ad9e6e8f6dac5773bd1087d87273ebcece8da03420085","pubKey":"<my_friend_public_key>","payload":"<payload>...
```
Where the decrypted payload looks like :
```
["~#c1",["0xcfbb3e7c45ced993287039e9a3aa37d15d6c2f80ba2599e07ee53520f239d4d1","0x6c0b63af",["~#c2",["<username>","data:image/png;base64,......<image binary>","b5b16e93dbd4bbcb2448b98bfbb9e0062ea18603",null]]]]
```
### Accept new contact
**[ TBD ]**

View File

@ -0,0 +1,19 @@
## Private channels
Interacting with private channels is complex than public channels as
### Ability to publish messages on private groups
**[ TBD ]**
### Ability to subscribe to private groups
**[ TBD ]**
### Ability to unsubscribe from a private groups
**[ TBD ]**
### Documented API for private groups interaction.
**[ TBD ]**
### Working examples for private groups interaction.
**[ TBD ]**

View File

@ -1,4 +1,4 @@
## Milestone 2: Public channels interaction ## Public channels
Public channels interaction is about how the developer will be interacting with public channels. Public channels interaction is about how the developer will be interacting with public channels.

View File

@ -105,7 +105,7 @@ Testing Days required: TBD
## Success Metrics ## Success Metrics
#### Milestone 1: [Status messaging basic interaction](Milestone1_BasicSDK.md) #### Milestone 1: [Status messaging basic interaction](BasicSDK.md)
- [ ] Setup a new connection - [ ] Setup a new connection
- [ ] Ability to close a specific connection - [ ] Ability to close a specific connection
- [ ] Ability to change connection configuration - [ ] Ability to change connection configuration
@ -113,7 +113,11 @@ Testing Days required: TBD
- [ ] Ability to login as a specific account - [ ] Ability to login as a specific account
- [ ] Documented API for basic sdk interaction - [ ] Documented API for basic sdk interaction
#### Milestone 2: [Public channels interaction](Mileston2_PublicChannels.md) ### Milestone 2: [Contact management](ContactManagement.md)
- [ ] Invite new contact
- [ ] Accept new contact
#### Milestone 3: [Public channels interaction](PublicChannels.md)
- [ ] Ability to join public channels - [ ] Ability to join public channels
- [ ] Ability to publish messages on public channels - [ ] Ability to publish messages on public channels
- [ ] Ability to subscribe to public channels - [ ] Ability to subscribe to public channels
@ -121,21 +125,21 @@ Testing Days required: TBD
- [ ] Documented API for public channels interaction. - [ ] Documented API for public channels interaction.
- [ ] Working examples for public channel interaction. - [ ] Working examples for public channel interaction.
#### Milestone 3: [Private groups interaction](Milestone3_PrivateChannels.md) #### Milestone 4: [1 to 1 messages interaction](1to1Channels.md)
- [ ] Ability to publish messages on private groups
- [ ] Ability to subscribe to private groups
- [ ] Ability to unsubscribe from a private groups
- [ ] Documented API for private groups interaction.
- [ ] Working examples for private groups interaction.
#### Milestone 4: 1 to 1 messages interaction
- [ ] Ability to send 1 to 1 conversation - [ ] Ability to send 1 to 1 conversation
- [ ] Ability to subscribe to 1 to 1 conversation - [ ] Ability to subscribe to 1 to 1 conversation
- [ ] Ability to unsubscribe from a 1 to 1 conversation - [ ] Ability to unsubscribe from a 1 to 1 conversation
- [ ] Documented API for 1 to 1 conversations - [ ] Documented API for 1 to 1 conversations
- [ ] Working examples for 1 to 1 conversations - [ ] Working examples for 1 to 1 conversations
#### Milestone 5: Extra methods #### Milestone 5: [Private groups interaction](PrivateChannels.md)
- [ ] Ability to publish messages on private groups
- [ ] Ability to subscribe to private groups
- [ ] Ability to unsubscribe from a private groups
- [ ] Documented API for private groups interaction.
- [ ] Working examples for private groups interaction.
#### Milestone 6: Extra methods
- [ ] Ability to recover your account - [ ] Ability to recover your account
- [ ] Ability to log out. - [ ] Ability to log out.