主页 > imtoken安卓版 > 区块链学习笔记——以太坊Part2(智能合约)

区块链学习笔记——以太坊Part2(智能合约)

imtoken安卓版 2023-12-12 05:08:04

本文内容是对北京大学肖震教授主讲的《区块链技术与应用》公开课的总结。 文中图片取自肖老师公开课视频。

目录

智能合约

什么是智能合约:

在这里插入图片描述

代码示例:

在这里插入图片描述

外部账户如何调用智能合约

在这里插入图片描述

智能合约的创建和运行

在这里插入图片描述

煤气费

在这里插入图片描述

汽油费可以避免死循环。 在全节点执行智能合约之前以太坊合约地址计算java,会从当前本地数据中扣除发起交易的节点的GasLimit。 GasLimit用完会回滚,消耗的gas费不会返还,防止恶意节点攻击。 交易发布后即生效,形成全网共识。 执行错误的智能合约也会被公布,以扣除他的汽油费。

在以太坊中,交易是原子的。 交易要么完全执行,要么根本不执行以太坊合约地址计算java,而不仅仅是其中的一部分。

错误处理

在这里插入图片描述

对于全节点,先执行区块内的所有交易,计算三棵树的根哈希值,然后挖矿并尝试nonce。

一个合约调用另一个合约中的函数方式一:直接调用

在这里插入图片描述

以太坊规定交易只能由外部账户发起,合约账户不能主动发起交易。 如果A合约出现异常,调用A的B合约也会出错回滚。

方法二:地址类型的call()函数

在这里插入图片描述

如果被调用的合约产生异常,调用函数返回false,调用失败,但调用函数不会抛出异常。

方式三:代理调用

在这里插入图片描述

在这里插入图片描述

智能合约可用的信息

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述