文章
视频
课程
百科图谱
集训营
更多
问答
提问
发表文章
专栏
活动
文档
工作
集市
发现
Toggle navigation
文章
问答
视频
课程
集训营
专栏
活动
工作
文档
集市
搜索
登录/注册
Tiny熊
文章
专栏
问答
视频
课程
集市作品
活动
招聘
TA的视频
TA的合集
QA: 关于 transfer 函数的执行
视频 AI 总结: 该视频解答了关于以太坊智能合约中 `transfer` 函数转账的问题。核心内容是解释了 `transfer` 函数的运作机制,以及它与区块链上数据状态的关系。`transfer` 函数实际上是在链上执行的,它会修改合约地址和目标地址在区块链上的余额(balance)数据。 关键信息: * `transfer` 函数的转账操作会上链,修改区块链上的账户余额数据。 * 合约地址的余额和变量由合约代码控制,`transfer` 函数通过代码逻辑修改合约地址和目标地址的余额。 * `transfer` 函数修改的是合约地址下的 balance 数据到目标地址下。 * 所有节点都需要验证转账操作的有效性,但验证过程是异步的。 * EOA 地址转账需要私钥签名。
18
0
0
1天前
Solidity 变量及整型、地址类型等
视频 AI 总结: 1. **核心内容:** 本视频是 Solidity 编程语言的入门教程,重点讲解了 Solidity 中变量的声明和函数的使用,特别是与其它编程语言不同的特性,如地址类型、合约类型以及回调函数等。强调了在 Solidity 开发中,除了语言语法外,还需要掌握特定领域的知识。 2. **关键信息:** * Solidity 是一种静态编译型高级语言,专门为 EVM 设计。 * 变量分为值类型、引用类型和映射类型。 * 值类型包括布尔型(bool)、整型(int/uint)、地址类型(address)和枚举类型(enum)。 * 地址类型分为 address 和 address payable,payable 类型可以接收 ETH 转账。 * 合约本身也是一种类型,可以用来声明变量。 * 常量(constant)和不可变变量(immutable)在编译时确定值,不占用链上存储。 * 需要关注变量存储空间的大小,因为链上存储成本很高。 * 0.8 版本后的 Solidity 会对整型溢出进行处理,导致交易回滚。 * transfer 和 send 函数转账时,EVM 限制 gas 消耗为 2300。
34
0
0
1天前
Solidity 特殊函数:Receiver 与 Fallback 详解
视频 AI 总结: 该视频主要讲解了 Solidity 中特殊的函数,包括访问器函数、构造函数、receiver 函数和 fallback 函数。重点介绍了 receiver 和 fallback 函数的特性和使用场景,强调了它们是被动执行的回调函数,以及在合约接收以太币或找不到用户要调用的函数时被调用的机制。 关键信息: 1. **访问器函数**:public 状态变量会自动生成 get 函数。 2. **构造函数**:在合约初始化时运行一次,部署后不存在于链上。 3. **Receiver 函数**:在合约接收以太币时被调用,无法主动调用。 4. **Fallback 函数**:在 EVM 找不到用户要调用的函数时被调用,也可作为接收以太币的备选方案。 5. **转账与 Gas 限制**:使用 transfer 转账时,会限制 gas 消耗为 2300,可能导致 receiver 或 fallback 函数执行失败。 6. **合约调用流程**:根据是否有附加数据,EVM 会检查合约中是否存在对应的函数,否则调用 fallback 函数。 7. **tx.origin 与 msg.sender**:tx.origin 是整个交易的发起者,msg.sender 是直接调用合约的地址。
20
0
0
1天前
Solidity 引用类型详解:数组、结构体与映射
视频 AI 总结: 该视频主要讲解了 Solidity 中的引用类型,包括数组、字符串、结构体和映射,以及它们在内存、存储和调用数据中的使用方式和注意事项。重点强调了引用类型与值类型的区别,引用类型通过指针指向数据,避免了大数据拷贝的开销。视频还讨论了 gas 消耗问题,以及如何在智能合约中高效地使用数组和映射,避免潜在的攻击风险。 关键信息: * 引用类型包括数组、字符串、结构体和映射,占用空间大,拷贝开销大,使用指针指向数据。 * 引用类型需要指定存储位置,包括 memory(函数内部,执行完消失)、storage(链上存储,持久存在)和 calldata(只读)。 * 数组分为定长数组和变长数组,变长数组可以使用 push 和 pop 操作。 * 在链上使用循环遍历数组时,需要注意 gas 消耗,避免线性增加,防止攻击。 * 删除数组元素时,可以使用将最后一个元素移动到要删除的位置,然后删除最后一个元素的方法,以减少 gas 消耗。 * 字符串是一种特殊的数组类型,不能用下标获取字符。 * 结构体是自定义的复合类型,可以包含任意类型成员,可以通过顺序或具名方式创建实例。 * 映射是一种键值对存储结构,类似于数据库中的表,key 不能是数组类型,没有长度概念,无法获取 key 或 value 的集合。 * 结构体和映射经常一起使用,结构体可以理解为表的其他字段,key 相当于表的索引。 * 在定义引用类型的变量时,需要额外加一个标识,标识这个变量存储在哪里。
18
0
0
1天前
Solidity函数详解:可见性与状态可变性、函数调用方式
视频 AI 总结: 该视频主要讲解了Solidity中函数的定义、可见性、状态可变性以及函数调用方式。重点介绍了external可见性的特点,以及view、pure、payable等状态可变性修饰符的作用。同时,视频还对比了内部调用和外部调用的区别,以及外部调用时如何指定gas和value。 关键信息: * 函数定义使用`function`关键字,可以有参数列表。 * 可见性包括`external`(仅外部访问)、`public`、`private`、`internal`。 * 状态可变性修饰符包括`view`(不修改链状态)、`pure`(既不读取也不写入状态)、`payable`(允许接收ETH)。 * 外部调用可以使用`address(this).functionName{gas: , value: }()`,可以指定gas和value。 * 内部调用直接使用函数名,外部调用需要通过合约地址。 * 外部调用会启动新的EVM虚拟机环境,内部调用在同一EVM实例中运行。
18
0
0
1天前
QA 环节:Gas、数据存储与节点验证
视频 AI 总结: 该视频主要解答关于以太坊交易和数据存储的一些疑问,核心内容围绕交易的gas limit、数据存储方式以及节点验证机制展开。视频详细解释了交易失败时的扣费情况,以及合约数据在节点上的存储方式,强调了状态变量存储在所有节点硬盘上,而非EVM内存中。此外,视频还讨论了节点如何验证交易的正确性,以及代码长度与字节码大小的关系。 关键信息: * Gas limit 不足时,交易发起前通常会被用户钱包界面阻止,不会扣费。但若执行过程中 gas 不足,已消耗的 gas 费用会被扣除,交易回滚。 * 合约中的状态变量(如 counter)存储在所有节点的硬盘上,而非 EVM 内存中,形成状态树,根哈希存储在账户存储中。 * EVM 是动态的,每次交易调用合约时会启动一个 EVM 实例,执行完毕后终止。 * 节点通过重新执行交易,比对状态根哈希来验证交易的正确性,防止作恶。 * 代码越长,字节码通常越大,但编译器优化会有些影响。 * 节点存储了从第一个区块到当前高度的所有区块信息。
38
0
0
5天前
以太币单位、浏览器、不同的网络
视频 AI 总结: 该视频主要讲解了以太坊中的一些基本概念,包括以太币的单位(ETH、Gwei、Fin、Sub)以及如何在区块链浏览器(如 Etherscan)上查看交易信息。此外,视频还介绍了不同的以太坊网络,包括主网和测试网,以及如何在测试网上领取测试币。最后,视频还对 L2 做了总体总结。 关键信息: * 以太币的单位:ETH(最大单位)、Gwei、Fin、Sub(最小单位)。Gas price 以 Gwei 为单位设置。 * 区块链浏览器:用于查看交易信息,如 input data、from 地址、to 地址、gas 信息等。 * 以太坊网络:主网(有价值的网络)和测试网(如 Sepolia)。测试网可领取测试币。 * 智能合约:在链上运行的程序,编译成字节码后部署到网络上。在 EVM 上执行时根据指令扣费。 * EVM:通过植入虚拟机,扩展了网络的能力。 * Solidity:用于编写合约。
41
0
0
5天前
以太坊EVM、Gas机制与费用规则详解
视频 AI 总结: 该视频主要讲解了以太坊虚拟机(EVM)的工作原理、gas 机制以及以太坊费用规则的演变。EVM 作为智能合约的执行环境,具有封闭性,只能访问链上数据。为了防止无限循环和图灵停机问题,EVM 引入了 gas 机制,用于衡量和限制程序的执行工作量。以太坊的费用规则经历了从 gas price 到 EIP-1559 的升级,后者将费用分为基础费和优先费,旨在改善用户体验和降低通胀。 关键信息: * EVM 是智能合约的执行环境,类似于 JVM,但具有封闭性,无法直接访问外部数据。 * EVM 通过 gas 机制来衡量和限制程序的执行工作量,防止无限循环和图灵停机问题。 * gas 本身是工作量的单位,程序越复杂,消耗的 gas 就越多。 * 以太坊的费用规则经历了从 gas price 到 EIP-1559 的升级。 * EIP-1559 将费用分为基础费和优先费,基础费会被销毁,优先费会给矿工。 * EIP-1559 改善了用户体验,避免了用户因设置过高的 gas price 而支付不必要的费用。 * 用户支付的手续费是 gas limit 乘以 gas used,再乘以基础费和优先费之和。 * 矿工拿到的是优先费部分,燃烧掉的是基础费部分。 * 节点是运行以太坊客户端程序的机器,客户端程序实现了共识规范。 * 以太坊客户端有两个主要组成部分:执行层(EVM 实现)和共识层。
60
0
0
5天前
理解以太坊账户:EOA / 合约账户/钱包
视频 AI 总结: 该视频主要讲解了以太坊中账户的概念,包括外部账户(EOA)和合约账户,以及它们在交易中的作用。EOA 由私钥控制,用于发起交易和支付手续费,而合约账户由代码控制,被动执行。视频还介绍了 MetaMask 钱包的使用,以及交易如何在区块链上进行验证和执行。最后,视频概述了以太坊全局状态的组织方式,以及交易如何改变状态树。 关键信息: * 以太坊有两种账户:外部账户(EOA)和合约账户。 * EOA 由私钥控制,用于发起交易,需要钱包管理私钥。 * 合约账户由代码控制,被动执行,不能主动发起交易。 * 所有交易都需要 EOA 签名,并支付手续费。 * MetaMask 钱包是常用的以太坊开发工具,用于管理 EOA 和发起交易。 * 以太坊的全局状态由所有账户的状态组成,通过状态树进行组织。 * 交易会改变状态树,并生成新的区块。*
69
0
0
5天前
理解以太坊,运行第一个智能合约
视频 AI 总结: 该视频主要讲解了以太坊的核心概念,视频回顾了区块链的哈希结构和比特币的局限性,引出以太坊作为可执行程序的区块链平台的优势。重点介绍了以太坊的虚拟机(EVM)如何运行智能合约,以及从 POW 共识机制切换到 POS 质押机制的原因。最后,通过 Remix 在线 IDE 演示了智能合约的编写、编译、部署和执行过程。 关键信息: * 以太坊是一个可以执行程序的区块链网络,弥补了比特币的不足。 * 以太坊的核心是智能合约,它是在网络上运行的程序,可以实现去信任的应用。 * 以太坊使用 POS 共识机制,通过质押资金来保障网络安全,降低能源消耗。 * 以太坊虚拟机(EVM)是运行智能合约的环境,每个节点都内置一个 EVM。 * 智能合约的编写通常使用 Solidity 语言,需要编译成字节码才能在 EVM 上执行。 * Remix 是一个在线 IDE,可以用于编写、编译、部署和执行 Solidity 智能合约。
82
0
0
5天前
‹
1
2
3
4
5
6
7
8
...
29
30
›
Tiny熊
0xD682...E8AB
关注
贡献值: 22442
学分: 452664
登链社区发起人 通过区块链技术让世界变得更好而尽一份力。
2278 关注
1076 粉丝
×
发送私信
请将文档链接发给晓娜,我们会尽快安排上架,感谢您的推荐!
发给:
内容:
提醒
检测到你当前登录的账号还未绑定手机号
请绑定后再发布
去绑定
×
编辑封面图
封面预览
取消
确认