Major evolution for Peer4commit

I have thought about the future of Peer4commit and I have some major evolutions to propose.

1. Give control to the fundraiser

Tip4commit had a great feature: the project maintainers were not involved at all. They did not have anything to do for contributors to receive tips. The problem was having a fixed tip for any commit was not fair because the “value” of a commit can vary a lot. So we added control on the tip amount, but then we involved the project maintainers.

Giving them this responsibility is giving them a burden. They are already giving their time and we ask them to do more. And the task we give them is very difficult: rewarding people financially according to the (very subjective) value of their contribution. They may have to face anger if some people think the funds are not distributed fairly. And they become a target for thieves. Not many project maintainer will want that.

But there are people who would like to handle all that. So instead of giving control of the funds to the project maintainer I suggest we give it to the person who starts the funding project.

To do that we must give people a way to decide whether they can trust this particular fundraiser.
So when they start a project they will have to explain how they will use the funds and why you can trust them.
We will also make all their fund management history publicly available: what projects they have managed and how they distributed funds. There will be public comments on each project and fund distribution. We may also have a reputation system.

Anyone can create a funding project. So there may be multiple fundraisings for the same underlying project with different fundraisers and different rules.
So fundraisers will compete on trust.

Fundraisers may also take a fee for their work. They will have the responsability of promoting their campaign. They will compete on all that too.

And project maintainers can still be fundraiser for their own project if they want to.

2. Handle any kind of project

Fundraisers will be able to manage funds for any kind of project, not only programming related projects.

We will keep the “tip for commit” feature but it will just be one of the tools available to distribute the funds.

The fundraiser will have other tools like:

  • sending coins directly to a Peercoin address (with a comment that gives observers a way to verify who owns it),
  • sending to an email address (we will ask the recipient for a Peercoin address),
  • sending to a github user,
  • etc.

Fundraisers will be able to set the amount in USD or EUR. This amount will be converted to a Peercoin amount at current rate.

There will also be tools to distribute funds to multiple contributors at once. For example you decide to send a specific amount and give 60% to the github account who wrote the code, 20% to the person who suggested the idea, 5% to someone who tested and reported an important issue, 5% to the person who started the project and made all this possible, 1% to the fundraiser and the remaining part distributed evenly to a list of other people who made small contributions.

So any kind of project and fund management will be possible. For example:

  • bounties (a global bounty for the whole project or many smaller bouties),
  • kickstarter like (if the target amount is reached the project is funded otherwise the funds are returned),
  • per commit,
  • per issue (solved or not),
  • fund raising on a specific part of a project,
  • etc.

You can make almost anything happen as long as you can convince enough people to fund it and someone is willing to do it.

3. Shared control over the funds

Storing all the funds at the same place is dangerous. I moved some Peer4commit funds to cold storage but this is not ideal either.

We cannot give the funds directly to the fundraiser because distribution would lack in transparency.

So the funds will be sent to a multi signature address:

  • 1 key will be owned by the website,
  • 1 key will be owned by the fundraiser and
  • 1 key will be owned by the supporter (if he wants to).
    And 2 keys will be required to use the funds.

To distribute coins the fundraiser will use the website and fill some forms. The website will generate a transaction and ask the fundraiser to provide a signature for it. Then the website will sign the transaction too and propagate it.

So if the website is hacked the funds can’t be stolen. And the fundraiser cannot spend the funds outside the website.

Also if a fundraiser is clearly misbehaving the website and the supporter can decide to return the funds. If the website itself is misbehaving (a very bad policy change, abandoned, hacked…) the fundraiser and the supporter can decide to move the funds elsewhere.

4. Multiple currencies

Along with enlarging the perimeter of supported projects, it would be nice to accept other currencies. Maybe only Bitcoin at first.

The fundraiser would have to choose the currency for each project and all donations and distributions will be made in this currency.
We may enable multi-currency projects if we have a reliable tool to make immediate currency conversions when funds are received or sent.

5. Rebranding

These major changes would benefit from a complete rebranding: a new visual identity and probably a new name.

Funding

All these changes require a lot of work.

Donations on Peer4commit may be sufficient to make this happen.
But I’d like to propose another way that may encourage donations: providing a potential financial return to the supporters.

Here’s how it would work:
I’d start a new Peershares implementation for Peer4commit and sell shares.
The peercoins I get from these sales would be added to the Peer4commit funds to work on the changes I described above.
Then on a regular basis I’d distribute as dividends 50% of the 1% fee the website collects. The other 50% would still be used on operational costs.

Feedback

What do you think about all this?

You weren’t kidding about this being some major changes. Seems like the potential for something like this could be enormous :slight_smile:

Would love to see stuff like this. For the “Shared control over the funds” you could perhaps use a fork of CoSign.

Peer4Commit has done great things for me and my team by rewarding participation in Peerunity and Peershares development. But it doesn’t have as much flexibility as I would like in regard to who gets paid what when. This new version will provide all the flexibility I desire.

I am pleased to see the shared control of funds as well.

Of course, what I love the most is that sigmike will be implementing Peershares! Because he won’t need to extend it for his purposes, he may be the first to implement it. I’m glad this likely first implementation will be done by someone who is as capable and reputable as sigmike.

Jordan you’re like a cryptogenic kingpin.

This is awesome. Further improving the way we can reward contributors is great. I think this is key to get things moving to the next level and I can’t agree more with Jordan. Exploring new ways of funding with this and the new Peershares is a great showcase for Peershares and the innovative way the Peercoin community get things done.

I would feel priviliged to pick up the facilitator/fundraiser role for one or more projects as my time allows and happy to own a few shares to get development started and support the product. Hope others join me in doing so making for a flying start. I would say: the future is here 8)

Thanks Sigmike for writing down this proposal, let us know when you are ready to kick this off and what kind of help you need.

Bring it on! Terrific expansion from peer4commit.

Some questions, though. If the fund raiser is not also the project maintainer, the fundraiser really has to know very well how the project goes in such fine details that he/she would be able to tell if commit A is more valuable then commit B, for every commit. This requirement seems very high for someone who is not also the maintainer or not even a developer type. Is there any mechanism to facilitates coordination between the project maintainer and the fund raiser regarding who gets how much tip when?

yup sigmike you have my full backing on this, all the work you do is fantastic for peercoin and you are addressing issues I am facing with lack of time, especially when other commitments in life take hold and I am away for a while I am concerned on such issues with all the repos I maintain on peer4commit, so this looks good thank you for reducing my workload :slight_smile:

Fuzzybear

Yes the fundraiser must be able to understand the changes he intends to reward. He should probably provide his level of competence if he intends to reward on code changes.

But if he is going to reward new features or bug fixes he may not need such a high level of expertise. He may just need to evaluate the importance of the feature and who made it happen.

There are many tools on GitHub to help him on that. He can follow discussions on project issues and pull requests. Project maintainers will often give an idea of the importance of the change in the comments. He can also ask questions there, or even directly on a specific change of a commit.

[quote=“sigmike, post:9, topic:2321”]Yes the fundraiser must be able to understand the changes he intends to reward. He should probably provide his level of competence if he intends to reward on code changes.

But if he is going to reward new features or bug fixes he may not need such a high level of expertise. He may just need to evaluate the importance of the feature and who made it happen.

There are many tools on GitHub to help him on that. He can follow discussions on project issues and pull requests. Project maintainers will often give an idea of the importance of the change in the comments. He can also ask questions there, or even directly on a specific change of a commit.[/quote]

I wonder if they happen not to agree with each other on something, who will have more control. It seems that the maintainer is only an advisor to how the fund is distributed. He can’t sign off a tip. He has no direct control (correct me if my understanding is wrong). For a typical open source project such as Peerunity template the donators don’t expect the fundraiser to get the project done. People donate to the project that is being created by the maintainer. The fundraiser is supposed to be a curator of the fund. So I think the fundraiser should be someone who helps the maintainer to distribute tips.

Of course it is OK if the new system allows someone to raise public fund to fund a project, and to specifically let the fund raiser to manage awards to developers. It’s just does not seem to be what we have been used to and should be clearly communicated.

The fundraiser controls the funds. He can’t make a new release.
The project maintainer controls the project. He can’t redistribute the funds.

There are probably many ways they could disagree, but they have a very strong incentive to collaborate.

There are a few extreme and dissuasive outcomes:

  • the fundraiser forks the project
  • the project maintainer destroys the reputation of the fundraiser
  • the supporters and the website agree to return the funds

Maybe we could give a key to the project maintainer too. But right now the peercoin (and bitcoin) protocol allows only 3 keys in a multisig transaction.

That’s one way to manage a fund yes. The fundraiser can explain he’ll work that way, by following the maintainer advises to distribute the tips.

But in the Peerunity example you give, Jordan is a maintainer but actually rarely works on the project himself. He selects features and propose bounties. That’s another way to manage a fund.

Yes the fundraiser must communicate very clearly how he intends to distribute the funds.

Some fundraisers may just evaluate each contribution and distribute appropriate tips. Some others may act like project managers leading to a specific goal.

Thanks for the explanation. The roles and responsibilities are clearer now. Since there is the three-key limit, maybe the system can set up a score field for each commit which only the fundraiser, the maintainer (or a delegate or a line manager) could set if they want, so although the maintainer cannot give tips he can give suggestions.

Thanks@mhps and @sigmike, some useful clarifications. Still can’t wait to get this going.
It might also be worth to have some kind of an agreed charter or contract between project maintainer and fundraiser if it work like a joint venture. The other option is as Sigmike says the more classic project manager role who decide what will be build and who plots the way how to achieve that and attracts the right people to the project and the project maintainer is just a lead developer or the one who does most of the work.

Can’t wait to see this realised, but suspect that it will take some time to get this off the ground. @sigmike, dare to give any timelines?

I don’t know how much time it would take. I can take some time to estimate it.

It looks like the new path is approved and there are still funds on peer4commit so I can already start some changes.

But to implement everything it will require new funds. I’m still not sure what would work best to fund all this.

[quote=“sigmike, post:1, topic:2321”]I’d start a new Peershares implementation for Peer4commit and sell shares.
The peercoins I get from these sales would be added to the Peer4commit funds to work on the changes I described above.
Then on a regular basis I’d distribute as dividends 50% of the 1% fee the website collects. The other 50% would still be used on operational costs.

Feedback

What do you think about all this?[/quote]

Sigmike you are a special talent :slight_smile: I want to buy shares. How do I buy shares?

Sigmike, have you seen this?

http://www.reddit.com/r/Bitcoin/comments/25sf4f/100000_bounty_for_software_platform_that_can/

Do you think Peer4commit could be a candidate? Maybe you could send him your proposal on what you plan to do and mention that peer4commit was setup because the Peercoin community doesn’t want a foundation and needs to be able to accomplish projects without one.

Nice catch, sentinelrv. What that guy is proposing is a revolution. It is the holy grail of decentralisation. And he wants a platform in a month. Sigmike is proposing an evolution which will have some constraints and issues initially but these can be solved organically over time. And it will take more than a month, but at least it is realistic.

Would love to hear from sigmike though. It might be worth a shot.

That’s why I’m saying if he feels Peer4commit might be able to compete, he should message this person on Reddit. Many people have already told this guy in the comments that developing something like this in a month is impossible unless it’s a rush job. Sigmike though already has a head start. It might benefit him by contacting the guy and explaining his proposal to get his attention.

[quote=“Cybnate, post:17, topic:2321”]Nice catch, sentinelrv. What that guy is proposing is a revolution. It is the holy grail of decentralisation. And he wants a platform in a month. Sigmike is proposing an evolution which will have some constraints and issues initially but these can be solved organically over time. And it will take more than a month, but at least it is realistic.

Would love to hear from sigmike though. It might be worth a shot.[/quote]

It was a good link to report Sentinelrv. Thanks.

I agree with you Cybnate. I suspect we are just on the leading edge or early stages of the decentralizing revolution and it will probably advance in fits and spurts and steps backwards too for I would guess decades. But everything is speeding up dramatically so maybe not so long. But a month? haha well more power to him. I would love to see some big advance here!

[quote=“Sentinelrv, post:16, topic:2321”]http://www.reddit.com/r/Bitcoin/comments/25sf4f/100000_bounty_for_software_platform_that_can/

Do you think Peer4commit could be a candidate? Maybe you could send him your proposal on what you plan to do and mention that peer4commit was setup because the Peercoin community doesn’t want a foundation and needs to be able to accomplish projects without one.[/quote]

Yes I think it could be a candidate. It’s not clear whether he wants a finished software at the deadline or just a proposal. But peer4commit looks like a valid submission either way.

Unless the rules change the deadline to make a submission is 17 June 2014. I think we should work on that as a community.

The proposal I described in the first post will be partially implemented by that time. We may initially focus on the changes that would help us win this contest.

The 2 examples he gave are easily achievable with the proposed peer4commit:

  • funding bitcoin dev: no problem of course, and people can fund the exact changes they want, and vote through funding
  • we can easily raise funds to pay lobbyists, and even different ones with different qualities and goals (look at what’s being done with overkillcoin and how the coming peer4commit will make that very easy to do)

Other examples he gave:

a system where prominent people can voice their opinion
Not sure what he means and how peer4commit could solve that
where people can propose projects
Check.
where the core devs can actively show their roadmap with detailed features + costs
Either the fundraiser can do that, or producing this roadmap can be the first thing the fundraiser will reward with the initial donations.
where we can vote on the features being implemented by sending bitcoins towards the feature of our choice
Check.
This will allow the core dev team to expand by being able to add/pay more devs for feature requests which are fully funded.
Check.
Maybe we can even evolve to a system later where anyone can work on a feature, which, when programmed properly (approved by the core team), will receive the bounty
Check.
The same applies to lobbyists, we just send bitcoins towards the one that we consider the most competent for the job.
Check.
This will allow Bitcoin to grow and expand at a rate it deserves, a rate that a political organisation such as the foundation can never accomplish.
I think it fits.