gitcoinco / web

Grow Open Source
https://gitcoin.co
Other
1.78k stars 772 forks source link

As a Gitcoin User, I want to upload all my data in Ceramic, so that I can participate in Ceramic ecosystem + take my Gitcoin profile with me. #7828

Open owocki opened 3 years ago

owocki commented 3 years ago

User Story

Why Is this Needed

Summary:

Description

Type: As a Gitcoin User, I want to upload all my data in Ceramic, so that I can participate in Ceramic ecosystem + take my Gitcoin profile with me.

Current Behavior

Expected Behavior

Definition of Done

TBD - need to spec it

Data Requirements

Additional Information

https://www.notion.so/FAQ-3Box-Migration-to-Ceramic-9db767a0aded46279fce9eab97920a4f

owocki commented 3 years ago

@ceresstation @dazuck @oed @danlipert @thelostone-mc @PixelantDesign we are doing a ceramic partnership soon; so might be worth syncing on what this looks like soon.

michaelsena commented 3 years ago

@owocki from a design perspective it would be interesting to explore new vectors of adoption beyond just an option buried in their settings. I think this (along with no real explanation of the benefits) was perhaps why adoption was so low on the 3Box integration. Perhaps we could prompt users at some point with a modal that explains gitcoin's mission and gives them the option to do it right then and there -- like upon logging into/returning to the site for the first time after this has feature has gone live. We could also do an email saying the same thing, so kind of a multi-modal campaign around it.

michaelsena commented 3 years ago

From an implementation perspective, I think this feature would use the idx-web library from IDX for creating/connecting to identities, defining gitcoin schemas, storing gitcoin identity metadata (profiles, etc) directly in Ceramic documents. In IDX you could also create mappings to Textile ThreadsDBs for storing other "heavier" gitcoin user data such as history, and all sorts of user logs, etc, that are all still controlled by their DID via IDX mappings and access control.

This approach would likely provide the best, most scalable solution to giving users control and portability.

How the Textile piece would be implemented could take various forms, but they offer hosted instances or you could run your own on behalf of users.

dazuck commented 3 years ago

Hey all - per discussion dropping some links and info, particularly on IDX, which will be the basis for the new integration.

Materials

Spec As @owocki said, idea is not to replicate the 3Box data backup but rather to link gitcoin accounts to IDX as the right starting point to expand from. To add to Kevin's notes, what I'd envision (for consideration) Step 1) Link gitcoin profile to IDX -- can be done on new user signup, profile page, and trustbonus page Step 2) Once an IDX exists for the user, additional verifications, links and info can be stored there rather than, or in addition to, gitcoin's server. BrightID is already working towards this; can be done for other trustbonus verifications. This means users only have to verify e..g, twitter, brightID, etc. once across all apps that use IDX rather than again for each service. Step 3) When there's enough value in it, can move existing Gitcoin profile/user information to IDX (for decentralization, interoperability, etc.)

Next step Once you guys digest, we can hop on another call to get to a concrete spec & design. Our hope is to use the upcoming grants hackathon to get building on this.

dazuck commented 3 years ago

@ceresstation @danlipert @thelostone-mc @PixelantDesign @owocki should we regroup on this Friday or early next week to make sure we have a clear spec ahead of the hackathon?

developerfred commented 3 years ago

assigne me @owocki

developerfred commented 3 years ago

@owocki, @dazuck and @michaelsena I will summarize what I have understood of the requirements so far:

IDX

Ceramic

save the entire user log in the ceramics protocol, such as actions taken on the platform, kudos received, townsquare timeline, grants created and contributions, tips and bountys records, ....

Destroying all of this, we realized that there are some things related to the time of business and marketing of Gitcoin, design of screens for the new registration flow, design of the mailing template to be sent with the new IDX registration and email to remind users to sign up. register.

Sybil

Remembering that a possible Sybil will not want to register with IDX. We need to make a limitation of actions for those who do not have the IDX this increases the Adequacy, you can only get a bounty if you have IDX, you can only make a Grant if you have IDX.

dazuck commented 3 years ago

Quick Summary of the Discussion

Next Steps

owocki commented 3 years ago

thx yall; @developerfred what do you need to push forward on the POC

developerfred commented 3 years ago

@owocki These spaces are where I intend to call the modal POC IDX

Tonwsquare

Screen Shot 2020-11-24 at 17 09 31

Clicking on Verify your IDX

WalletConnect Modal

Screen Shot 2020-11-24 at 16 13 08

Trust Bonus Profile Page Think about showing a carousel similar to Feature Bounties for Trust Bonus Sponsors protocols like IDX

Screen Shot 2020-11-24 at 16 09 37
oed commented 3 years ago

@developerfred the way you connect to IDX is a bit different. You can use any wallet and connecting to IDX happens though a system called 3id-connect. An example of how this looks like can be seen here: https://ceramicstudio.github.io/web-playground/

I'm not sure exactly where on the gitcoin site the integration would fit best, but I could imagine something like this:

  1. On the Trustbonus page, add a new entry for Discord
  2. When the user clicks verify discord 3id-connect will be activated with the currently active ethereum address
  3. The discord verification takes place, as described here: https://www.notion.so/threebox/Verifications-v2-cb914c43330d4925ad4822380dad24cb#10f44b5c1eb44f30a0f6571250ced68e
  4. Now the user has verified their discord handle

Once the pluming for this first integration is in place it should be fairly straight forward to add additional verification services using the same flow with IDX.