From 7bd67e92661653454d21a3038e462926ab263c00 Mon Sep 17 00:00:00 2001 From: Yeastplume Date: Fri, 7 Feb 2020 15:05:18 +0000 Subject: [PATCH 1/9] add general fund spending rfc --- text/0000-general-fund.md | 101 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 text/0000-general-fund.md diff --git a/text/0000-general-fund.md b/text/0000-general-fund.md new file mode 100644 index 0000000..992c2bd --- /dev/null +++ b/text/0000-general-fund.md @@ -0,0 +1,101 @@ + +- Title: general-fund-spending-guidelines +- Authors: [Yeastplume](mailto:yeastplume@protonmail.org) +- Start date: [Feb 07, 2020] +- RFC PR: Edit if merged: [mimblewimble/grin-rfcs#0000](https://github.com/mimblewimble/grin-rfcs/pull/0000)· +- Tracking issue: [Edit if merged with link to tracking github issue] + +--- + +# Summary +[summary]: #summary + +This RFC establishes a set of guidelines for spending the Grin Development Fund, the procedure via which funding requests can be made, and a set of procedures for managing and reporting on the fund. + +# Motivation +[motivation]: #motivation + +Previously there were no clear guidelines on how the Grin Development Fund could be spent and what types of activities could and could not be financed from the fund. This RFC presents a set of non-exhaustive guidelines intended to ensure that: + +* Donators have a clear understanding of how their donations are likely to be spent. +* Those with funding ideas have a clear reference point to understand what types of proposals are likely to be considered for funding. +* Those with funding ideas have a specific process through which they can apply for funding. +* The team making spending decisions has clear, community-established guidelines against which to consider new funding requests. +* The decision-making process through which funding requests are granted is as fair, consistent and transparent as it can reasonably be. +* The wider community understands how the fund is managed and that transparency is evident. + +Note that this document does not establish hard-and-fast rules for how the fund's contents can be spent. It is meant to be an indicative focal point for the community, and is intended to evolve with the needs of the project. + +# Community-level explanation +[community-level-explanation]: #community-level-explanation + +## Appropriate and inappropriate uses of the Grin Development Fund + +Although spending decisions will always be made on a case-by-case basis, it is understood that the Grin Development Fund is to be used mainly to finance the development needs of the Grin project and the advancement of Grin/Mimblewimble as a whole. + +There is scope for interpretation as to what this actually means, but the following presents (non-exhaustive) guidelines as to the types of activities that would be considered appropriate to finance from the fund. + +* Activities related to the continuing development needs of the Grin code-base and related projects under the GitHub [mimblewimble](github.com/mimblewimble) organization. This can include: + * Fixed-term development or project-management contracts + * Infrastructure and other incidental costs + * Security audit costs + * Costs incurred for any legal matters that may arise for either the project or individual contributors +arising directly from their work in good faith on the Grin project +* Running budgets for Grin teams (with funds spent at their own discretion) +* Technological research in areas that may be relevant to Grin in the future +* Cryptographic research related to Grin or Mimblewimble in general +* Supporting non-profit, community-driven and inclusive promotional efforts for the Grin Project (e.g. Grincon) +* Charitable donations toward important causes relevant to the Grin or cryptocurrency communities as a whole + +While the guidelines above give plenty of flexibility in how funds can be employed toward the advancement of the Grin project, certain types of funding requests will not be considered: + +* Marketing or promotional 'offers' where a party is taking a profit or gains some financial benefit to promote Grin (regardless of how the 'opportunity' is presented) +* Cryptocurrency speculation or any kind of investment + +## Request for Funding Process + +All requests for funding should be made in the [Governance Section](https://forum.grin.mw/c/governance) of the Grin forum. Topics should be clearly titled "Request for Funding: " followed by a short description of the request. + +There is no set template for what the contents of the funding request should include, however a better reception can be attained by including: + +* The exact amount requested, what the funding covers and for what time period (if applicable) +* A clear description of what will be provided to the Grin project in return, including: + * Details of any work or research that will be performed during the period + * The expected deliverable, if applicable (for a research project, for instance) +* Background information on the person making the request + +Amounts can be stated in local currency equivalents, if desired, with the exact Cryptocurrency amount determined by the rate at the time of transfer. + +All community discussion on the funding request should be made within the forum thread itself, and the final decision on the request will be made by members of the core team at a public governance meeting, to take place at least one week after the request is made. The community is encouraged to display their support (or lack thereof) of a funding request at these Governance meetings, however the decision rests with the core team. + +It should also be noted that decisions should never be considered final. Those making funding requests are encouraged to revise or refine proposals based on whatever feedback is given during the request process and submit them for consideration again. + +## Decision Process + +While everyone and anyone is encouraged to create a funding request, those making requests should understand that not all funding decisions will be approved simply on the basis of them conforming to the guidelines above. Many other factors will be considered for each request, including (but not limited to): + +* How well known in the community is the person making the funding request? +* Have too many similar requests been funded recently? +* How tangible is the value proposition to Grin? +* How much risk is involved relative to the size of the ask and the potential return. + +Everyone is welcome to weigh in on the merits of a funding request in the forum thread and during the public governance meeting where the funding request is finalized. The core team will strive to ensure there's a community consensus for each request, however the final decision rests with the core team. Other Grin teams who have been allocated budgets can spend funds at their own discretion, but are strongly encouraged to consider the guidelines in this RFC during their decision making process. + +## Tips on effective proposals + +* You proposal is likely to be better received if you're already known to the Grin community or the wider cryptocurrency community. Even more so if you've already contributed to Grin in some meaningful way. +* It might be better to keep your initial funding request small and focused, particularly if your idea is something new and radical, or if you're unknown to the Grin community. +* Be specific, professional and thorough with your proposal. +* Be respectful and professional in your response to any feedback and criticism on the proposal thread + +## Transparency and processes + +The result of all funding decisions will be published in the meeting notes found in the [Grin Project Management](https://github.com/mimblewimble/grin-pm) repository. + +The core team is obliged to publish a detailed spending log of all transactions made in and out of the fund, as well as quarterly spending reports summarizing all income and spending. These reports will also be made available in the Grin PM Repository. + +## Unresolved questions + +* This RFC is put together on the understanding that the fundamental question of 'who appoints the core team' is still outstanding. This point should be discussed separately and this RFC assumes there is an acceptable answer in place. + +# Future possibilities From 486e844f4bb7ef9e23acb50cbefe80e8f2fd4daf Mon Sep 17 00:00:00 2001 From: yeastplume Date: Tue, 21 Apr 2020 15:07:27 +0100 Subject: [PATCH 2/9] add payout process section --- text/0000-general-fund.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/text/0000-general-fund.md b/text/0000-general-fund.md index 992c2bd..29e5b9c 100644 --- a/text/0000-general-fund.md +++ b/text/0000-general-fund.md @@ -88,6 +88,14 @@ Everyone is welcome to weigh in on the merits of a funding request in the forum * Be specific, professional and thorough with your proposal. * Be respectful and professional in your response to any feedback and criticism on the proposal thread +# Payout Process + +* At the time of payout, an amount of Bitcoin equivalent to the funding amount is paid out to an address provided by the funding requestor only. +* The payout address should be provided to the core team by the requestor via a secure, verifiable channel (with cryptographic proof of identity if deemed necessary). +* The exchange rate between BTC and the target currency is determined by the exchange rate at the time of the funding transaction, without exception. +* To minimize the effects of currency fluctuations on accounting transparency, all payments should be performed at pre-arranged "signing parties" in which mu-sig holders sample the current exchange rate. The transaction should be created, signed and broadcast as quickly as possible, with the transaction and rate reported back to the core team for tracking. +* Mu-sig holders will verify the address provided by the funding requestor several times during transction creation and broadcasting. However, the core team is not responsible for errors or incorrect addresses provided by the requestor. + ## Transparency and processes The result of all funding decisions will be published in the meeting notes found in the [Grin Project Management](https://github.com/mimblewimble/grin-pm) repository. From df055fa37d5ea75aa17e06940fdc3a65b6c56d8d Mon Sep 17 00:00:00 2001 From: yeastplume Date: Tue, 21 Apr 2020 15:15:16 +0100 Subject: [PATCH 3/9] note on currencies --- text/0000-general-fund.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text/0000-general-fund.md b/text/0000-general-fund.md index 29e5b9c..d709499 100644 --- a/text/0000-general-fund.md +++ b/text/0000-general-fund.md @@ -64,7 +64,7 @@ There is no set template for what the contents of the funding request should inc * The expected deliverable, if applicable (for a research project, for instance) * Background information on the person making the request -Amounts can be stated in local currency equivalents, if desired, with the exact Cryptocurrency amount determined by the rate at the time of transfer. +Amounts should be stated using fiat currency equivalents, if desired, with the exact Cryptocurrency amount determined by the rate at the time of transfer. To assist others with conceptualizing the amounts, fiat currencies used should be reasonably global, e.g. USD, EUR, RMB, GBP. All community discussion on the funding request should be made within the forum thread itself, and the final decision on the request will be made by members of the core team at a public governance meeting, to take place at least one week after the request is made. The community is encouraged to display their support (or lack thereof) of a funding request at these Governance meetings, however the decision rests with the core team. From dbfdf97eeaee30336479c24771cd3678af278b02 Mon Sep 17 00:00:00 2001 From: yeastplume Date: Tue, 21 Apr 2020 15:16:35 +0100 Subject: [PATCH 4/9] note on currencies pt 2 --- text/0000-general-fund.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text/0000-general-fund.md b/text/0000-general-fund.md index d709499..fa21b32 100644 --- a/text/0000-general-fund.md +++ b/text/0000-general-fund.md @@ -64,7 +64,7 @@ There is no set template for what the contents of the funding request should inc * The expected deliverable, if applicable (for a research project, for instance) * Background information on the person making the request -Amounts should be stated using fiat currency equivalents, if desired, with the exact Cryptocurrency amount determined by the rate at the time of transfer. To assist others with conceptualizing the amounts, fiat currencies used should be reasonably global, e.g. USD, EUR, RMB, GBP. +Amounts should be stated using fiat currency equivalents with the exact Cryptocurrency amount determined by the rate at the time of transfer. To assist others with conceptualizing the amounts, fiat currencies used should be reasonably global, e.g. USD, EUR, RMB, GBP. All community discussion on the funding request should be made within the forum thread itself, and the final decision on the request will be made by members of the core team at a public governance meeting, to take place at least one week after the request is made. The community is encouraged to display their support (or lack thereof) of a funding request at these Governance meetings, however the decision rests with the core team. From 92c8f0c47f8173dc5aef7ca031db4bcb597340a9 Mon Sep 17 00:00:00 2001 From: yeastplume Date: Tue, 21 Apr 2020 15:18:03 +0100 Subject: [PATCH 5/9] typo --- text/0000-general-fund.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text/0000-general-fund.md b/text/0000-general-fund.md index fa21b32..e69f97f 100644 --- a/text/0000-general-fund.md +++ b/text/0000-general-fund.md @@ -94,7 +94,7 @@ Everyone is welcome to weigh in on the merits of a funding request in the forum * The payout address should be provided to the core team by the requestor via a secure, verifiable channel (with cryptographic proof of identity if deemed necessary). * The exchange rate between BTC and the target currency is determined by the exchange rate at the time of the funding transaction, without exception. * To minimize the effects of currency fluctuations on accounting transparency, all payments should be performed at pre-arranged "signing parties" in which mu-sig holders sample the current exchange rate. The transaction should be created, signed and broadcast as quickly as possible, with the transaction and rate reported back to the core team for tracking. -* Mu-sig holders will verify the address provided by the funding requestor several times during transction creation and broadcasting. However, the core team is not responsible for errors or incorrect addresses provided by the requestor. +* Mu-sig holders will verify the address provided by the funding requestor several times during transaction creation and broadcasting. However, the core team is not responsible for errors or incorrect addresses provided by the requestor. ## Transparency and processes From 6bcafd66df743f1fb3e38c7f400fbe5cf3946856 Mon Sep 17 00:00:00 2001 From: Yeastplume Date: Mon, 18 May 2020 10:46:55 +0100 Subject: [PATCH 6/9] clarification on community projects --- text/0000-general-fund.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/text/0000-general-fund.md b/text/0000-general-fund.md index e69f97f..f040c63 100644 --- a/text/0000-general-fund.md +++ b/text/0000-general-fund.md @@ -39,11 +39,11 @@ There is scope for interpretation as to what this actually means, but the follow * Fixed-term development or project-management contracts * Infrastructure and other incidental costs * Security audit costs - * Costs incurred for any legal matters that may arise for either the project or individual contributors -arising directly from their work in good faith on the Grin project + * Costs incurred for any legal matters that may arise for either the project or individual contributors arising directly from their work in good faith on the Grin project * Running budgets for Grin teams (with funds spent at their own discretion) * Technological research in areas that may be relevant to Grin in the future * Cryptographic research related to Grin or Mimblewimble in general +* Fully open-sourced community-based projects that enhance the Grin ecosystem * Supporting non-profit, community-driven and inclusive promotional efforts for the Grin Project (e.g. Grincon) * Charitable donations toward important causes relevant to the Grin or cryptocurrency communities as a whole @@ -78,6 +78,7 @@ While everyone and anyone is encouraged to create a funding request, those makin * Have too many similar requests been funded recently? * How tangible is the value proposition to Grin? * How much risk is involved relative to the size of the ask and the potential return. +* Does a prioritization call need to be made due to a limited balance in the General Fund? Everyone is welcome to weigh in on the merits of a funding request in the forum thread and during the public governance meeting where the funding request is finalized. The core team will strive to ensure there's a community consensus for each request, however the final decision rests with the core team. Other Grin teams who have been allocated budgets can spend funds at their own discretion, but are strongly encouraged to consider the guidelines in this RFC during their decision making process. @@ -104,6 +105,6 @@ The core team is obliged to publish a detailed spending log of all transactions ## Unresolved questions -* This RFC is put together on the understanding that the fundamental question of 'who appoints the core team' is still outstanding. This point should be discussed separately and this RFC assumes there is an acceptable answer in place. +* This RFC is put together on the understanding that the fundamental question of 'who appoints the core team' is still outstanding. This point should be discussed separately and this RFC assumes there is an acceptable answer in place. # Future possibilities From ee1517e90eda213c2ca2556e8fbd27cd542c366b Mon Sep 17 00:00:00 2001 From: Daniel Lehnberg Date: Wed, 3 Jun 2020 17:38:26 +0200 Subject: [PATCH 7/9] polish based on feedback in pull request --- text/0000-general-fund.md | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/text/0000-general-fund.md b/text/0000-general-fund.md index f040c63..8b954b7 100644 --- a/text/0000-general-fund.md +++ b/text/0000-general-fund.md @@ -64,9 +64,9 @@ There is no set template for what the contents of the funding request should inc * The expected deliverable, if applicable (for a research project, for instance) * Background information on the person making the request -Amounts should be stated using fiat currency equivalents with the exact Cryptocurrency amount determined by the rate at the time of transfer. To assist others with conceptualizing the amounts, fiat currencies used should be reasonably global, e.g. USD, EUR, RMB, GBP. +Amounts should be stated using fiat currency equivalents with the exact Cryptocurrency amount determined by the rate at the time of transfer. To assist others with conceptualizing the amounts, fiat currencies used should be reasonably global, e.g. USD, EUR, CNY, GBP. -All community discussion on the funding request should be made within the forum thread itself, and the final decision on the request will be made by members of the core team at a public governance meeting, to take place at least one week after the request is made. The community is encouraged to display their support (or lack thereof) of a funding request at these Governance meetings, however the decision rests with the core team. +All community discussion on the funding request should be made within the forum thread itself, and the final decision on the request will be made by members of the core team at a [public governance meeting](https://github.com/mimblewimble/grin-pm/issues?q=is%3Aissue+label%3Agovernance+label%3Ameetings+), to take place at least one week after the request is made. The community is encouraged to display their support (or lack thereof) of a funding request at these Governance meetings, however the decision rests with the core team. It should also be noted that decisions should never be considered final. Those making funding requests are encouraged to revise or refine proposals based on whatever feedback is given during the request process and submit them for consideration again. @@ -89,22 +89,28 @@ Everyone is welcome to weigh in on the merits of a funding request in the forum * Be specific, professional and thorough with your proposal. * Be respectful and professional in your response to any feedback and criticism on the proposal thread -# Payout Process +## Payout Process -* At the time of payout, an amount of Bitcoin equivalent to the funding amount is paid out to an address provided by the funding requestor only. +* At the time of payout, the approved funding amount is converted to the equivalent in cryptocurrency and paid out to an address provided by the funding requestor only. * The payout address should be provided to the core team by the requestor via a secure, verifiable channel (with cryptographic proof of identity if deemed necessary). -* The exchange rate between BTC and the target currency is determined by the exchange rate at the time of the funding transaction, without exception. +* Any conversion rate between the currency of the funding request and the currency that is paid out from the general fund is determined by the prevailing exchange rate at the time of the funding transaction, without exception. * To minimize the effects of currency fluctuations on accounting transparency, all payments should be performed at pre-arranged "signing parties" in which mu-sig holders sample the current exchange rate. The transaction should be created, signed and broadcast as quickly as possible, with the transaction and rate reported back to the core team for tracking. * Mu-sig holders will verify the address provided by the funding requestor several times during transaction creation and broadcasting. However, the core team is not responsible for errors or incorrect addresses provided by the requestor. -## Transparency and processes +## Reporting The result of all funding decisions will be published in the meeting notes found in the [Grin Project Management](https://github.com/mimblewimble/grin-pm) repository. -The core team is obliged to publish a detailed spending log of all transactions made in and out of the fund, as well as quarterly spending reports summarizing all income and spending. These reports will also be made available in the Grin PM Repository. +The core team is obliged to publish a detailed spending log of all transactions made in and out of the fund, as well as quarterly transparency reports summarizing all income and spending. This and other financial reporting can be found in the [/grin-pm](https://github.com/mimblewimble/grin-pm) repository. -## Unresolved questions +# Unresolved questions * This RFC is put together on the understanding that the fundamental question of 'who appoints the core team' is still outstanding. This point should be discussed separately and this RFC assumes there is an acceptable answer in place. # Future possibilities + +Ideas to further improve the funding process include creating a community funding website, where proposals can be made and vetted by the community, and support for particular ideas can be shown. Contributions towards funding could be made by community individuals and be matched with contributions from the general fund. + +# References +* https://grin.mw/fund +* https://github.com/mimblewimble/grin-pm/ \ No newline at end of file From 02e6a9e96a5ad2e5476b3ef42e93176b0c964dfe Mon Sep 17 00:00:00 2001 From: Daniel Lehnberg Date: Sat, 6 Jun 2020 12:51:58 +0200 Subject: [PATCH 8/9] RFC#0014 --- ...00-general-fund.md => 0014-general-fund-guidelines.md} | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) rename text/{0000-general-fund.md => 0014-general-fund-guidelines.md} (97%) diff --git a/text/0000-general-fund.md b/text/0014-general-fund-guidelines.md similarity index 97% rename from text/0000-general-fund.md rename to text/0014-general-fund-guidelines.md index 8b954b7..ffa4595 100644 --- a/text/0000-general-fund.md +++ b/text/0014-general-fund-guidelines.md @@ -1,9 +1,9 @@ -- Title: general-fund-spending-guidelines +- Title: `general-fund-guidelines` - Authors: [Yeastplume](mailto:yeastplume@protonmail.org) -- Start date: [Feb 07, 2020] -- RFC PR: Edit if merged: [mimblewimble/grin-rfcs#0000](https://github.com/mimblewimble/grin-rfcs/pull/0000)· -- Tracking issue: [Edit if merged with link to tracking github issue] +- Start date: Feb 07, 2020 +- RFC PR: Edit if merged: [mimblewimble/grin-rfcs#41](https://github.com/mimblewimble/grin-rfcs/pull/41) +- Tracking issue: `N/A` --- From d6794c9414dbe895ecfc30b515793c9ca63d21ff Mon Sep 17 00:00:00 2001 From: Daniel Lehnberg Date: Sat, 6 Jun 2020 12:53:13 +0200 Subject: [PATCH 9/9] update README --- README.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 214b33f..40478f1 100644 --- a/README.md +++ b/README.md @@ -18,12 +18,15 @@ To begin writing your own RFC or to find out more about the process and the gene | [0003-security-process](text/0003-security-process.md) | Define community standards for ethical disclosure behaviour | | [0004-full-wallet-lifecycle](text/0004-full-wallet-lifecycle.md) | Define API standard for sensitive wallet operations | | [0005-variable-size-kernels](text/0005-variable-size-kernels.md) | Introduce kernel variants that can be of different sizes | -| [0006-payment-proofs](text/0006-payment-proofs.md) | Support generating and validating payment proofs for sender-initiated (i.e. non-invoice) transactions. -| [0007-node-api-v2](text/0007-node-api-v2.md) | Create a v2 JSON-RPC API for the Node API. -| [0008-wallet-state-management](text/0008-wallet-state-management.md) | Improve wallet state management. -| [0009-enable-faster-sync](text/0009-enable-faster-sync.md) | Enable faster txhashset sync by changing output MMR commitment -| [0010-online-transacting-via-tor](text/0010-online-transacting-via-tor.md) | Define standard for transacting via TOR - +| [0006-payment-proofs](text/0006-payment-proofs.md) | Support generating and validating payment proofs for sender-initiated (i.e. non-invoice) transactions | +| [0007-node-api-v2](text/0007-node-api-v2.md) | Create a v2 JSON-RPC API for the Node API | +| [0008-wallet-state-management](text/0008-wallet-state-management.md) | Improve wallet state management | +| [0009-enable-faster-sync](text/0009-enable-faster-sync.md) | Enable faster txhashset sync by changing output MMR commitment | +| [0010-online-transacting-via-tor](text/0010-online-transacting-via-tor.md) | Define standard for transacting via Tor | +| [0011-security-team](text/0011-security-team.md) | Establish Grin Security team | +| [0012-compact-slates](text/0012-compact-slates.md) | Introduce new compact slate format (Slate V4) | +| [0013-nrd-kernels](text/0013-nrd-kernels.md) | Introduce relative timelocks through "No Recent Duplicate" transaction kernels | +| [0014-general-fund-guidelines](text/0014-general-fund-guidelines.md) | Define general fund spending guidelines | ## License