Commit Graph

27 Commits

Author SHA1 Message Date
Roman Volosovskyi 7f76e2fbf0
Enable partitioned topic 2019-03-18 13:52:13 +02:00
Andrea Maria Piana bfbc04ebae
Fix separate topic group chats
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-02-27 11:22:27 +01:00
Andrea Maria Piana 6a42580fc2
Remove separate topic from group chats
Currently the separate topic was not used, as it's a bit tricky to
coordinate when multiple devices from different versions are present,
with the partitioned topic, probably this optimisation is not necessary
anymore, so removing this for now.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-02-26 17:18:26 +01:00
Andrea Maria Piana becb32d5e7
Use dedup-id instead of raw-payload
This is a backward/forward compatible change with status-go.
We are changing the way messages are confirmed from passing the
raw-object to status-go to a dedup-id instead, which needs to be sent
back.
Based on the response from status-go we detect whether they are ids or
object and act accordingly.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-02-17 23:05:25 +01:00
yenda 77b792a37a
[#6850] related refactoring
- remove unecessary subscriptions related to add-contact-bar

Signed-off-by: yenda <eric@status.im>
2019-02-13 12:38:31 +01:00
Andrea Maria Piana 7960fdef85
Publish contact updates periodically
Currently it's very easy for contact details to get out of sync, the
simplest example is:
A & B are contacts.
A changes name.
B receives the updated name.
B re-install the app.
Until A changes name again, B will not see their name, picture and won't
be able to send push notifications.

This PR changes the behavior to publish account informations to contacts
every 24 hrs, to add some redundancy in this cases.

It also publishes a contact code every 12hrs.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-02-12 14:20:45 +01:00
Andrea Maria Piana 14e887160a
Dont setup topic as it resets the discovery filter
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-02-08 10:57:21 +01:00
Roman Volosovskyi fe7c7088db
Use partitioned topic for discovery
Currently we use a single topic for discovery.
This provides the best obscurity at the cost of bandwidth, as a message
sent on the discovery topic will be received by any peer.
This PR changes this behavior and start listening on a partitioned
topic.
Each pk will be hashed to a limited number of topics.

Everytime someone is in a conversation with someone from another topic
they will have to listen as well to avoid loosing obscurity, because we
only forward messages that we also advertise in the bloom filter.

The choice for the number of partitions depends on 2 factors:

1) The expected number of users using the network
2) The average number of contacts each user

Any change to the discovery topic will need to be split across 3
releases, to avoid breaking compatibility:

1) Listen to the new and old topic, publish to the old topic
2) Listen to the new and old topic, publish to the new topic
3) Listen to the new topic, publish to the new topic

This is step 1.
2019-02-01 14:40:54 +02:00
Andrea Maria Piana 52ae2c2bfe
Style header group-chats
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-01-29 10:31:59 +01:00
Andrea Maria Piana 3e761c3b85
Extend message hash confirmation for group chats
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-01-08 13:59:30 +01:00
Andrea Maria Piana e8069f523d
Move group chats to their own topic
This commit moves group chats to their own topic, based on the randomly
generated chat-id. It falls back on the discovery topic for those peers
who we can't fingerprint the version, for backward compatibility.
2019-01-08 13:58:41 +01:00
Andrea Maria Piana 881691fbc3
Add joining of group chats
Members will now have to explicitly join a group chat to start receiving
messages from it.

Messages are still sent to users who have not joined for backward
compatibility.
Group updates are unaffected.
2019-01-08 13:58:40 +01:00
Roman Volosovskyi b6e515618b
[#6956] upgradable `message-id`
Implementation:
1. `transport.utils/message-id` function is called only in three places now
   and accepts `from` and  `raw_payload` as parameters.
   ID is calculated as `sha3(from + raw_payload)`.
2. This means that for wrapped private group chat message
   the raw payload of `GroupMembershipUpdate` is used.
2018-12-05 11:22:43 +02:00
Andrea Maria Piana dfbc27c5d7
Allow admin to leave chat
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-12-04 10:17:50 +01:00
Andrea Maria Piana 5795ca8d1a
Enable group chats
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-11-30 11:12:34 +01:00
Andrea Maria Piana 9c67aab2c9
Use whole message to calculate message-id
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-11-30 10:12:25 +01:00
Roman Volosovskyi d66198a420
[slow sign in]
fix iterating over all messages from realm db (was done for deduplication)
async loading of chats (:init-chats event)
2018-11-21 18:21:52 +02:00
Eric Dvorsak 548162f733
[refactor] remove current-public-key 2018-11-09 11:16:27 +01:00
Eric Dvorsak f8f499d9b0
[refactor] rename whisper-id and whisper-identity to public-key 2018-11-09 11:16:27 +01:00
Andrea Maria Piana 693eae9cf9
Send your own messages
Adds a `chat-id` field in `content` map.

The reason it has been added to the map instead of augmenting transit is
that it would simplify the calculation of `message-id`, which in this
case is consistent for both old & new clients.

`chat-id` also represents the `chat-id` with respect of the sender, as
in 1-to-1 chats that is asymmetric.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-11-06 21:19:50 +01:00
Andrea Maria Piana 7aa597517e
Add system messages to group chats
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-11-05 14:54:43 +01:00
Andrea Maria Piana 073dddcee0
Add pairing
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-10-27 20:43:53 +02:00
yenda efdd76b364
refactor inbox
Signed-off-by: yenda <eric@status.im>
2018-10-11 14:47:04 +02:00
Andrea Maria Piana 78b6d67d79
Allow to edit group membership
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-10-09 10:40:13 +02:00
Andrea Maria Piana 165f1a46c7
Propagate signed membership information
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-10-02 12:06:28 +02:00
janherich 44fbe62773
Chat replies + refactoring 2018-09-28 16:15:47 +02:00
Andrea Maria Piana 0c48d09c71
Add back group chats messages
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-09-26 20:58:03 +02:00