SourceCred

Some questions as a new comer

Hi all! This is Jessie from China,very excited to join SC! Now i m also doing research and event in the space of DAO and i strongly thought how to review ppl’s contribution and give incentives based on the credit score/performance can be a keystone for DAOs.

I knew there are already many insightful discussions here, as a new comer i have listed down my curiosity and interests, hope someone can answer or give guidence on where to find the existing discussions ;). Many thanks!

I m also keen to apply any testable model to DAO communities in China to see if people can better collaborate and be engaged towards a common goal.

Here are the questions:

1)How do you apply this philosophy in SC community and how does it work,what was the most workable part and challenging part?

  1. Follow the question,how do people actually get from earning the credit,i understand is through Grain the token?

3)Who is responsible for assign weight(and change the weight) to contributors? is the owner/initiator should set the rules ahead?

4)How does SC apply the PageRank algorithm to the social contributing graph ,can you give an visualized example to brief the process if possible?

  1. Now under what circumstances can people contribute and be credited- Contributing code and posting in discource,or ELSE?

6)How to plug sourcecred into some DAOs? Do you have the plan OR already have the case (into Aragon DAOs)?

7)I saw from one post (if I m not wrong)saying that one of the major difference betwwen colony and sourcecred is sourcecred can better help value the complex work contribution(i guess like the UI/UX work is complex enough lol) ,can you go more further into that?

1 Like

I have strong interests in this is because I have seen practice of some DAO in China and they actually not so emphasize the contribution recognition and build such reputation system to better distribute the incentives.

It’s some kind of wired when you make contribution and a “person" showed you an excel and told you how much token you earn based only on his judgement.

And another problem is the tasks are not well detail down at the very beginning , they tell people we want to do this (say,an event) and let’s figure out how to do it without telling the expected reward(or “reputation”) from taking the task,oh yeah they list down the roles and responsibilities.

1 Like

Hey, welcome @Jessie :smiley: Hadn’t come around to replying as I don’t have an answer to all of these, but I would like to help get you up to speed.

First a great getting started resource is found in the CredSperiment notebooks.

What is SourceCred

SourceCred’s goal is to measure the value of contributions to open-source projects. The metric needs to be so robust that it can be used to pay contributors, without incentivizing distorted behavior or hurting the project. Our PageRank-based approach is promising, but the only way to really know is to test it. That’s why we’ve launched the CredSperiment.

To get a sense of why we need new ways to share rewards in open-source communities, and an overview of SourceCred and the CredSperiment you can check out this talk by @decentralion:

Generally speaking, SourceCred is currently focused on making SourceCred a great success within it’s own community. This is called the CredSperiment (dogfooding SourceCred). From there the plan is to carefully select a few more communities to work together with. And slowly expand when that is working out too.

Because of that, we’re not at a stage where we can say: this is what you do to be successful using SourceCred. More the opposite, we need to gather feedback from communities to improve it, starting with our own.

But one of the core ideas is to make it really easy for people to contribute in the way they want, and earn Cred doing so. One of the challenges then is, how much Cred should they earn? And SourceCred provides an array of tools to make sure that matches closely with the community’s values.

When Cred goes towards the people that the community values a lot. By extension that means you’re creating incentives for people who are making important contributions towards the common goal, to keep doing so. Or if there’s a gap in the communities needs, make it really attractive for people to help out there.

No, actually Grain (right now) does not give you Cred. Contributions give you Cred. Contributions can be, forum posts, pull requests, comments, etc. By making this forum topic, you’ve already earned Cred. Have a look at the live stats.

These contributions are added using plugins. Currently it supports GitHub and Discourse.

Then another important aspect is, flowing Cred. “Flowing” is done essentially through the PageRank algorithm. And is based on how the contributions are connected in the graph. For example, if someone with a lot of Cred gives your forum post a :heart: this creates an edge in the graph to flow some Cred from them to you. This is one of the ways in which the community can show what contributions they value and use SourceCred as a tool to match that in their Cred score.

Right now we trust our benevolent executive @decentralion to have a final say in values like these and take a fair amount of liberties in changing them as they see fit. The weights are publicly recorded at https://github.com/sourcecred/cred

An example of them doing so: CredSperiment Week 3 Distribution

At the moment, having someone with authority is a quick way to get started. In the future we certainly plan to move this power back into community hands.

Good question, the currently used algorithm is called “timeline cred”. A lot can be learned from the code comments. Such as here https://github.com/sourcecred/sourcecred/blob/a9e89b9f327fae58ef6a0459c862bdfdecfc9edd/src/analysis/timeline/timelinePagerank.js#L46-L100

And the link from the introduction I copied.

Have to check with @decentralion, @wchargin, @mzargham or @s_ben about other resources that would explain this well.

It’s very open, you already earned Cred by posting. Here’s an interesting recent post on this openness.

DAOs are definitely interesting, but generally speaking we prefer to have humans in the loop right now. To make sure we can manually tweak values, prevent gaming, etc. So we haven’t prioritized fitting it into DAOs yet.

@decentralion and @s_ben may be able to comment more on this.

I haven’t looked into Colony, so I can’t make a comparison. Right now we’re a little limited to concrete contributions by only supporting GitHub and Discourse. But one of the next things we’re working on is to expand that into more complex and currently undervalued contributions.

By supporting things such as:

And adding them to the graph, to earn Cred with it. Good post on this here:

3 Likes

This is a great response @Beanow! I’ll just add a couple things:

Jessie:

4)How does SC apply the PageRank algorithm to the social contributing graph ,can you give an visualized example to brief the process if possible?

A good primer on how PageRank algorithm works in SourceCred is @mzargham’s article Exploring Subjectivity in Algorithms. This walks your through simple examples and has visuals.

The two main ‘knobs’ used to tune the PageRank algorithm are:

  • Seed vector: this is where the cred enters the graph. For example, If the seed vector is one very important contribution, cred will flow outward from that contribution.
  • Alpha: this parameter controls how far cred from a given contribution flows to other contributions. @decentralion I believe has tuned this parameter at least once in SourceCred’s instance.

I will say that, in my experience, the default settings do a pretty good job on the GitHub repos I have run SourceCred on. Depending on the project, it may be useful right away without customization.

Jessie:

6)How to plug sourcecred into some DAOs? Do you have the plan OR already have the case (into Aragon DAOs)?

While SourceCred has decided to wait on becoming a DAO itslef, others are actively experimenting with using SourceCred in DAOs. At a recent hackathon, a team created an integration between Aragon and SourceCred, credao, where were tokens on the Ethereum blockchain are distributed based on cred scores. This work is based in part on EthTrader’s DAONuts project, which tokenized reddit “points”. We also have a contributor, @burrrata, that is active in the Aragon community and has been exploring this use case.

SourceCred is also the planned reputation system for The DAO, a second try at the original Ethereum DAO. In the below Unchained podcast, @rzurrer talks about SourceCred and how it could be used in that DAO.

If you want to go further down the rabbit hole, I explore SourceCred and DAOs in more depth in the below article.

Jessie:

7)I saw from one post (if I m not wrong)saying that one of the major difference betwwen colony and sourcecred is sourcecred can better help value the complex work contribution(i guess like the UI/UX work is complex enough lol) ,can you go more further into that?

I haven’t looked into Colony much either, but in the below comment (from Aug 22nd), a research engineer at Colony weighed in on the difference between SourceCred and Colony’s approaches.

2 Likes

Yes the Aragon community is very interested in SourceCred. The CreDAO experiment is a step in this direction. It was determined that currently the computational complexity of SourceCred is beyond the capabilities of the Ethereum blockchain that Aragon runs on top of. In the future, however, Arachain and Flora (Aragon Cosmos chains) might make this possible. In the interim we would need a trusted admin or staking game to facilitate the process. Community recognition and rewards is essential, and SourceCred can help a lot, so exploring this more is on my to do list.

Also, beyond just integrating the SourceCred software itself, we’ve also been thinking a lot about how to implement many of the principles of the SourceCred community. This is mainly centered around how to make systems open and transparent so that participants can remain anonymous. The goal is to allow participants to engage how they want and when they want, but also be able to earn reputation so that they can contribute to changing the systems they engage with. Hopefully this will result in systems that work for people vs the other way around. This isn’t unique to SourceCred by any means, but a lot of discussions in the Aragon community (esp in my world) have been very much inspired by conversations here :slight_smile:

Slightly off topic question, but does anyone know if it’s possible to plug SourceCred into Discourse and only have it process threads that have a certain tag? If so, that would be amazing.

1 Like

@Beanow has been working on the Initiatives Plugin, and he’s added category-detection logic for that purpose. Buiding on Beanow’s work, I suspect it would be easy to make SourceCred only include certain categories. @burrrata want to write an initiative for adding this functionality? Then we can make it one of the early test cases once the Initiatives plugin is running.

Maybe we could even experiment with letting you do a prototype Boost of that initiative… you do have a lot of Grain after all :wink:

1 Like

Well aside from categories, Discourse also has tags as a separate concept. I believe it’s something you need to enable in the forum settings to use.

Right now our plugin does nothing with tags. As opposed to categories, which we now store for each topic. So filtering by it should be possible for sure.

Question is, what you’re trying to achieve by doing so. Is it to remove incentives from the topics that aren’t tagged? To save storage / computation resources? To make it load faster? I think that would influence how and where you should filter the data.

1 Like

The goal is to be able to have a single Discourse forum for the Aragon community, but multiple SourceCred instances for project/DAO specific threads. This will allow us to test out SourceCred with a few small experiments before moving to the entire forum. It will also allow us to give people reputation/cred within the context of the specific projects they work on. For DAOs this is essential.

For example: there’s a community DAO that funds small community initiatives. There’s a forum category for that DAO. People can post new ideas and/or get help on ideas in progress. Then as people contribute and/or do work they would get reputation in that DAO. Then they could use reputation to vote on which projects the DAO wants to take on in the future. This way there could be reputation for that specific DAO category that isn’t mixed with all the other forum activity.

Got it, so you’d like to set up independent reputation systems sectioned off by the forum categories. That makes sense.

In that case I would load the whole forum, but filter just before creating the graph. The loading code has a bunch of moving parts that I think would be more brittle by adding in a selective loading feature (it complects things). Better reuse the cache to speed up loading and add filtering as a step in between.

Shouldn’t be too difficult to add. Though not trivial either :stuck_out_tongue:

1 Like