一个在以太坊上建立安全智能合约的框架,目前集成与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库详解相关推荐

  1. 爬虫入门之urllib库详解(二)

    爬虫入门之urllib库详解(二) 1 urllib模块 urllib模块是一个运用于URL的包 urllib.request用于访问和读取URLS urllib.error包括了所有urllib.r ...

  2. 区块链用哪种语言 Java_区块链开发用什么语言呢?区块链与编程语言的关系详解...

    原标题:区块链开发用什么语言呢?区块链与编程语言的关系详解 区块链的概念就随着比特币的大热开始逐渐进入公众视野,比特币的拥有者为了使其创造更高的财富,开始疯狂炒作,因而引发购买比特币大浪潮.然而等到比 ...

  3. 兄弟连区块链入门教程分享区块链POW证明代码实现demo

    区块链入门教程分享区块链POW证明代码实现demo 这里强调一下区块链的协议分层 应用层 合约层 激励机制 共识层 网络层 数据层 上 一篇主要实现了区块链的 数据层,数据层主要使用的技术 ...

  4. 【三分钟讲清区块链/比特币】之一:区块链入门教程

    区块链(blockchain)是眼下的大热门,新闻媒体大量报道,宣称它将创造未来.可是,简单易懂的入门文章却很少.区块链到底是什么,有何特别之处,很少有解释. 下面,我就来尝试,写一篇最好懂的区块链教 ...

  5. 区块链入门教程(5)--搭建分组组网联盟链

    文章目录 1. 任务背景 2. 任务目标 3. 相关知识点 4. 任务实操 4.1 建立目录 4.2 下载脚本 4.3. 编辑配置文件 4.4. 安装节点 4.5 启动 5. 总结 1. 任务背景 有 ...

  6. 区块链入门教程(4)--搭建单机四节点FISCO BCOS联盟链

    文章目录 1. 任务背景 2. 任务目标 3. 相关知识点 4. 任务实操 4.1 切换root用户 4.2 安装依赖 4.3 创建目录,下载安装脚本 4.4 搭建单群组4节点联盟链 4.5 启动FI ...

  7. 区块链入门教程(8)--WeBASE-Front节点前置服务

    文章目录 1. 任务背景 2. 任务目标 3. 相关知识点 4. 任务实操 4.1 安装配置JDK 4.2 启动FISCO BCOS 4.3 下载解压WeBASE-Front 4.4 拷贝sdk证书文 ...

  8. 区块链入门教程(6)--配置使用控制台

    文章目录 1. 任务背景 2. 任务目标 3. 相关知识点 4. 任务实操 4.1 安装配置JDK 4.2 下载控制台程序 4.3 拷贝配置程序 4.4 配置控制台证书 4.5 启动FISCO BCO ...

  9. 兄弟连区块链入门教程btcpool矿池源码分析环境搭建

    btcpool矿池-测试环境搭建及使用cgminer测试 本文档基于Ubuntu 16.04 LTS, 64 Bits. 安装Bitcoind+ZMQ Dependencies apt-get -y ...

  10. 区块链系列教程——geth命令详解

    本文是区块链系列的第二篇,上一篇区块链系列教程--创建属于自己的区块链大概介绍了区块链的基本内容,并且使用geth客户端创建了私链,给了各位读者较为直观的感受.本文简单介绍geth命令,这对后面的教程 ...

最新文章

  1. JAVA就业指导(转)
  2. 酱油和gbt酱油哪个好_酱油不是越贵越好!找到这3个关键词,轻松避开勾兑酱油...
  3. 5款让Web前端开发人员更轻松的实用工具
  4. 谷歌大一统?Fuchsia OS已可提供完整的Chrome浏览器体验
  5. excel同一单元格怎么换行_Excel工作表中最经典的10个应用,小技巧,大作用
  6. python编程与下位机通讯_ros 与下位机通信
  7. twitter批量取消关注_如何在Twitter上取消阻止“潜在敏感内容”
  8. linux嵌入式平台测试,protobuf-c 在arm linux 嵌入式平台的使用 测试
  9. Linux安装Oracle,卡在60%处的解决方法
  10. windows下的vimrc
  11. 阶段3 1.Mybatis_11.Mybatis的缓存_5 缓存的概念
  12. windows XP小技巧
  13. 自动刷新网页脚本_抢不到票?你离idol只差一个大麦抢票脚本。
  14. 3、Go语言核心编程(高级篇)
  15. 计算机打不开菜鸟打印组件,菜鸟打印常见问题
  16. intellij idea 修改字体 修改主题
  17. 庞加莱猜想的证明过程
  18. 计算机网络第七版--概述知识点总结
  19. USB composite 设计
  20. 晚还款没事,各行信用卡容时容差服务大汇总!

热门文章

  1. build.gradle文件介绍
  2. 和别人老公上床后的感觉~
  3. 正太分布几个简单证明
  4. 【OpenGL】glFinish()和glFlush()函数详解
  5. python热图怎么截取对角线的一半_python-控制seaborn热图中的单个线宽
  6. 证明n次根号下n阶乘等价于n/e
  7. visual studio调试教程
  8. Dockerfile自动创建镜像
  9. 【286页干货】一天搞懂深度学习(台湾资料科学年会课程)李宏毅
  10. caffe 实践程序3——caffe提取特征以及由模型test数据