区块链入门教程openzeppelin库详解

Posted 软件工程小施同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链入门教程openzeppelin库详解相关的知识,希望对你有一定的参考价值。

一个在以太坊上建立安全智能合约的框架,目前集成与Truffle和Embark

·  安装步骤(ubuntu)

  1. 新建一个自己的合约目录,进入合约目录
  2. Truffle init
  3. npm init -y 该步生成一个package.json,内置一些配置信息
  4. npm install -E openzeppelin-solidity
  5. 导入:import ‘openzeppelin-solidity/contracts/ownership/Ownable.sol’;

·  模块

  1. access:地址白名单和基于签名的权限管理
  2. crowdsale: 用于管理令牌众筹的一系列智能合约,允许投资者购买eth代币
  3. examples:一组简单的智能合约,演示如何通过多重继承向基础合约添加新功能
  4. introspection:对ERC165的简单实现,ERC165用于创建标准方法以发布和检测智能合约实现的接口。
  5. lifecycle:一个用于管理合约及其资金的生命周期和行为的基础合约集合
  6. math:对发生错误的操作进行安全检查的库。
  7. mocks:主要用于单元测试的抽象合约集合。
  8. ownership:一个用于管理合约以及TOKEN所有权的集合
  9. payment:可以通过托管安排、取款、索赔管理支付相关的智能合约集合,支持单个收款人和多个收款人
  10. proposals:对eip-1046的实现,EIP-1046对ERC20做了简单的扩展
  11. token:一组ERC标准接口 主要是ERC20和ERC721

·  详解

  1. Access
  2. Crowdsale
  3. Examples
  4. Introspection
    1. ERC165:创建和发布一个标准方法、用于检测智能合约实现的接口
    2. 源码地址:github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md
    3. ERC165可以标准化以下内容
      1. 如何识别接口
      2. 智能合约如何发布其实现的接口
      3. 如何检测智能合约是否实现了ERC165
      4. 如何检测智能合约是否实现了一个给定的接口
    4. SupportsInterfaceWithLookup:查找支持的接口
  5. Lifecycle
    1. Destructible:销毁合约
    2. Pausable:可暂停
    3. TokenDestructible:销毁token
  6. Math
    1. Math:简单的数学操作
    2. SafeMath:带有安全检查的数学运算
  7. Mocks
  8. Ownership
    1. Rbac
      1. RBAC:Role-Based Access Control 角色控制
      2. Roles:角色操作
    2. CanReclaimToken:可回收TOKEN
    3. Claimable:ownerable合约扩展,可用于转移合约所有权
    4. Ownable:所有权操作
    5. Contactable:设置合约信息
    6. DelayedClaimable:Claimable合约扩展、限制pendingOwner只能在两个指定的区块编号之间完成所有权转移
    7. HasNoContracts:合约所有者可收回合约的所有权
    8. HasNoEther:合约锁定、阻止以太币转入、防止意外丢失
    9. HasNoTokens:TOKEN回收
    10. Superuser:超级用户:就算不是owner也可转移合约所有权
    11. Heritable:可继承合约
  9. Payment
    1. ConditionalEscrow:收款人取出资金的条件
    2. Escrow:托管、余额的存取
    3. PullPayment:存款的查询与取款、支持异步交易
    4. RefundEscrow:可退款托管
    5. SplitPayment:支持多个收款人按照自己所占权重/比例来提取资金
  10. Proposals
    1. ERC721标准为不可替换的令牌引入了“tokenURI”参数来处理元数据,例如:缩略图、标题、描述、性能等等。这对于加密收藏品和游戏资产尤其重要。
    2. TokenMetadata:TOKEN元数据(TokenURI设置与获取)

以上是关于区块链入门教程openzeppelin库详解的主要内容,如果未能解决你的问题,请参考以下文章

区块链项目实战 - 使用以太坊/智能合约solidity,全栈开发区块链借贷记账小应用,含完整源码

区块链项目实战 - 使用以太坊/智能合约solidity,全栈开发区块链借贷记账小应用,含完整源码

区块链入门到实战(13)之区块链 – 付款确认

区块链技术区块链入门详解①

Openzeppelin可升级模板库合约初始化详解

Openzeppelin可升级模板库合约初始化详解