forked from casper-network/casper-node
-
Notifications
You must be signed in to change notification settings - Fork 0
/
LICENSE
433 lines (353 loc) · 24.1 KB
/
LICENSE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
CasperLabs Open Source License (COSL)
Version 1.0 - February 22, 2019
https://github.com/CasperLabs/CasperLabs/blob/master/LICENSE
TERMS AND CONDITIONS FOR USE, REPRODUCTION AND DISTRIBUTION
0. Preamble
This license, the CasperLabs Open Source License v1.0 (COSLv1.0), is an
open source license that modifies the Apache 2.0 License ("Apache 2.0"; see
https://www.apache.org/licenses/LICENSE-2.0) to be free (libre) open source
software (FLOSS) compliant and to extend to the decentralized application
ecosystem. FLOSS philosophy is incorporated in this COSLv1.0 not only by
adding copyleft provisions, but also by extending the concept of governance
by community as under a license by defining user classes and a license
directed process to identify community compliant versus proprietary
behavior. This COSLv1.0 also explicitly enumerates participants in a
decentralized application ecosystem and activities that harm the community.
1. Definitions
This COSLv1.0 incorporates by reference, the definitions within section 1,
"Definitions," of the Apache 2.0 License.
2. Bifurcation of Subject Matter
This COSLv1.0 applies to a subject matter code base. The subject matter
code base is composed of both object and source code embodiments ("Novel
Code") and legacy code subject to the Apache 2.0 License ("Legacy Code") as
defined in this section 2.
Fork Demarcation: The subject matter code of this COSLv1.0 may be
demarcated by a code share fork made on Midnight GMT, December 2, 2018
("Fork Demarcation Time").
Subject Matter Code Base: The subject matter of this COSLv1.0 is composed
of all files in the GitHub share initially committed to
https://github.com/casperlabs or copies made on or after the Fork
Demarcation Time ("Subject Matter Code"). (See initial commit at:
https://github.com/CasperLabs/CasperLabs/commit/9c83ec3ecaa955dacfa3e42054d05098fc32bfc7).
Novel Code Base: The scope of Novel Code is all additions or modifications
to the Subject Matter Code made on the Fork Demarcation Time or afterwards.
Legacy Code Base: The scope of the Legacy Code is all code included in the
Subject Matter Code share added or created before the Fork Demarcation
Time.
3. Express Invocation of Sections 4 and 9 of the Apache 2.0 License
In some cases, the Novel Code may be used, reproduced and/or distributed
without the Legacy Code. However, where the Legacy Code is used,
reproduced and/or distributed with the Novel Code, this COSLv1.0, which
applies to the Novel Code, is not to be construed to relicense, modify, or
otherwise disturb the Apache 2.0 License of the Legacy Code. This license,
the COSLv1.0, is an extension of the Apache 2.0 License under its section 4
which provides for "additional or different license terms and conditions
for use, reproduction, or distribution." Furthermore, per the Apache 2.0
License under its section 9, a distributor of the Subject Matter Code may
solely accept "warrantee or additional liability" of the distributed
Subject Matter Code.
4. Express Disclaimer of Contributions Under the Apache 2.0 License
Notwithstanding the terms of the Apache License 2.0 regarding
contributions, unless explicitly stated otherwise, all additions or
modifications to the Subject Matter Code are contributions under this
COSLv1.0. In the case of bug fix code changes or integration specific code
changes to the Legacy Code that are propagated to the pre-Fork Demarcation
date open source project share, those code changes are to be subject to the
Apache 2.0 License.
5. Contributions are Under COSLv1.0 and are Subject to Relicense
All contributions to Novel Code will be under this COSLv1.0 and are subject
to the contributor executing a relicensing consent ("Relicensing Consent")
which provides that contributor's agreement to allow their contributions to
be subject to updates to this COSLv1.0 or relicensing in the future,
provided that the updated COSLv1.0 or new license is an open source license
and is consistent with the present COSLv1.0 license including the copyleft
provisions in section 9.
6. Decentralized Ecosystem Parties
The COSLv1.0 is a license intended to benefit the open source community in
the context of the distributed and decentralized platform and decentralized
applications ("Decentralized Applications" or "DApps") based on a
distributed ledger built from the Subject Matter Code. Licensees of the
Subject Matter Code under this COSLv1.0 include the following parties:
Node Operators: A node operator ("Node Operator") is a party that
contributes compute processing for a decentralized platform with a
computing node where at least a portion of a distributed ledger resides on
the node. Node Operators include distributed ledger validators including
miners for Proof of Work decentralized platforms and validators for Proof
of Stake decentralized platforms.
Decentralized Application Developers: A decentralized application developer
("Decentralized Application Developer" or "DApp Developer") is a party that
creates or modifies a DApp. Where a DApp Developer is developing a DApp in
the scope of work for a company or is otherwise contractually bound to
develop a DApp for a company, that company is also a DApp Developer.
Decentralized Application Distributor: A decentralized application
distributor ("Decentralized Application Distributor" or "DApp Distributor")
is a party that distributes a DApp either freely or for compensation.
Decentralized Application Users: A decentralized application user
("Decentralized Application User" or "DApp User") is a party who is an end
user of a DApp. Where an end user uses a DApp in the scope of work for a
company or is otherwise contractually bound to a company to use a DApp, the
company is also a DApp User.
Decentralized Platform Developers: A decentralized platform developer
("Decentralized Platform Developer") is a party that contributes code to
software that enables the decentralized maintenance of a distributed
ledger, development tools to develop DApps on that distributed ledger, or
tools to administer a distributed ledger or applications built on the
distributed ledger.
Token Issuers: A token issuer ("Token Issuer") is a party, including a
party other than the COSLv1.0 Licensor, that releases and manages quanta of
value as managed by the distributed ledger ("tokens") to be used to
transfer value between parties. Tokens may be used to measure work effort,
such as amount of compute power estimated to be used to validate
transactions on a distributed ledger. Where the tokens are hashed by the
distributed ledger and are in a format suitable for use as a currency,
those tokens may be referred to as a "cryptocurrency."
Token Holders: A token holder ("Token Holder") is a party the retains
tokens either for holding, or for use as currency or in distributed
ledger-based transactions.
Decentralized Network Users: A decentralized network user ("Decentralized
Network User") is a general term for any party that avails itself to a
distributed ledger, or any application, tool, or token using the
distributed ledger, or any application, tool, or token that administers,
maintains, or develops any application, tool, or token using the
distributed ledger.
All the above parties defined in this section 6(a)-(h), in their context as
users of the Subject Matter Code and Licensees under this COSLv1.0 and any
other parties who access the Subject Matter Code are collectively known as
"Decentralized Ecosystem Parties".
7. User Classes
The COSLv1.0 Licensor and the Decentralized Ecosystem Parties as set forth
in section 6 of this COSLv1.0 solely comprise the members of a community
("Community") around the Subject Matter Code. The COSLv1.0 Licensor is the
granting party of rights to the Subject Matter Code and the Decentralized
Ecosystem Parties are the receiving party of rights to the Subject Matter
Code. The Decentralized Ecosystem Parties all belong to one and only one
of the following two user classes ("User Classes"):
Proprietary User Class: The Proprietary User Class ("Proprietary User
Class") is a Decentralized Ecosystem Party that performs, or permits to
occur, any of the following acts or uses:
Co-opting the Development of the Decentralized Platform from the Community:
This form of use occurs when only one party, or a set of parties either via
explicit contract or via participation, substantially interferes, limits or
prevents other parties from materially participating in the decentralized
platform, in roles defined by a protocol of the decentralized platform,
and/or in roles that are required for the use and support of a protocol of
the decentralized platform. Examples of defined and/or required roles
include end users and their client software to participate in a centralized
platform, node operators both for validation and for forming consensus,
decentralized application developers, decentralized platform developers,
and other parties set forth in section 6 of this COSLv1.0.
Such co-opting may include closed forks where the Subject Matter Code is
forked either in full or in part, and where the other parties are
substantively limited from materially participating in the development or
use of the decentralized platform, including in roles set forth in section
7(a)(i) above. This may also include forks where a party is to create a
cryptocurrency, native token or other quanta of value from operations of
the forked decentralized platform without remuneration to the Community as
set forth in section 11 of this COSLv1.0.
Co-opting the Operation or Use of the Decentralized Platform: This form of
use occurs when a party, or a set of parties either via explicit contract
or via participation, substantially interferes, limits or prevents other
parties from materially operating nodes, using the decentralized platform,
or deploying and using DApps.
Interfering with the Economic Operation of the Decentralized Platform: This
form of use occurs when a party or parties seek to operate nodes, develop
DApps, or run DApps to drive or to result in changes in the price of an
underlying cryptocurrency of a distributed ledger, resulting in
interference of the economic operation of the distributed ledger.
Open Source User Class: The Open Source User Class ("Open Source User
Class") is any Decentralized Ecosystem Party that is not in a Proprietary
User Class.
8. Governance and Conversion
Governance under the COSLv1.0 is performed by COSLv1.0 Licensor in close
cooperation with the Community as set forth in this COSLv1.0. The
Community includes any Decentralized Ecosystem Party as set forth in
section 6 of this COSLv1.0. Specifically, the COSLv1.0 Licensor will
designate a public, transparent online forum ("Community Forum") associated
with the Subject Matter Code and will designate one or more moderators
("Community Forum Moderators") to monitor and moderate the Community Forum.
The Community Forum to receives requests and notifications from the
Community, including proposed feature additions, proposed code changes,
additions or deletions, and Community member status and user class. The
Community Forum may host online discussions about topics broadly related to
the Subject Matter Code. While acceptance or rejection of requests and
notifications are at the sole discretion of the COSLv1.0 Licensor,
acceptance will not be unreasonably withheld. Moderation policy of the
Community Forum is at the sole discretion of the COSLv1.0 Licensor.
Rights to the Subject Matter Code, including intellectual property rights
under this COSLv1.0 are subject to membership of the Open Source User
Class. Where a party of the Open Source User Class performs an act or use
as set forth in section 7(a) of this COSLv1.0, that party converts to the
Proprietary User Class ("Conversion"). Where a party contemplates
performing an act that might be construed as proprietary, that party may
demonstrate good faith by providing a sixty (60) calendar day advance
notice to the COSLv1.0 Licensor and the Community, by sending a notice via
the Community Forum describing the proposed activity, how that activity
benefits the Community, and how that activity may not benefit the
Community. If the COSLv1.0 Licensor accepts the activity in consultation
with the Community, that activity will not trigger Conversion.
Where a party is a member of the Proprietary User Class, that party may
seek to be re-characterized as a member of the Open Source User Class by
providing a notice via the Community Forum to the COSLv1.0 Licensor and the
Community. The notice is to specify the activities that party is ceasing
and/or activities to remediate prior acts that triggered Conversion. If
the COSLv1.0 Licensor in consultation with the Community accepts the
recharacterization, then that party will become a member of the Open Source
User Class.
The COSLv1.0 Licensor may opt to extend consideration of a
recharacterization by increments of sixty (60) calendar days at a
time. Neither the failure nor delay on the part of the COSLv1.0 Licensor to
respond to or act upon any requests and notifications from the member
parties of the Community under this section 8 shall operate as a waiver
thereof unless made in writing and signed by the COSLv1.0 Licensor.
9. Intellectual Property Rights
Subject to the terms and conditions of this COSLv1.0, each contributor
grants to all parties who are in the Open Source User Class a copyright
license under the terms of section 2 of the Apache 2.0 License. Absent a
separate agreement to the contrary, members of the Proprietary User Class,
do not have a copyright license. Where a member of the Proprietary User
Class converted from the Open Source User Class, that member retains no
prior copyright license. Where a party performs an act that triggers a
Conversion of the party to the Proprietary User Class, the copyright
license is revoked. A party whose copyright license is revoked exposes
that party to damages and other remedies for copyright infringement
including statutory damages and injunctive relief. For purposes of
injunctive relieve, the Licensee stipulates the availability of equitable
damages.
Subject to the terms and conditions of this COSLv1.0, each contributor
grants to all parties who are in the Open Source User Class a patent
license under the terms of section 2 of the Apache 2.0 License. Absent a
separate agreement to the contrary, members of the Proprietary User Class,
do not have a patent license. Where a member of the Proprietary User Class
converted from the Open Source User Class, that member retains no prior
patent license. Acceptance of this COSLv1.0 includes a stipulation of
knowledge that some portions of the Subject Matter code are subject to
patent coverage. Where a party performs an act that triggers a Conversion
of the party to the Proprietary User Class, the patent license is revoked.
A party whose patent license is revoked exposes that party to damages and
other remedies for patent infringement including enhanced damages and
injunctive relief. For purposes of injunctive relieve, the Licensee
stipulates the availability of equitable damages.
Subject to the terms and conditions of this COSLv1.0, the COSLv1.0 Licensor
grants to all parties who are in the Open Source User Class a perpetual,
irrevocable (except as provided in this COSLv1.0), non-transferrable,
sublicensable, royalty-free, fully paid, worldwide and non-exclusive right
and licensee to use any marks to name distributions of the Subject Matter
Code (under any operative nominative fair use law). Absent a separate
agreement to the contrary, members of the Proprietary User Class, do not
have trademark rights or trademark license. Where a member of the
Proprietary User Class converted from the Open Source User Class, that
member retains no prior trademark right or trademark license. No other
mark license is provided, including for marks relating to company name,
trade name, or other marks COSLv1.0 Licensor reserves the right to police
the quality and use of the licensed marks and to revoke license of those
marks at its sole discretion where those distributions of Subject Matter
Code are not compliant with this COSLv1.0 or FLOSS principles. License of
those marks shall not be unreasonably withheld. A party whose trademark
license is revoked exposes that party to damages and other remedies for
trademark infringement, unfair trade practices and injunctive relief. For
purposes of injunctive relieve, the Licensee stipulates the availability of
equitable damages.
10. Copyleft
Any recipient of any copy, fork, distribution or conveyance of the Novel
Code, in full or in part, receives a license from the original licensors to
run, modify and propagate the Novel Code, modified or unaltered, subject to
this COSLv1.0. Any copy, fork, distribution or conveyance is to be subject
to the COSLv1.0. Additional conditions, including payment and/or
compensation terms, representations and warrantees, may be added beyond
COSLv1.0 license terms provided they are consistent with COSLv1.0 and free
(libre) and open source principles, and do not prejudice the COSLv1.0
Licensor's use of Novel code. Contributors to the Novel Code are to be
fully indemnified by any party creating additional conditions.
11. Forks
Community friendly copies of all or part of the Subject Matter Code for
separate development from the original Subject Matter Code tree ("Forks")
are supported by this COSLv1.0, under the following conditions:
Propagation of COSLv1.0 Licensing Principles: Code in a Fork is to be
subject to and controlled by this COSLv1.0 or under a FLOSS compliant
relicensing under the terms of this COSLv1.0. Failure to do so constitutes
an act co-opting the development of the decentralized platform from the
Community, thereby triggering a Conversion of the forking party to a
Proprietary User Class subject to penalties set forth in this COSLv1.0
including but limited to section 9.
For-Profit Fork Airdrop: Where code in a Fork is to be used to deploy a new
independent blockchain with a cryptocurrency, native token or other native
quantum of value that party is to notify the COSLv1.0 Licensor with an
offer to compensate development efforts of the Community with an Airdrop of
cryptocurrency supported by a distributed ledger deployment from the Fork.
The COSLv1.0 Licensor in consultation with the Community, has sixty (60)
calendar days to accept or reject the offer.
Backpropagation of Changes: The COSLv1.0 Licensor in consultation with the
Community may select features and code from the Fork code for addition to
the Subject Matter Code at any time without penalty, fee, or other
remuneration.
12. Attribution and Marking
Reproduction and distribution of the Subject Matter Code, in full or in
part, original or modified, ("Subject Matter Code Distribution") is subject
to the following conditions:
Licensee shall provide all recipients of the Subject Matter Code
Distribution, a copy of this COSLv1.0;
Licensee shall cause any files modified from the Subject Matter Code
distributed in the Subject Matter Code Distribution to carry prominent
notices stating that Licensee has changed the files;
Licensee shall retain, in the Source form of any Subject Matter Code
Distribution that the Licensee distributes, all pertinent copyright,
patent, trademark, and attribution notices from the Source form Subject
Matter Code; and
If the Subject Matter Code includes a "NOTICE" text file as part of its
distribution, then any Subject Matter Code Distribution, that the Licensee
distributes must include a readable copy of the pertinent portions of the
attribution notices contained within such NOTICE file, in at least one of
the following places:
within a NOTICE text file in the distribution; within the Source form or
documentation, if provided along with the Subject Matter Code Distribution;
within a display generated by the Subject Matter Code Distribution, if and
wherever such third-party notices normally appear.
The contents of the NOTICE file are for informational purposes only and do
not modify the CasperLabs Open Source License, Version 1.0 (COSLv1.0).
Licensee of the Subject Matter Code may add their own attribution notices
within the Subject Matter Code Distribution, alongside or as an addendum to
the NOTICE text from the Subject Matter Code, provided that such additional
attribution notices cannot be construed as modifying the COSLv1.0.
Copyright under the COSLv1.0 is to be as follows:
Copyright [yyyy] [name of copyright owner (Subject Matter Code)]
Licensed under the CasperLabs Open Source License, Version 1.0 (COSLv1.0);
you may not use this file except in compliance with this COSLv1.0. You may
obtain a copy of this COSLv1.0 at
https://github.com/CasperLabs/CasperLabs/blob/master/LICENSE
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
COSLv1.0 for the specific language governing permissions and limitations
under the COSLv1.0.
Where Legacy Code is to be distributed, copyright under the Apache 2.0
License is to be as follows:
Copyright [yyyy] [name of copyright owner (Legacy Code)]
Licensed under the Apache License, Version 2.0 ("License"); you may not use
this file except in compliance with the License. You may obtain a copy of
the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
13. Disclaimer of Warranty
Unless required by applicable law or agreed to in writing, COSLv1.0
Licensor provides the Subject Matter Code and materials provided with the
Subject Matter Code (and each Contributor provides its Contributions) on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
or implied, including, without limitation, any warranties or conditions of
TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR
PURPOSE. You are solely responsible for determining the appropriateness of
using or redistributing the same and assume any risks associated with your
exercise of permissions under this COSLv1.0.
14. Miscellaneous
The following miscellaneous terms apply to this COSLv1.0:
Clickwrap: The terms of this COSLv1.0 may be accepted via clickwrap or
other analogous means.
Choice of Law: For purposes of conflicts of law, for contract
interpretation of this COSLv1.0, New York state law is to be used, and for
intellectual property law, of this COSLv1.0, United States Federal law is
to be used.
Venue: State venue is to be New York County, New York. Federal venue is to
be U.S. District Court, Southern District of New York.