Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open-source relay - which license to use? #237

Closed
metachris opened this issue Aug 4, 2022 · 9 comments
Closed

Open-source relay - which license to use? #237

metachris opened this issue Aug 4, 2022 · 9 comments
Labels
brainstorming Currently in discussion relay

Comments

@metachris
Copy link
Collaborator

metachris commented Aug 4, 2022

We will open source our mev-boost relay!

(ETA early September)

For context, this is our Ropsten relay: https://builder-relay-ropsten.flashbots.net (see also the Relay API Documentation)

What's your opinions on the license we should use, and why?

See also https://choosealicense.com/licenses

Note: We were strongly considering AGPL, which would oblige anyone making changes to publish them as well, in order to foster a thriving development ecosystem around the mev-boost relays.

@ryanschneider
Copy link

Can you give us a bit more context on what exactly would be open sourced? For example does it include a lot of "operational" specifics like interacting w/ nodes for propagating revealed blocks? Or is it purely the "routing" portions of the relayer? IMO the more operational specific parts should be under a more "permissive" license since those are the parts that are more likely to new to be specialized for a particular deployment of the relay, but I'd be open to hearing others opinions on even those parts being AGPL (to perhaps foster collaboration across teams).

@metachris
Copy link
Collaborator Author

The relay includes a bunch of responsibilities, and services designed to be run in a highly concurrent manner. Here's a quick list of the main parts:

Builder APIs

  • provides upcoming validator duties with proposer preferences
  • receives and simulates/verifies builder block submissions
  • handles block submission spam
  • stores valid block submissions in a redundant way

Proposer APIs

  • handles validator registrations
  • delivers bids and payloads to the proposer

Data API

Website

Housekeeping services

  • Prepare validator registrations and duties for the APIs
  • Data cleanup
  • ...

@sambacha
Copy link

sambacha commented Aug 4, 2022

Pick the UPL license https://github.com/sambacha/use-UPL-not-MIT

or pick the mozilla MPL2 license

If you are worried about networking use the SSPL1.0 License instead of AGPL

agpl3 doesnt even cover its stated purpose for covering networked services

@metachris
Copy link
Collaborator Author

Regarding SSPL see also https://opensource.org/node/1099 (OSI: "The SSPL is not an Open Source License")

@sambacha
Copy link

sambacha commented Aug 5, 2022

Regarding SSPL see also opensource.org/node/1099 (OSI: "The SSPL is not an Open Source License")

Neither is AGPL. AGPL is Free Software, not open source.

If you want Open Source, pick UPL.

diff of AGPL and SSPL: https://gist.github.com/metachris/e27dce77715564dfeaeac6be7d9dd625

@flashbots flashbots deleted a comment from sambacha Aug 5, 2022
@metachris
Copy link
Collaborator Author

@jtraglia
Copy link
Collaborator

jtraglia commented Aug 5, 2022

Firstly, I'm so happy that flashbots has decided to open-source the relay! I've been wanting to look at it for a while now. Personally, I am less likely to contribute to projects with copyleft licenses (GPL, AGPL, LGPL, etc). Some projects/organizations ask developers to not even look at GPL code to 100% ensure they do not contaminate their copyright projects. This is because copyleft licenses are very restrictive. All this to say, I recommend the Apache 2.0 license.

@come-maiz
Copy link
Contributor

Note that this license will apply only to the relay code as @metachris specified.

mev-boost, common utils, and other free software projects from flashbots will remain with their current license, usually MIT.

The relay is a temporary trusted component that enables us to mitigate mev while we explore permissionless PBS. We are looking for a collaborative relation between potential relay operators to get us to full permissionless in-protocol PBS, which is a fun, challenging and long road.

I think we can easily achieve that collaboration by always keeping in mind the PBS goal and ethereum stability and security. The particular licensing details are less relevant. What is important here is that the code will be free. And that collected data will be transparent to verify and analyze behavior, that's important too.

It's interesting to hear your strong opinions. We will receive all of them and take them into account, and make a decision after the security audit.

@come-maiz
Copy link
Contributor

We have decided to release it using AGPL. See flashbots/mev-boost-relay#72

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
brainstorming Currently in discussion relay
Projects
None yet
Development

No branches or pull requests

5 participants