以太坊机制详解:Gas Price计算

概述 在以太坊London升级后,以太坊启用了EIP1559进行gas计算。由于EIP1559引入的新的gas机制较为复杂,所以我写了此文介绍了以太坊的gas机制。 ...

August 24, 2022 · 13 min · 6253 words · WongSSH

EVM底层探索:字节码级分析最小化代理标准EIP1167

概述 本文主要介绍最小化代理合约EIP1167的相关内容。为了实现最小化,EIP1167使用了bytecode(字节码)作为主要编码方式,即直接使EVM汇编指令进行编写。本文将在openzeppelin提供的合约基础上,为读者逐个字节码的解析EIP1167,帮助读者理解EVM底层汇编和EIP1167的实现原理。 ...

August 22, 2022 · 13 min · 6238 words · WongSSH

EIP712的扩展使用

概述 本文在上一篇文章介绍的EIP712的基础上进一步讨论了EIP712结构化哈希的进一步应用: Meta-transactions,解决用户gas费用问题 ERC20-Permit Meta-transactions meta-transactions指在交易中包含另一个实际交易。具体流程为用户签署实际交易,将交易提交给区块链运营商,此过程不需要gas费用和与区块链交互。运营商收到用户提交的交易后,由运营商较此交易提交给区块链。此过程实现了的意义在于将用户与区块链交易的gas费转移到运营商身上,有效降低了用户使用区块链的门槛。当然,运营商可以直接与矿池合作降低交易费用。 ...

August 16, 2022 · 17 min · 8221 words · WongSSH

基于链下链上双视角深入解析以太坊签名与验证

概述 本文主要介绍在以太坊中的签名问题,主要涵盖以下内容: ECDSA公钥密码学的数学原理与代码实现解析 以太坊客户端对交易信息签名的基本流程与源代码分析 智能合约内签名的验证 ECDSA公钥密码学 为了方便读者理解和实战本文中的内容,本文将结合一个可以使用Typescript编写用于生产环境的noble-secp256k1库作为实战案例解析。你可以在这里找到源代码。当然,为了节省篇幅,本文不会对此库中的所有代码进行解析。 ...

August 8, 2022 · 19 min · 9519 words · WongSSH

Foundry教程:使用多种方式编写可升级的智能合约(下)

概述 正如我们在上篇博客结尾时所述,本文主要依靠openzeppelin库介绍代理合约的编写。 本文主要介绍的代理类型如下: EIP-1967 EIP-2535 由于本文依赖于Openzeppelin/openzeppelin-contracts进行介绍EIP标准,所以请读者使用以下命令在项目内安装对应的库: ...

July 30, 2022 · 39 min · 19348 words · WongSSH

Foundry教程:使用多种方式编写可升级的智能合约(上)

概述 在以太坊智能合约中,很长时间都保持着“一次部署,永不修改”的情况。但随着智能合约的逐渐发展,出现了诸如修复BUG、增加特性、修复漏洞等需要修改智能合约的需求,我们非常希望可以编写可升级的智能合约。 ...

July 26, 2022 · 31 min · 15087 words · WongSSH

Foundry教程:编写测试部署ERC-20代币智能合约

概述 本博客的内容主要分为以下四部分: 一是Foundry的介绍与安装,主要介绍为什么选择Foundry进行智能合约开发和安装过程中的各种官方文档中未提及的问题; ...

July 14, 2022 · 23 min · 11470 words · WongSSH

Python2Go:将Python豆瓣爬虫使用Go重构

概述 本篇文章主要适用于Python爬虫程序员使用Go注释(Golang,在下文中主要使用goalng名词。)编写爬虫,由于目前我个人水平有限,所以此篇文章主要介绍一些简单的爬虫编写,主要包括使用requests、bs4等库的初级Python爬虫的改写,暂时不涉及多线程、异步、反爬、登录等复杂情况。 ...

July 5, 2022 · 12 min · 5730 words · WongSSH

在Cloudflare中自动化部署hexo博客

概述 CloudFlare Pages是一个免费且使用简单的CI/CD工具,可用来编译并部署大部分知名前端框架。如果您查阅cloudflare Pages的文档会发现其支持hexo框架的编译和发布。但如果您直接进入cloudflare pages dashboard进行设置时,你会发现在Build settings中的Framework preset并没有给出hexo框架的选项,如下图。 ...

June 27, 2022 · 2 min · 747 words · WongSSH

MetaMask一键登录设计

概述 在目前的网站用户体系搭建中,社会化登录主要依赖于Google、QQ等服务商,中心化趋势较强。在Web3中,作为网站建设者的我们应该考虑使用去中心化的登录方式。在此篇博客中,我们将以使用MetaMask钱包中的API为例介绍去中心化登录的基本方式。 ...

June 6, 2022 · 12 min · 5967 words · WongSSH