首页
学习
活动
专区
工具
TVP
发布

深入浅出区块链技术

专栏成员
487
文章
629016
阅读量
113
订阅数
逆向 EVM - 解析原始Calldata数据
你可能想知道如何破译和读取 evm 的 calldata,然后试图读取以太坊智能合约的交易 calldata,EVM(和其他 L1 分叉)以特定的方式对静态和动态类型的 calldata 进行编码和解码,在某种程度上让数据变得很困惑,起码最初是这样的。
Tiny熊
2023-01-09
1.4K0
解构 Solidity 合约 #4: 函数体
这是解构系列另一篇。如果你没有读过前面的文章[4],请先看一下。我们正在解构一个简单的Solidity 合约[5]的EVM 字节码[6]。
Tiny熊
2023-01-09
8010
解构 Solidity 合约 #3:函数包装器
号外,今天我们的登链社区网站做了一点小更新, 作者们可以关联自己的社交账号,关联后,在文章右侧的作者区域就可以看到点亮的小图标,让更多的小伙伴通过内容交朋友,也欢迎大家关注登链社区的账号。
Tiny熊
2023-01-09
6340
解构 Solidity 合约 #2 - 函数选择器
这是解构系列另一篇。如果你没有读过前面的文章[4],请先看一下。我们正在解构一个简单的Solidity 合约[5]的EVM 字节码[6]。
Tiny熊
2023-01-09
5160
深入理解EVM操作码,让你写出更好的智能合约
你的一些编程“好习惯”反而会让你写出低效的智能合约。对于普通编程语言而言,计算机做运算和改变程序的状态顶多只是费点电或者费点时间,但对于 EVM 兼容类的编程语言(例如 Solidity 和 Vyper),执行这些操作都是费钱 的!这些花费的形式是区块链的原生货币(如以太坊的 ETH,Avalanche 的 AVAX 等等...),想象成你是在用原生货币购买计算资源。
Tiny熊
2023-01-09
1.3K0
通过调试理解EVM(#4):结束/中止执行的5种指令
在 EVM 中,总共有 5 种方式来结束智能合约的执行。我们将在这篇文章中详细研究它们。让我们现在就开始吧!
Tiny熊
2023-01-09
8710
如何调试EVM智能合约(第1篇): 理解汇编
你可能已经知道,当一个智能合约在区块链中没有被验证时,你无法读取它的实体代码,只有字节代码被显示。
Tiny熊
2022-11-07
1.1K0
5.MOVE从入门到实战-发布新模块
我们还可以使用以下命令检查存储中已编译的字节码:move sandbox view
Tiny熊
2022-11-07
3270
EVM 学习手册
一组博客文章,深入 EVM 的特定部分,让你从 solidity 代码到 EVM 的操作代码。
Tiny熊
2022-11-07
5990
智能合约开发语言 — Move 与 Rust 的对比(#1)
翻译一篇 Move 与 Solana 上智能合约开发对比的文章, 原文[2] 非常长, 我计划很为两个部分,这篇包含前 4 节, 以下是原文翻译。
Tiny熊
2022-11-07
1K0
Sudoswap是如何节省gas的
sudoswap 的一大特色就是非常节省 gas,在它的 twitter 上也和 seaport 消耗的 gas 进行了对比,所以这里就想学习下 sudoswap 是如何节省 gas 的。
Tiny熊
2022-11-07
3930
如何使用以太坊的 CREATE2 操作码
2019 年 2 月底,操作码create2被添加到以太坊虚拟机。这段操作码引入了第二种计算新智能合约地址的方法(以前只有CREATE可用)。使用CREATE2当然比最初的CREATE更复杂。不再仅仅写new Token()就行了,而必须要编写汇编代码。
Tiny熊
2022-11-07
8330
用Vyper实现智能合约 - 一种 Python 方法
很多学习智能合约的程序员都会学 Solidity 语言,网上有大量关于 Solidity 的在线教程和书籍。而 Solidity 与 Truffle 框架的结合,简直就是开发智能合约的杀手级组合。几乎以太坊区块链上所有的的智能合约都是用 Solidity 编写的。
Tiny熊
2022-05-25
9530
以太坊合约 ABI 和 EVM 字节码
本文解释以太坊中的合约 ABI[2] 和 EVM[3] 字节码。由于以太坊使用 EVM(Ethereum Virtual Machine - 以太坊虚拟机)作为系统的核心,因此用高级语言编写的智能合约代码需要编译成 EVM 字节码和合约 ABI 才能运行。在与智能合约交互时,有必要先了解它们。
Tiny熊
2022-05-25
1.4K0
搞定EVM中的内存数据区,学他!
在第一部分[2],我们分析了 remix 的第一个合约示例 1_Storage.sol。
Tiny熊
2022-04-08
9450
最详细的解释EVM的函数选择原理
在我们开始前,这篇文章假定读者具备 solidity 的基础知识,以及了解它是如何部署在以太坊网络的。本文将简要地讨论这部分知识,如果你想对这些知识进行系统复习,请看这篇文章[2]众所周知,solidity 代码在部署到以太坊网络之前需要被编译成字节码。这个字节码对应的是 evm 所解析的一系列操作码指令。本系列文章主要分析编译后的字节码特定部分,并阐明它们的工作原理。在阅读完每篇文章后,你应该对每个组件的功能有一个更清晰的了解。在这一过程中,你会学到很多与 evm 相关的基础概念。我们先来看一个基本的 solidity 合约,以及它部分字节码/操作码,以展示 evm 是如何选择函数的。由 solidity 合约创建的运行态(runtime)字节码是整个合约的内容总结(reoresentation)。在合约中,你可能写有多个函数,一旦部署在链上,就可以被调用。学习 evm 和合约的一个常见问题是,EVM 是如何知道根据合同的哪个函数被调用来执行哪一块字节码?这个问题是我们用来帮助理解 evm 的底层机制以及如何处理这种特殊情况的第一个问题。
Tiny熊
2022-04-08
6420
如何缩减合约以规避合约大小限制
在2016 年 11 月 22 日[5],Spurious Dragon 硬分叉引入了EIP-170[6],增加了智能合约的大小限制为 24.576kb。对于作为 Solidity 开发者的你来说,这意味着当你向你的合约添加越来越多的功能时,在某些时候你会达到限制,当部署时你会看到错误:
Tiny熊
2021-08-06
2.1K0
EIP-1167: 代理合约
前段时间接到一个面试电话,问道delegateCall和代理合约的知识。当时对代理合约的了解不是很深入,就错失了一个很好的工作机会。加上今天在做 Paradigm 的题时,也发现题目中涉及到代理合约这块的知识,所以索性专门写一篇文章,将最近我对于代理合约的理解记录一下,希望能得到经验丰富的大佬的指证。
Tiny熊
2021-07-14
2.6K0
Solidity 0.8.5 发布
Solidity v0.8.5[4]允许从bytes转换为bytesNN值,增加了verbatim内置函数以在 Yul 中注入任意字节码,并修复了几个较小的错误。
Tiny熊
2021-07-14
4450
【译】Solidity 0.6.x更新:继承
与面向对象编程类似,Solidity是一种面向合约的语言,广泛使用继承和多态,并且对于语言的发展至关重要。Solidity开发人员如果不使用这些特性很难分离逻辑及增加代码重用性。
Tiny熊
2020-07-04
2.7K0
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档