Skip to content
This repository has been archived by the owner on Jul 18, 2020. It is now read-only.

wespr / pando #31

Merged
merged 1 commit into from
Jun 13, 2018
Merged

wespr / pando #31

merged 1 commit into from
Jun 13, 2018

Conversation

osarrouy
Copy link

@osarrouy osarrouy commented Mar 19, 2018

Request for Nest membership and funding (#3)

Team name: wespr / pando

Proof of concept: https://github.com/wespr/pando and https://www.youtube.com/watch?v=lOcElty7zIw

Research white paper: https://docs.google.com/document/d/1dNVniSPUlZrPwHs0qXC4qmHQcpD2RAurKtuuXTQxb7w/edit?usp=sharing

Burn rate:
17800 $/month for 8 months plus an additional $50000 ANT success bonus:

  • 10000 $/month for 8 months for full-time team.
  • 6000 $/month for 8 months for third-time team.
  • 1800 $/month for 8 months for part-time team.

Legal structure:
Aragon DAO (for now)

Team and roadmap

Proposal

The goal of wespr is to offer a distributed cooperation, distribution and valuation infrastructure to Commons Creative Contents (CCC) i.e. any kind of content produced through an open process such as - but not restricted to: Open Source Software, Books licensed under Creative Commons, Music licensed under Creative Commons, etc. wespr thus intends to be the cultural infrastructure of the distributed web. To do so we plan to provide: a. a distributed cooperation and versioning infrastructure; b. a distributed governance infrastructure; c. a distributed publishing infrastructure; d. a distributed valuation network.

The goal of these infrastructures is to provide economic and organizational autonomy to CCCs and thus to incentivize cultural openness and cooperation. We do believe that such an infrastructure will expand the ethos of Open-Source Software to the whole cultural realm: cooperating over books, writing or music composition the same way people fork or contribute to open source projects. For that reason, Open-Source Software is not just another field of application of wespr. Its inner core protocols are tightly inspired by Open-Source Software habits, practices and apparatuses.

What we do propose for the Aragon Nest #3 grant proposal is thus to develop a. distributed cooperation and versioning infrastructure; b. a distributed governance infrastructure based on IPFS and AragonOS and; c. a dApp relying on these infrastructures and dedicated to Open-Source Software development.

Though we aim to rely on these infrastructures to build our own valuation network, the distributed cooperation and versioning infrastructure and the distributed governance infrastructure developed with this grant aim to be as generic, modular, content-agnostic and token-agnostic as possible. They will basically consist of a distributed git-like versioning system whose governance protocols are enforced through an AragonOS-based DAO. Thus, the core of the proposal we submit for the Aragon Nest #3 is:

  • A cooperation and versioning infrastructure: pando. This infrastructure will rely on:

    • An IPFS-based storage layer to keep track of each file’s version in a repository.
    • A set of formalized data structures to describe the history graph of this repository.
  • An AragonOS-based set of apps to enforce token-driven governance over a pando repository. This set of apps will provide:

    • A modular pando repository app.
    • A default governance app allowing project’s members to enforce access control over their repository through liquid democracy.
    • An interface with the reward engine proposed by the Aragon Planning App.
    • An interface with the payout engine proposed by the Aragon Planning App.
  • This infrastructure will come up with:

    • An npm library allowing developers to interact with pando repositories.
    • A cli tool to create and manage pando repositories.
    • A set of standard interfaces to develop repository plugins for the reward engine and the payout engine.
  • [Stretch Goal] An Open-Source Software dApp based on this infrastructure: PandoHub.

@CLAassistant
Copy link

CLAassistant commented Mar 19, 2018

CLA assistant check
All committers have signed the CLA.

@osarrouy osarrouy changed the title # Request for Nest membership and funding (#3) Request for Nest membership and funding (#3) Mar 19, 2018
@osarrouy osarrouy changed the title Request for Nest membership and funding (#3) wespr / pando Mar 19, 2018
@mariapao mariapao self-requested a review March 22, 2018 04:47
Copy link
Contributor

@mariapao mariapao left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @osarrouy thanks a lot for such a complete RFF :) I have reviewed the PoC, the whitepaper and proposal and this application is a candidate for funding.

Next step: the application will be reviewed by Luis.

@mariapao mariapao requested review from cburniske and luisivan and removed request for cburniske March 22, 2018 05:22
Copy link
Contributor

@luisivan luisivan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks great and I love the approach. I met the WesPR/Pando team at EthCC and enjoyed our conversation. Only change needed is to denominate amounts in dollars rather than euros, since we are using dollars for simplicity's sake. Also I'd suggest a $50k ANT prize, not euros, to level it up with other similar proposals

@mariapao
Copy link
Contributor

oh good catch! Yes, @osarrouy all the numbers must be in dollars. Could you update the RFF accordingly?

@osarrouy
Copy link
Author

Oups. Sorry. Bad european habit ;)

@luisivan, @mariapao I made the update with a basic 1.2 exchange rate. I also updated the WP with the right figures. Let us know if the overall figures are too high!

Sorry again for the inattention.

Copy link
Contributor

@luisivan luisivan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great! Thanks for the changes. Green light from my end, very excited about Pando.

@mariapao
Copy link
Contributor

Hi @osarrouy I hope you are already enjoying your weekend. Before I start mine, I wanted to let you know that we have decided to approve your request for funding!

Next steps: Let's have a call to go over the details to close this process and make sure you guys can start working on the project as soon as possible. I'will send you a message in the Arachat to schedule the call.

@osarrouy
Copy link
Author

Hi @mariapao and @luisivan. Thanks a lot guys. We're so excited to work further on pando ...

Don't wanna be cheesy but your nest program is a such a cool things. Just: thanks.

Concerning the call, i've answered you on AraChat.

Thanks again :)

@mariapao mariapao merged commit d77e7d8 into aragon:master Jun 13, 2018
@danimesq
Copy link

danimesq commented Jan 2, 2019

@osarrouy
Is you making a UI DApp for it?

@osarrouy
Copy link
Author

osarrouy commented Jan 2, 2019

Hey @DaniellMesquita ! We are for sure :) It will ship as a Aragon Client app frontend first - we will probably deliver a standalone frontend at some point but it will happen later.

The beta front-end should be demoed at Aracon and published the following days / weeks :)

@danimesq
Copy link

danimesq commented Jan 2, 2019

@osarrouy
I have some questions. Does this uses git or something like? Could it support git?
Could users import git (and use git) and make it untamparable (against deletion of commits, etc/protecting branch)? Can this work like colony.io, where good contributors gets more voting rights to accept other contributors? @luisivan is there something like this?

@osarrouy
Copy link
Author

osarrouy commented Jan 2, 2019

Well. Long story :D

pando does not rely on git for lots of reasons, the most important of it being that git has not been thought for a blockchain / DAO based workflow.

For instance, git has been made NOT to have a unique source of truth so that all git repos are formally equal, while in the case of pando you can't make local repos be an equivalent of the on-chain ones for obivous reasons. Plus: what is a maintainer when your repo is DAO governed ? Or: when no one owns a repo - but a DAO - what is the difference between a commit and a PR (given that PR does not exist natively in git), etc.

I could expand a lot about that but the conclusion is that for all of this reasons we made the choice not to go for git as the underlying VCS of pando but to build our own from scratch. Otherwise we felt like it would have been applying a lot patches to make git do something it has not been designed to do.

We DO intend to provide a git <-> pando translator at some point though, but's tbh it's far on the road :)

Regarding the colony-related questions the short answer is yes :) Basically each time someone pushes a commit / PR all past contributors can quantify the 'value' of the contribution to reward the contributor accordingly with a custom governance token.

In the end it's up to the DAO / repo holders to define their own governance policy and Aragon allows you to freely define super modular governance process. But pando has been thought to easily enable people to define such a contribution-based authority metrics and to base their governance policy on this metric :)

@danimesq
Copy link

danimesq commented Jan 2, 2019

@osarrouy

pando does not rely on git for lots of reasons, the most important of it being that git has not been thought for a blockchain / DAO based workflow.

For instance, git has been made NOT to have a unique source of truth so that all git repos are formally equal

On 2017 while projecting some DAOs, I though git could support it. Thanks for pointing it!
So, pando's VCS commits are immutable?

while in the case of pando you can't make local repos be an equivalent of the on-chain ones for obivous reasons

But could it support local overflows? Would be very good to have an app of pando for local repos. Also pando is a whole ecosystem and haves its own VCS, so I suggest an name to its VCS: Pandy ❤️

for all of this reasons we made the choice not to go for git as the underlying VCS of pando but to build our own from scratch

Does Pandy already supports the most or all git's features?
Will be nice to natively implement LFS on it, and version inside compressed files.

Otherwise we felt like it would have been applying a lot patches to make git do something it has not been designed to do

Since the begin using git I'm in favor of a new and better VCS. I've also did some scratches about it.
image
This file basic explains that a VCS better than git should have Git+Mercurial's features (I don't know if Mercurial is newer than git), load user's photos on commits alongside their names (it could be fetch from IPFS instead of storing on the repo - and store those downloads on a cache that isn't shared on the repo), ask for password (its not needed), load large files from external (can be done by implementing LFS and make it built-in on Pandy).

We DO intend to provide a git <-> pando translator at some point though, but's tbh it's far on the road :)

You could also support Mercurial on this translator.

Regarding the colony-related questions the short answer is yes :) Basically each time someone pushes a commit / PR all past contributors can quantify the 'value' of the contribution to reward the contributor accordingly with a custom governance token.

Can it work with Wetonomy (#70)?
This custom governance token comes from the Aragon/DAO itself or from this app?

In the end it's up to the DAO / repo holders to define their own governance policy and Aragon allows you to freely define super modular governance process. But pando has been thought to easily enable people to define such a contribution-based authority metrics and to base their governance policy on this metric :)

Not only about rewards, but does contributors receives more voting according to their work?

@osarrouy
Copy link
Author

osarrouy commented Jan 2, 2019

Well i'm not saying git CANNOT support distributed workflow. I just feel like it's really not suited for that. But maybe history will prove me wrong :D

So, pando's VCS commits are immutable? But could it support local overflows?

The on-chain history of pando repos are immutable, indeed. The good news is that, as pando offers a decentralized but unique source of truth about the current state / history of a repo (the on-chain repo), one can do anything they want locally. Basically, pando introduces the concept of a fiber. A fiber is a local commit history you can play with, cross, merge, revert as much as you want. Once you're done you just have to push your new version to the on-chain repo which will append it (if its accepted) to the current on-chain history.

Would be very good to have an app of pando for local repos

There is already a CLI for that. A GUI to browse your local repo history is on the roadmap too once the specifications are finalized :)

Does Pandy already supports the most or all git's features?

One of the drawbacks not to rely on git is that we have to rebuilt everything from scratch :) To be honest: pando is far from being as complete as git right now. It will probably never be, either. As powerful as it is, git is also well known to be a mess to learn and use. We aim to keep pando simple as a design choice and have taken a lot of inspiration from gitless regarding that choice. We expect that in the end this will benefit developers thanks to a cleaner workflow - avoiding most of git well known issues like detached head, stashing nightmares, etc.

Right now pando supports a custom equivalent of git branches, checkouts and commits systems. In some way it's even more powerful because pando allows you to disconnect your local history from the shared history. Which means: you can save all of your local changes and revert to them (on an per file basis) for your own purpose without worrying to mess with the shared commit history. So basically it's like having an automatic local saving system to play with :)

The main core feature which is still lacking is the merging system. This is because pando is not only a VERSION control system but also a LINEAGE control system: it can track your software dependencies, etc. to grant those of it which are also pando-based some authority token in your own DAO (so that these dependencies can eventually benefit from your economic or symbolic benefits if you have any). That's, we think, a needed feature to strengten a sustainable open source ecosystem: let's deliver open-source library / tools and if some one using it at some point gains an economic benefit somehow you will be able to get a share of it :) But that also makes the merging system more tricky to design and implement (especially regarding computational complexity). We still have to work on that but expect it to be ready somewhere around Q2.

Will be nice to natively implement LFS on it, and version inside compressed files.

Regarding the compressed file thing the feature is on the roadmap but would require way more manpower than we have for now. To make thing as clean as possible the plan is to implement a new IPFS dag structure allowing IPFS to handle diffs directly. For now, IPFS files are split into small chunks cryptographically linked to each other through a Merkle tree. The idea is implement the same mechanism but starting from an already existing file and diffing out of it :) This would make pando - and the whole IPFS ecosystem - way faster for file upload / download (you wouldn't have to reupload the whole file each time you modify a comma in your README) but the implementation of such a feature would also require an huge low level - and thus subtile - work. So this is on the roadmap but won't be implemented before (and if) pando gets a wide and solid community :)

Can it work with Wetonomy (#70)?

The overall goal is to integrate pando as deeply as possible in the Aragon ecosystem. The first step will be to integrate pando and the Planning Suite developed by the great folks from @spacedecentral and @Giveth. Wetonomy will be probably appear in the roadmap too but we can't give no delivery ETA for now.

This custom governance token comes from the Aragon/DAO itself or from this app?

The token is a custom token emitted at the repository level to track authorship and lineage. However each pando repo are hooked by a DAO-wide pando app controlling the TokenManager app which is called when these tokens are minted. This DAO-wide app can be configured to mint and / or assign an equivalent or parametrable amount of the native DAO token when authorship tokens are minted. This way, Aragon, for instance, could choose to assign ANT token to contributors whose contributions make it to the master branch of the aragonOS repo but not to those who make it to another branch or to a secondary repo.

Not only about rewards, but does contributors receives more voting according to their work?

That's the idea, yes. You can configure Aragon's voting app to work with any MiniMe compatible token (and soon with any ERC20) compatible but the default configuration for pando DAO's template will be that the token you earn through your contribution gives you more weight in the DAO decision (including the decisions about whether or not to accept a commit / PR).

Regarding the pandy name we can submit it to a vote once pando is DAOified ;)

@danimesq
Copy link

danimesq commented Jan 2, 2019

Well i'm not saying git CANNOT support distributed workflow. I just feel like it's really not suited for that. But maybe history will prove me wrong :D

No, you're not wrong on the context that your VCS can be an next version of git. As you said, it is really better:

We expect that in the end this will benefit developers thanks to a cleaner workflow - avoiding most of git well known issues like detached head, stashing nightmares, etc.
In some way it's even more powerful because pando allows you to disconnect your local history from the shared history

To be honest: pando is far from being as complete as git right now. It will probably never be, either.

cleaner workflow - avoiding most of git well known issues like detached head, stashing nightmares, etc
In some way it's even more powerful

So its better than git, despite it doesn't haves all its features, but when it haves, you can properly say it is better and an evolution of git.

As powerful as it is, git is also well known to be a mess to learn and use

As I understand, you say that git haves an wider community and supporters. Really, supporting git is beneficial for the pando ecosystem.
But don't worry to create Pandy as something new and as evolution of git. As git didn't worried about the existing VCS it could replace; git users comes to pando to use git (because it will support git, maybe not only on translation but also modifying git to support it - like LFS is a good modification of git), and then they knows Pandy and gets amazed about how this is evolved than git.

Basically, pando introduces the concept of a fiber. A fiber is a local commit history you can play with, cross, merge, revert as much as you want. Once you're done you just have to push your new version to the on-chain repo which will append it (if its accepted) to the current on-chain history.

Could it support merging from different histories?
On git I found it very useful for the cases I'd created different repos for the same project.

There is already a CLI for that. A GUI to browse your local repo history is on the roadmap too once the specifications are finalized :)

Very nice if it could be supported on TortoiseGit app.

it can track your software dependencies, etc. to grant those of it which are also pando-based some authority token in your own DAO (so that these dependencies can eventually benefit from your economic or symbolic benefits if you have any). That's, we think, a needed feature to strengten a sustainable open source ecosystem: let's deliver open-source library / tools and if some one using it at some point gains an economic benefit somehow you will be able to get a share of it
We still have to work on that but expect it to be ready somewhere around Q2.

That is amazing. As I understand, some GPU manufacturer creates a repo with their drivers. If an OS uses this driver, the manufacturer earns from the economy of this OS.

Regarding the compressed file thing the feature is on the roadmap but would require way more manpower than we have for now. To make thing as clean as possible the plan is to implement a new IPFS dag structure allowing IPFS to handle diffs directly. For now, IPFS files are split into small chunks cryptographically linked to each other through a Merkle tree. The idea is implement the same mechanism but starting from an already existing file and diffing out of it :) This would make pando - and the whole IPFS ecosystem - way faster for file upload / download (you wouldn't have to reupload the whole file each time you modify a comma in your README)

Did you proposed that on a issue for IPFS? If the IPFS team helps, you can make it done without the need to have an wide community.

The overall goal is to integrate pando as deeply as possible in the Aragon ecosystem. The first step will be to integrate pando and the Planning Suite

Their software is very good and useful for VCS workflows, as it shares features of git issues and project boards. Does it also haves milestones? I think this and Wetonomy are the must apps to integrate it first.

The token is a custom token emitted at the repository level to track authorship and lineage. However each pando repo are hooked by a DAO-wide pando app controlling the TokenManager app which is called when these tokens are minted. This DAO-wide app can be configured to mint and / or assign an equivalent or parametrable amount of the native DAO token when authorship tokens are minted. This way, Aragon, for instance, could choose to assign ANT token to contributors whose contributions make it to the master branch of the aragonOS repo but not to those who make it to another branch or to a secondary repo.

Will it haves a board of multiple repos an DAO haves? Every repo haves its own voting system or it depends on the DAO?

That's the idea, yes. You can configure Aragon's voting app to work with any MiniMe compatible token (and soon with any ERC20) compatible

What are MiniMe compatible tokens? Can Aragon by default haves option to generate such kind of token?

the default configuration for pando DAO's template will be that the token you earn through your contribution gives you more weight in the DAO decision (including the decisions about whether or not to accept a commit / PR).

Is this template already available? It can be easily (with a few clicks) integrated?

@danimesq danimesq mentioned this pull request Jan 2, 2019
@danimesq
Copy link

danimesq commented Jan 4, 2019

@osarrouy

Inside an DAO, there are repos through Pando?
These repos aren't owned by DAO members, but by repo's contributors?
Can an repo be transferred by DAO members to another DAO?

@danimesq
Copy link

danimesq commented Jan 4, 2019

Well, this is a third unanswered comment (sorry for writing lots of questions, I respect the fact you're busy with good things), but did you read about CRDTs and other related things? I were reading an IPFS issue (ipfs/notes#313) and noted it would be very beneficial for Pando, so I kindly ask you to read the comments on the referred issue :)

luisivan pushed a commit that referenced this pull request Jun 1, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants