3

The substrate node template comes with Unlicense whilst the substrate code base itself comes with a split license of Apache 2.0 and GPL3. What does this mean for a developer trying to build and deploy a public chain using substrate node template? What should they keep in mind when trying to distribute the binaries/source code? Are they required to explicitly show code changes or can they keep the code modifications private? Does it make a difference if the end chain was built using the substrate bin which is licensed as Apache 2.0 or using substrate-node-template which is Unlicense?

1 Answer 1

4

It seems you should review the different software license options available and what they provide:

https://choosealicense.com/licenses/

I am not a lawyer, this is not legal advice.

Apache 2.0 was chosen for Substrate's FRAME because it is a permissive open source license which allows people to build commercial, for-profit products with it, while keeping their source code and other intellectual property private and patented. We felt this was the best license to ensure that developers using Substrate could build successful businesses on top of this platform. (In comparison with a GNU license which requires all derivative work to also be open source.)

However, we are protected with Apache 2.0 from malicious individuals from simply forking our code directly and changing the name, copyright, and license data. Any code which is forked from Substrate must maintain the original notices which credits Parity Technologies with that development.

enter image description here

The client code in Substrate is licensed with GPL which is a more restrictive copyleft license which requires that any derivative products built with the client code is also made open source, such that everyone can profit from bug fixes and performance improvements which are made by others.

enter image description here

The substrate-node-template is a project built on top of Substrate, and thus can have its own license. In this case, the template is license with Unlicense, which is about the most permissive "license" you can provide. It explicitly states there is no license for this product, and you can do whatever you want with it to any extent, without any conditions.

enter image description here

However, this is just a project built on top of Substrate, so the underlying Substrate license is not affected by the fact that the substrate-node-template uses Unlicense.

1
  • 1
    IANAL, but I think it is important to note that the client code is not simply under GPL3 but under GPL3 with the Classpath exception -- that's what actually allows the node template (and by extension, custom nodes) to be under pretty much any license as long as any modifications to the Substrate client libraries themselves are shared. Commented Jun 14, 2023 at 11:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.