Open bedeho opened 1 year ago
for each on-chain member who has both a Discord handle in their metadat, and that handle exists on exactly one Discord member, then add that Discord member to that Discord role.
This part is a problem in that people can do impersonation attacks, especially if we assign distinct permissions to Discord roles. There is no clarification on what to do if two or more members claim the Discord handle. Furthermore, entering a Discord username on a Joystream profile does not verify it.
The current implementation of the bot requires a user to sign a challenge using polkadot-js to prove they own the Joystream membership handle.
This isn't included in your specification, but is this an acceptable method of verifying users?
I did not understand this, can you raise the issue on a DAO meeting in the near future?
@bedeho
We have a question about the requirements.
Currently, the
list_role_members [discord_role]
command displays all users with [discord_role] like this.
If the viewer is interested in one of the displayed users, they can use the
who_is
command to learn more.
I think it's excessive to display all the roles of all the users with [discord_role]
For example: If I type, list_role_members @FoundingMember
, I want to see who are the founding members, and not what roles each of the founding members are occupying.
I think it's excessive to display all the roles of all the users with [discord_role]
Agreed.
@chrlschwb I would suggest one thing in addition to what is present. There should be a discord role called something like on-chain member
or similar which is registered to all users who have their Discord set up in their Pioneer profile.
Although most people are founding members
due to our community size, this could change and we could have workers etc that aren't--it makes it a bit easier in the long term in Discord to communicate with people who have actually gone to the trouble of properly setting up their Discord profiles.
We had the same thing with the old bot but it was called on-chain identity verified
--we could use the same name.
IMPORTANTLY: we are starting from scratch here, the current bots have all sorts of legacy behaviours which should not carry over.
Background
Often in Discord one may want to address the member currently occupying a role, but one does not know who this member is, and looking it up on-chain is very tedious. Likewise, there are channel permissions which one wants to assocaited with on-chain roles, rather than Discord memberships. The solution for both of these problems is to automatically maintain what set of on-chain members should have a given Discord role membership, by exploiting the fact that on-chain memberships include the possibility of specifying.
Proposal
Maintiner
@DzhideX
Infra
Jsgensis operated.
Target chain
Carhtage
Requirements
It is probably best to do the synchronization in a stateless way, i.e. not maintain any assumption about what on-chain events you have or have not processed at any given time, just instead at regular intervals do the following
This way of doing it means that regardless what interventinos members do in terms of changin their Discord handle on-chain, or someone manually updates Role sets in Discord, or Discord bot is down for maintenance, it will always just work, and it will be very easy to debug. The synchronization interval must be configurable.
who_is [discord_handle]
lists member id, on-chain roles above, or if no mapping exists, this shoul be said, along with a link to some external resource about how to establish it.list_role_members [discord role]
: same as doingwho_is
on all discord handles in discord role, and include discord handles that hve no mapping, just as inwho_is
.status
lists