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

Clarify and widen license exceptions #334

Closed
wants to merge 4 commits into from
Closed

Conversation

daira
Copy link
Contributor

@daira daira commented May 19, 2022

The intent is to make clear that it is possible to extend the functionality of Zcash implementations (not necessarily only published by the ECC or ZF), and to experiment on testnets, while still relying on the BOSL exception. The leeway given to chain forks is increased to 3456 blocks (roughly 3 days) to make reasonable allowance for release processes.

closes #332

The intent is to make clear that it is possible to extend the functionality of Zcash implementations (not necessarily only published by the ECC or ZF), and to experiment on testnets, while still relying on the BOSL exception. The leeway given to forks is increased to 3456 blocks (roughly 3 days) to make reasonable allowance for release processes.
Copy link
Contributor

@nuttycom nuttycom left a comment

Choose a reason for hiding this comment

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

nonbinding: I approve of these clarifications.

@daira daira mentioned this pull request May 20, 2022
COPYING Outdated Show resolved Hide resolved
@r3ld3v
Copy link
Contributor

r3ld3v commented May 20, 2022

I'll collect all of these suggestions and comments and also see if we get other feedback from partners or the community and then get them reviewed.

Thanks for all the feedback!

COPYING Outdated Show resolved Hide resolved
@codecov-commenter
Copy link

codecov-commenter commented May 20, 2022

Codecov Report

Merging #334 (bd4bd72) into main (4f3f0ea) will increase coverage by 1.60%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #334      +/-   ##
==========================================
+ Coverage   89.51%   91.11%   +1.60%     
==========================================
  Files          36       36              
  Lines        3824     4527     +703     
==========================================
+ Hits         3423     4125     +702     
- Misses        401      402       +1     
Impacted Files Coverage Δ
src/circuit/note_commit.rs 99.40% <0.00%> (+0.49%) ⬆️
src/circuit/commit_ivk.rs 96.83% <0.00%> (+1.21%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 4f3f0ea...bd4bd72. Read the comment docs.

- A project that implements Zcash;
- A project that implements a Zcash Chain Fork;
- A project that implements a Zcash Technology Testnet;
- A project that is designed to integrate with Zcash (whether or not it can

Choose a reason for hiding this comment

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

How to define integrate with Zcash?

Can a Zcash forked chain application add a ZEC donation deposit and transaction explorer option while having only advanced features for the forked chain version? And still qualify, as the application that "provides additional functionality or utility to the Zcash network and holders of ZEC" by allowing a deposit address and other "limited" features for ZEC in the same application.

Copy link
Contributor Author

@daira daira May 23, 2022

Choose a reason for hiding this comment

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

My intent was that if you add features for a chain fork then you should make a reasonable effort to provide them for the Zcash chain. That is the whole point of saying "integrate with Zcash" as opposed to "integrate with Zcash or a Zcash Chain Fork". Sometimes this might not be possible, if the features rely on particular consensus or peer-to-peer protocol differences. I'm not sure that the intent can be fully captured in legal wording; at some point you have to assume good faith.

Copy link
Contributor Author

@daira daira Mar 24, 2023

Choose a reason for hiding this comment

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

Note that this is only a clarification; it does not change what is allowed. The substantive changes to what is allowed are:

  • the change on line 28 to allow use on testnets;
  • the change to give Zcash Chain Forks the 3456 block leeway;
  • not limiting "a project that implements Zcash" to the Zcash projects by ECC and the Zebra project by ZF, instead defining "Zcash" based on the Zcash Trademark Agreement. This potentially allows other consensus-compatible implementations, including code forks of Zcashd and Zebra that follow the Zcash block chain.

The last of these is important because without it, it is not clear that a party other than ECC or ZF can code-fork Zcashd or Zebra at all unless they reimplement orchard.

… addition of "or was").

Co-authored-by: Kris Nuttycombe <[email protected]>
COPYING Outdated Show resolved Hide resolved
COPYING Outdated Show resolved Hide resolved
Co-authored-by: Kris Nuttycombe <[email protected]>
- A "Zcash Chain Fork" means a blockchain that descends from the Zcash
blockchain and that activates its first change to the consensus rules
relative to Zcash at a block height that is or was within 3456 blocks
of the current height of the Zcash chain at the time of activation.
Copy link
Contributor Author

@daira daira Nov 4, 2022

Choose a reason for hiding this comment

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

The idea of the change to allow a 3456-block leeway, is that the fork's implementation might need to hard-code information (e.g. a checkpoint or a snapshot of some of the chain state) that depends on the Zcash chain, and then have nodes running that code when the fork happens. This change allows 3 days between those two points, which is enough time to prepare the code, do a release, and have a reasonable number of nodes running that release at the fork height.

Not all forks will need this; it depends how much they are changing. But it could plausibly be needed.

@daira
Copy link
Contributor Author

daira commented Dec 19, 2023

Closing in favour of #405.

@daira daira closed this Dec 19, 2023
@daira daira deleted the clarify-and-widen-exceptions branch December 19, 2023 23:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

#331 was merged without addressing review comments
5 participants