第四课主要介绍payable函数相关。

chapter1: payable修饰函数

  以太坊允许同时调用函数和eth转账。msg.value显示发送到合约的以太币数,ether是内置整型数。如果函数没有payable,将不能接受前端调用时附加的eth。

chapter2:transfer

  transfer函数可以发送eth,this.balance是当前账户所有资产。格式:

address.transfer(value);

  address是目的地址,value是发送的eth数。

  当你发送eth到合约账户中时,eth是一直存储在合约账户里的,直到你通过一个函数把它取走,实例如下:

contract GetPaid is Ownable {function withdraw() external onlyOwner {owner.transfer(this.balance);}
}

chapter3:zombieBattles

  就是利用payable新建一个功能函数

chapter4:随机数

  solidity里,用keccak256生成随机数,生成随机数的参数只能用一次,其实是一种伪随机。这样易被不诚实节点攻击。

  因为solidity采用pow共识机制,大量挖矿竞争者需要竞争解决一个数学问题,优先解决者将工作量证明和事务共同发布。此时该挖矿者可以在自己节点无限生成随机数直到达到满意结果后再发布。

  这个问题解决比较复杂,可以参考https://ethereum.stackexchange.com/questions/191/how-can-i-securely-generate-a-random-number-in-my-smart-contract的回答。有一种思路是利用oracles访问外部函数生成随机数。

  当然,这种攻击需要耗费大量资源,所以像我们做的这种小游戏可以直接用random函数来生成随机数,没有谁那么闲来攻击一个效益极差的节点。

chapter5:Zombie Fighting

  一个新功能

chapter6,7:重构通用逻辑

  把代码里使用了好多次的require打包成了一个modifier。

chapter8:完善attack函数

chapter9之后:新增一些函数参数,和一些完善

  

  

  

转载于:https://www.cnblogs.com/txltxl22/p/9665108.html

CryptoZombies学习笔记——Lesson4相关推荐

  1. 吴恩达深度学习笔记- lesson4 卷积神经网络

    文章目录 Week 1 卷积神经网络基础 4.1.1 计算机视觉(Computer vision) 4.1.2 边缘检测示例(Edge detection example) 4.1.3 更多边缘检测内 ...

  2. VC++深入详解学习笔记

    VC++深入详解学习笔记 Lesson1: Windows程序运行原理及程序编写流程 Lesson2: 掌握C++基本语法 Lesson3: MFC框架程序剖析 Lesson4: 简单绘图 Lesso ...

  3. Android 开发学习笔记

    Android 开发学习笔记 Lesson1 (2.28) android之父: Andy Rubin(安迪 鲁宾) Lesson2 (3.3) android 的优点: 开放.网络接入自由.丰富的硬 ...

  4. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

  5. 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  6. 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  7. 2020年Yann Lecun深度学习笔记(下)

    2020年Yann Lecun深度学习笔记(下)

  8. 2020年Yann Lecun深度学习笔记(上)

    2020年Yann Lecun深度学习笔记(上)

  9. 知识图谱学习笔记(1)

    知识图谱学习笔记第一部分,包含RDF介绍,以及Jena RDF API使用 知识图谱的基石:RDF RDF(Resource Description Framework),即资源描述框架,其本质是一个 ...

最新文章

  1. “中台不就是微服务吗?有啥区别?”
  2. 射频宽带低噪放大器测试
  3. mysql 修改配置生效_MySQL修改my.cnf配置不生效的解决方法
  4. 梯度下降优化方法'原理_优化梯度下降的新方法
  5. java模拟记事本的一些功能
  6. 手把手系列—风控模型的调参方法和实际应用
  7. 霍夫直线检测python_python+opencv实现霍夫变换检测直线的方法
  8. 开虚拟机服务器cpu百分之百应该管,为何我在虚拟机里开游戏CPU使用率90--100
  9. 李春葆《数据结构教程》课后习题和实验代码
  10. ftp服务器挂载到手机文件夹,ftp服务器挂载到本地
  11. CNN模型压缩——使用网络稀疏化方法(Learning Effcient Convolutional Network through Network Sliming)
  12. python面向对象实验一之烤地瓜
  13. 读书笔记:聪明人用方格纸
  14. ABAQUS中inp文件的使用和书写
  15. 计算机组装前需要的准备工作,手把手教你攒电脑:组装电脑全过程
  16. 记录 torch.optim.LBFGS
  17. 安卓逆向——dy急速版设备抓包分析
  18. 如何找到一个网站的icon
  19. 《超级实习生学员访谈录》—前路浩浩荡荡,万物皆可期待
  20. 人工智能技术在专利中的实际应用

热门文章

  1. OpenCV SIFT检测关键点
  2. Java 第一个Java程序
  3. tensorflow2.X安装及使用
  4. 正则学习小结(1)-基础
  5. 2017 《Java技术预备作业》
  6. javascript学习1---用dom对象动态控制表格
  7. 第一章 打开MVC4的大门:(一)了解MVC
  8. .net序列化与反序列化通用方法
  9. ZOJ 1743 Concert Hall Scheduling(DP)
  10. vue ...mapMutations 的第一个参数默认为 数据对象state