Skip to content

Instantly share code, notes, and snippets.

@yeastplume
Created February 16, 2021 14:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yeastplume/5d1913c7dc40c40f409ffcfe8fa9b094 to your computer and use it in GitHub Desktop.
Save yeastplume/5d1913c7dc40c40f409ffcfe8fa9b094 to your computer and use it in GitHub Desktop.

I've had some time to think about how Grin/MW ‘the project’ should move forward, and I hope my thoughts have been afforded a bit more clarity from having stepped back from the project for a while. I have some ideas, which I'll structure with some preambles followed by concrete suggestions. Keep in mind that this is all my own thinking presented for the purposes of debate. None of this represents any decisions on behalf of anyone.

Firstly, a bit of reasoning about the current situation:

  • Donations to the fund came in at different stages, and each may have been for slightly different reasons from the donator's perspective (Advancement of the Rust Impl, supporting the core developers or advancement of Grin/MW as a whole). I think the only thing we can assume if we are to move forward is that all current donations to the fund are to advance Grin and related MW Technologies as a whole.

  • There are as many opinions on how Grin/MW should proceed as there are people who have ever been involved with it. In my opinion, nobody knows anything for certain, and the only true way of discovering whether particular technologies work are to experiment with them. Projects that stop innovating and experimenting are usually quickly surpassed by the next big thing, and separate (and even competing) visions for Grin/MW can only be a good thing.

  • I've said before that Grin/MW is not necessarily the be-all and end-all, but it exists in a continuum of technologies that are informed by previous ones. Experimentation is not something that should be feared, nor is the possibility of forks or deviations from 'Pure MW'. If there are ten (good faith and technically-driven) coins out there based on MW, surely this has to be a better overall result for MW than just having one?

Generally, we currently seem to have two main factions in the community. How this happened needs to be put aside; the only thing that matters is how best to proceed from here.

One one hand, we have the core team/council/whatever you want to call it:

  • The core team is mostly made up of 'founders' or people who have been around Grin from the early days. The core team currently has control over the entire fund, but are in a position where they feel unable to spend it as they see fit due to debate/opposition from the community over absolutely every spending decision. Much of this derives from the original project's promise to be run as openly and inclusively as possible.
  • The core team has tried to structure all spending decisions around open principles, but in my opinion I don't believe there is any process that can make this work. A project with a budget needs a management team enabled to make spending decisions. I believe the current approach as attempted by the core team has resulted in what is (rightly or wrongly) perceived as a 'lip-service' process whereby the core team makes spending decisions and 'pretends' to solicit community feedback. This contention is a significant source of burn-out on the current core team.
  • The core team is also feeling particularly burnt-out over endless debates with the community about their unwillingness to consider new features that aren't 'core' to MW. It is true that the core team is currently very conservative and deliberate about adding new features to Grin, and is more focused on the core underlying tech than it is about GUI wallets and usability. I'm offering no opinion right now as to whether this is the correct approach. It is an approach that can be argued for, but is also one that appears very frustrating for those who are more interested in experimentation and/or focusing more on adoption and the user experience.

On the other hand, we have Grin++:

  • Grin++ (IMO) is doing a much better job of engaging the community and in building better user experience. The Grin++ side of the community has a lot of ideas and proposals born from a desire for a better user experience/greater adoption that don't fit in with the core team's more 'purist' vision of the code.
  • Those on the Grin++ side are rightfully frustrated by the lack of focus on user-experience by the Grin core team, and by the fact that all of the funds are controlled by a small core of original contributors. They feel that the core team has too much direct control over the project, which leads to concerns about centralisation and frustration over a lack of funds available for aspects of the project they see as important.

Both sides are right and wrong over many things. I'm personally frustrated by how difficult Grin is to use at the moment, but I can also see valid arguments for being very slow and considerate about making changes to the core code. I can understand why it's frustrating for some in the community to see a very healthy development fund, but not seeing as much of it as they'd like spent on R&D, cryptography research, user experience, building out the community or any of the other things you'd expect a well-funded project to be doing.

After considering other options, I believe the only way to properly employ the current development fund towards the healthy progress of Grin/MW for the core team to split off a portion of the fund to seed another (or multiple) funds run by different groups of people. The goal of this would be:

  • Decentralise responsibility for the development of Grin/MW
  • Allow teams with different visions Grin's future to freely experiment without needing to make funding requests from the core team
  • Allow the core team to continue work on their 'vision' for Grin by restructuring itself and its community as it best sees fit for development
  • Give more choice to community members as to which vision of Grin/MW/Future MW Coin they wish to support

The details of how this can be done are obviously going to be open to debate, and there are a few options I can see:

  1. Split off a chunk of the fund into a 'community' fund run by prominent members of the community. This separate fund could then decide what other Grin-related projects/experiments/forks should be funded without needing approval from the core team for funding.

  2. Split the fund into 3, such as:

  • The Rust Grin/MW Implementation fund
  • The Grin++ Implementation fund
  • The Grin/MW Community Fund

The Rust and Grin++ implementations could then be run by their management teams as they see fit. Other than a requirement for spending transparency (which I'll talk about a bit below), there would be no obligations around how these teams choose to run their projects, or how they organise their communities. Spending decisions or any processes they choose to put around them would be completely up to the individual teams.

The community fund could then be a group of people from the community empowered to take action on ideas of importance to the Grin/MW community. This can be in the form of running events, marketing, writing books, podcasts, liaising with exchanges, running exchanges, fund-raising or whatever the team feels is beneficial and healthy to the growth of Grin/MW. This team could also be responsible for running and moderating a 'common ground' (whatever medium that takes) in which all members of the teams and the community can talk, freely exchange ideas, coordinate, or decide not to coordinate.

  1. ??? Open to suggestions for any other type of split, so long as it affords all parties to proceed as they see fit.

While any team created would be self-organising, they would still be required to be open and transparent with the community over use of funds, and publish reports at regular intervals to demonstrate that funds are being spent towards Grin/MW advancement in good faith. I realise we have no way to properly enforce this, but this isn't any different from the current situation whereby nobody can enforce anything about what the core team does. Respect for our donors, the community and the project itself is what keeps the current core team honest, and the community would expect the same attitude from all teams.

To clarify, this is still an open discussion. These are my own suggestions, and they are not made with a 'core team' member hat on. I have no idea whether these ideas will be acceptable to all parties involved. But an arrangement along these lines is the only way I can see to addresses current concerns and employ the current fund towards the goal of advancing research into Grin/MW in a more efficient and less centralised manner.

@FirsArgentum
Copy link

Great suggestions. Aside from the 2 technical teams, it would also be great to have the Grin/MW Community Fund to focus on usability issues and engaging with exchanges, social media, general PR stuff. The/A governing council could have representatives from all 3 groups as well as independent (objective) persons (like NEDs on a company board), to help make fair and properly considered awarding of funds.

@liamaharon
Copy link

+1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment