-
Notifications
You must be signed in to change notification settings - Fork 59
how many apprentices, journeyers, and masters should there be? #785
Comments
It might be good to see the list of who gets in if we increase the number of apprentices to 55. |
oops; In case you'd rather not wait 'till I get around to it, you should be able to see who gets in by running:
ref https://github.com/dckc/rchain-dbr/blob/master/social_coding_sync.py |
idea from discussion with @jimscarver : What do you think, @deannald ? @PatrickM727 ? |
Let's discuss at our next meeting so I can get a better idea of your discussion with Jim and the possible ramifications of what you're proposing. |
@dckc @jimscarver @David405 it appears that adding a new certification can affect certification of others (happened to @David405 today). This seems like unexpected behavior in two regards, first of all there is no warning about who is going to fall off as the result of a new vote and second the one who falls off is chosen by a LIFO algorithm which is not transparent. I'd recommend a different process, if necessary a manual process where certification votes aren't recorded until approved by an authority (TAC?), or a system where there is a pool of vacancies and new additions are not allowed when count of vacancies = 0. @deannald did this get discussed already? apparently the ramifications are non trivial. Thanks! -@allancto |
As to notice and transparency: that's perhaps feasible. Right now, the rewards site doesn't send mail nor write to github, but perhaps it could. There's a time when it has the new ratings in memory and the old ones in the DB and it could compare and, say, write a comment to a github issue for transparency (and github could handle notification from there). The algorithm isn't LIFO. It's a capacity constrained flow network, as noted in Trust Ratings. Note that "falling off the bottom" isn't the only way to lose your rating. Someone can un-certify you or someone upstream from you. What would it mean to approve a certification vote? Your vote is your vote, no? A system with a pool of vacancies sounds like replacing the Advogato trust metric with something else. I would need to know a lot more about the something else to know whether it's an improvement. |
I just deployed:
I've been trying since Jun 30 to get agreement with @deannald and @PatrickM727 but we're struggling with communications / timing / logistics. So since this is getting in thew way of people doing good work, I'm going ahead with what feedback I've got. |
Sounds good. I'm hoping to meet up with @PatrickM727 sometime in the next two weeks to discuss the Bounty System. We should follow up with a team call to get everyone on the same page. |
@deannald @PatrickM727 please consider:
I'm still mulling it over. |
In order to recover the state of May rewards for #799, I reverted the July 27 "at least three" change today. I still have not made up my mind about how it should work going forward. |
I would err on the side of using at least three trusted members - it feels like there's more checks and balances with that method. |
Toward clearer trust net vizI thought showing flow numbers on the arrows in the trust metric visualization would make it more clear why ratings end up the way they do, but the flow numbers are computed separately for each level. So I'm preparing to show a separate network for each level. I did the back-end logic (in python); the front end (html/js) side is still todo. https://github.com/dckc/rchain-dbr/blob/viz_flow/social_coding_sync.py a66dcb6 |
Oops! I just realized I hadn't updated the trust seed!
# git diff
diff --git a/social_coding_sync.py b/social_coding_sync.py
index 0db8fd3..2b5d57d 100644
--- a/social_coding_sync.py
+++ b/social_coding_sync.py
@@ -17,7 +17,7 @@ Options:
and _databse.db_url
[default: conf.ini]
--seed=NAMES login names (comma separated) of trust seed
- [default: dckc,Jake-Gillberg,kitblake]
+ [default: dckc,deannald,PatrickM727]
--good_nodes=XS qty of good nodes for each rating (comma separated)
[default: 60,30,20]
--view=FILE filename for social network visualization changes to trust ratings are in https://gist.github.com/dckc/dab60698c215bdff16008c1e150f48ac |
Got that part coded up now: It's deployed to staging: |
Relax constraints on reward votes?How about for reward votes, input from all verified coop members counts evenly, and only 2 votes are needed for a quorum? I have tentatively deployed (but not committed / pushed) this change: connolly@jambox:~/projects/rchain-dbr$ git diff
diff --git a/dbr_schema/dbr_views.sql b/dbr_schema/dbr_views.sql
index 40fba5a..77b7230 100644
--- a/dbr_schema/dbr_views.sql
+++ b/dbr_schema/dbr_views.sql
@@ -107,7 +107,7 @@ select issue_num, title
where sj.pay_period = ea.pay_period
and sj.worker = ea.worker
) then 0
- when voter_qty >= 3 then reward_usd_1
+ when voter_qty >= 2 then reward_usd_1
else null
end reward_usd
, percent_avg
@@ -119,23 +119,21 @@ select issue_num, title
from (
select ib.pay_period, ib.issue_num, ib.title, ib.labels, rv.worker
, count(distinct verified_coop) voter_qty
- , group_concat(sig separator ', ') voters
+ , group_concat(rv.voter separator ', ') voters
, ib.budget_provisional
, ib.budget_usd
- , round(sum(rv.percent * weight) / sum(weight), 2) percent_avg
- , round(sum(rv.percent * weight) / sum(weight) / 100 * ib.budget_provisional) reward_provisional
- , round(sum(rv.percent * weight) / sum(weight) / 100 * ib.budget_usd) reward_usd_1
+ , round(avg(rv.percent), 2) percent_avg
+ , round(avg(rv.percent) / 100 * ib.budget_provisional) reward_provisional
+ , round(avg(rv.percent) / 100 * ib.budget_usd) reward_usd_1
from issue_budget_wt ib
join (
- select coalesce(rv.weight, uf.weight) weight
- , concat(rv.voter, '*', coalesce(rv.weight, uf.weight)) sig
- , uf.verified_coop
+ select rv.voter, uf.verified_coop
, rv.issue_num, rv.pay_period, rv.percent, rv.worker
from reward_vote rv
join user_flair uf on uf.login = rv.voter
where uf.verified_coop is not null
) rv on rv.issue_num = ib.issue_num and rv.pay_period = ib.pay_period
- group by ib.pay_period, ib.issue_num, ib.title, rv.worker
+ group by ib.pay_period, ib.issue_num, ib.title, ib.labels, rv.worker
) ea
; |
I'm for relaxing constraints on reward votes, but I'd suggest keeping the quorum of needed votes at three. Simply for consistency. How many votes are needed? Three. No need to explain and document that it's three for budgets and something different for rewards. Also, with the relaxed constraint of any verified Coop member, it wouldn't hurt to have three confirming members. |
Benefit to RChain
A balance in the bounty system where people doing good work are trusted to do so but misbehavior is managed effectively.
Description
In the 201805 pay period, people that had been trusted voters were losing their trust ratings as more certifications came in, and not because they were misbehaving. This is because the trust metric algorithm includes a parameter for the expected number of trusted voters, which was set at 45. So as people slipped below the top 45, they lost their trust rating.
Some suggested removing the limit on the number of trusted voters, but without some limit, the algorithm loses its attack resistance property.
On Jun 7 (#375 (comment)), we tried raising the limit to 100, but we (@Jake-Gillberg , @jimscarver and @dckc) noticed some trusted votes we were not comfortable with, so we reverted that change.
Note the July 28 change to 60,30,20 for the 201807 pay period below.
cc @jimscarver @lapin7
Budget and Objective
suggested budget:
measure of completion:
The text was updated successfully, but these errors were encountered: