Solidity SPDX是什么

Solidity ^0.6.8 以上版本引入了 SPDX 许可证,如果源码中未包含 SPDX 许可证说明,编译时会出现警告:

Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing "SPDX-License-Identifier: <SPDX-License>" to each source file. Use "SPDX-License-Identifier: UNLICENSED" for non-open-source code. Please see https://spdx.org for more information. 

一般是在.sol文件第一句加上:

// SPDX-License-Identifier: MIT

不过这行到底是做什么的呢?SPDX-License-Identifier 是用来声明版权的注释。

SPDX

SPDX 是一个组织名,官方网站为:SPDX 许可证列表 |软件包数据交换 (SPDX)

SPDX-License-Identifier 组合起来就是在指SPDX的许可证列表。

后面的格式为 : SPDX的许可证列表中的某个许可证,比如:MIT、SimPL-3.0 等。

MIT

全名 标识符 自由软件基金会免费/自由? OSI 已批准?
MIT License 麻省理工学院许可证 MIT Y Y
  • 自由软件基金会:一个致力于推广自由软件、促进计算机用户自由的美国民间非盈利性组织。
  • OSI(开放原始码促进会):又译作开放原始码组织,是一个致力于推动开源软体发展的非盈利组织。于1988年2月, Bruce Perens和 Eric S. Raymond等人,受到网景公司发布其旗舰产品原始码的启发,创立此组织。注意不要将其与开放软体基金会混淆。

MIT的具体内容

特此免费授予获得(“软件”)副本的任何人不受限制地处理本软件的许可,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售本软件副本的权利

上述版权声明和本许可声明应包含在本软件的所有副本或大部分内容中。

本软件按“原样”提供,不附带任何明示或暗示的担保,包括但不限于适销性、特定用途的适用性和不侵权的担保。在任何情况下,对于因本软件或本软件的使用或其他交易而引起、引起或与之相关的任何索赔、损害赔偿或其他责任,无论是在合同诉讼、侵权行为还是其他方面,均不承担任何责任。

总结

SPDX-License-Identifier 就是在指明智能合约采用什么样的对外开放标准,该标准规定了别人是否拥有商业开发,学习使用等权利。

MIT 规定了任何人都可以随便用该代码,但出了问题不负责。

下一章:Solidity 数据类型

在用任何语言编写程序时,都需要使用变量来存储各种信息。变量是内存空间的名称,变量有不同类型,例如整型、字符串类型等等。操作系统根据变量的数据类型分配内存。Solidity中,变量类型有以下几大类:值类型地址类型引 ...