Hey, i don't know how much this feature is going to be used in the end.
But since twitter has it, it is going to be asked for anyway... I see a
problem with the draft, though. These group chats will probably have a
long live time in some cases. When now one of the participants looses or
his or her wallet or simply imports the privatekey at a different
client, every direct message of every following along way back must be
decrypted to look for invitation messages. Otherwise the client won't be
able to receive new group messages from these groups.
A possible solution would be that the clients save the group keys in the
profile (encrypted of course). For that we would need to specify the
exact form in which they are saved. Maybe a new field called "private"
which is encypted and in that a field called "group_invites" which holds
an array of the group invitations that are still active in decrypted form.
Greetings!
On 24/04/15 00:37, Miguel Freitas wrote:
Hi!
I will need some help with this... the twister-core seems to be
working, but twister-html is not yet aware of the new feature.
here is the drafts document i'm about to commit to repository:
twister group chat draft
========================
group chat is a private and encrypted timeline shared among some users
which define a specific topic (or description).
it is tempting to use a new torrent where members would subscribe in
order to post their chat messages. however this idea does work as it is
impossible (very difficult?) to implement a distributed torrent with
multiple writers. (a clash occurs when two writers try to send the
same piece number)
therefore, twister's group chat is a special case of direct messages
using a private key pair (outside of the blockchain). non-members do not
know about group chat creation as public key is never published.
members are invited to group using a special (bencoded) group_invite DM:
group_invite {
desc: "free text description",
key: "secret of the private key",
}
after sending the group_invite DM to a given user, another DM is sent
to the group itself to notify all existing members about the new
member list. this is another special DM:
group_members {
[xxx,yyy,...]
}
it is true that, since every member knows both private/public keys of
the group, symmetric-key could have been used for group chat's messages.
however we reuse the same twister infrastructure of original DMs.
any group chats, invites and messages are indistinguible from normal
DMs to non-members.
because all members have access to private key, there is no concept of
administrator. any member may invite new members and change group's
description. it is not possible to exclude a member, so frontends may
offer an option to clone/create a new group excluding whoever they
want.
---
new RPCs for group chat:
- creategroup <description>
returns groupalias (which is added to wallet).
group aliases are prepended with "*" so they are not valid usernames
and may not be propagated accidentaly to the network.
group aliases are only valid locally, each twisterd instance will
create its own alias upon receiving an invitation.
- listgroups
[ groupalias1, groupalias2, ... ]
- getgroupinfo
{alias:xxx,description:xxx,members:[xxx,yyy,...]}
- newgroupinvite <username> <k> <groupalias>
[<newmember1>,<newmember2>,...]
DM(group_invite) => newmember
DM(group_members) => groupalias
- newgroupdescription <username> <k> <groupalias> <description>
DM(group_invite) => groupalias
- leavegroup <username> <groupalias>
not yet implemented
note: use getdirectmsgs/newdirectmsgto to obtain/post new messages
to group chats.
--
You received this message because you are subscribed to the Google
Groups "twister-dev" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to [email protected]
<mailto:[email protected]>.
To post to this group, send email to [email protected]
<mailto:[email protected]>.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups
"twister-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
For more options, visit https://groups.google.com/d/optout.