自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 Cairo 1 实战入门:可升级合约与跨链信息发送

为了保持文章的统一性,我准备在此文中介绍 cairo 的可升级合约编程。此处我没有使用代理合约一词,因为 cairo 1 的可升级配置不需要代理模式。实现起来相当简单,所以为了保持文章的长度,我在代理合约基础上增加了跨链信息发送这一主题。

2023-04-22 22:47:00 858 1

原创 Cairo 1 实战入门:编写测试部署ERC-20代币智能合约

Cairo 是 ZK Rollup 的领域专用语言,目前仅用于StarkNet项目。随着 Rollup 叙事的发展,我们认为 cairo 在未来一定会成为智能合约开发的核心语言。本文介绍了使用 cairo 1 进行编程、测试和部署的全流程。由于缺乏易用工具,本文放弃了本地测试网部署。

2023-04-17 21:17:36 1410

原创 Ubuntu Python 多版本安装

由于 Python 3 有几次较为跳跃的更新,导致大量使用 Python 3 作为开发工具的软件会对 Python 3 的版本进行严格限制,如限制使用 Python 3.8 - Python 3.9 版本。这要求开发者开发环境内应具有多版本的 python。在 Ubuntu 等 Linux 系统下,Python 的安装都是使用的源码编译方法,这对一些 Python 开发者并不友好,本文会给出一种较为简单的多版本 Python 安装方法。

2023-04-15 10:46:19 2730

原创 Huff实战:编写测试极致效率数学模块

Huff是 EVM 专用语言,与 Solidity 不同,Huff 是面向底层的语言,可以类比与汇编语言。这意味着开发者可以直接操作栈、内存和存储等内容,但另一方面,这些底层操作往往没有安全保证,这需要开发者更加仔细的审计和测试代码。本文主要介绍了如何使用 huff 实现一些高效率的数学操作

2023-03-25 21:13:46 1620

翻译 使用 Pandas 分析亿行数据

本文从最开始的内存不足而无法进行数据处理任务开始,到最终在合理的时间和内存占用要求下解决任务。我们所有的代码都是使用 Python 完成,在所有解决方案中,我们的代码都是较短且不复杂的。我们也看到在某些情况下,我们可以通过修改代码中微小部分带来巨大的效率提升(比如使用 PyArrow 而不是c驱动的read_csv函数)。在其他情况下,我们可能大幅度修改了代码,但这些修改也没有触及根本逻辑,且带来了性能提升。有很多方法可以使我们的代码运行速度更快且内存占用更少,此处展示的方案仅占其中的一小部分。

2023-03-08 18:35:52 827

原创 一个简单的Sublime设置

本文给出了一个简单的 Sublime 配置,尤其改进了字体系统。

2023-03-05 00:22:41 2174 1

原创 Clickhouse 以太坊分析:交易日志分析

在上一篇中,我们介绍了如何使用Clickhouse进行基础的信息提取,这些信息往往依赖于以太坊底层机制,我们只能获得如 ETH 转账、 gas 等信息,这些信息并没有涵盖以太坊中最重要的智能合约的相关数据。这使我们无法获得 ERC-20 代币转账或 NFT 转移等数据。对于很多数据分析师而言,了解智能合约相关数据更加重要。本文主要介绍如何获得关于智能合约的相关数据,以进一步完善数据分析。本篇仍主要聚焦于数据清洗,但仍会给出部分数据分析案例以帮助读者理解。

2023-02-08 22:51:20 1189 4

原创 NFT合约分析:ERC721A

本文主要介绍标准NFT实现的一个变体,即ERC721A合约实现的相关细节。ERC721A是由著名NFT系列Azuki提出,该系列NFT是著名的蓝筹NFT。本文主要聚焦于Azuki提出的ERC721A合约的代码细节分析。与传统的ERC721实现相比,ERC721A在批量铸造(batch mint)方面具有显著的gas优势,这得益于ERC721A的惰性初始化方面的设计。关于ERC721A与普通ERC721实现的对比,我们将会在下文展开说明。本文要求读者具有基础的solidity知识,希望读者对标准。

2023-02-06 20:36:28 2235

原创 Clickhouse 以太坊分析:基础交易数据清洗

1. 环境搭建。讨论在服务器内安装 `Clickhouse` 可能会遇到的问题并在个人计算机上安装客户端。2. 数据导入。使用纯粹的 SQL 代码导入数据,此处会涉及到使用 `Clickhouse` 进行 JSON 处理的内容。3. 数据分析。完成一些基础的数据分析任务,这并不是本文的核心。

2023-01-21 23:40:20 737

原创 深入解析AAVE智能合约:取款

本文主要介绍AAVE V3合约中的取款withdraw函数。AAVE交互指南。

2022-12-29 10:34:30 827 8

原创 深入解析AAVE智能合约:计算和利率

本文介绍了`AAVE`中用于数学计算的模块,此模块代码量较少,且较易理解。我们依次介绍了以下内容:1. 浮点数的表示及相关运算2. 单利复利的计算3. 百分数的相关运算

2022-12-22 13:06:53 755

原创 深入解析AAVE智能合约:存款

我们在上一篇文章AAVE交互指南中主要介绍了aave前端、利率计算等内容,本篇文章将在交互指南基础上介绍aave-v3的合约源代码的相关情况。与之前所写的深入解析Safe多签钱包智能合约系列文章不同,本文主要以我们在AAVE交互指南中进行的合约操作为主线进行分析介绍,较为实战化。相比于其他项目,AAVE提供了一个较为完整的文档。在文档内基本涵盖了所有函数的签名及其作用,读者也可作为阅读源代码的重要参考。

2022-12-15 10:37:48 1461

原创 基于Python与GraphQL的链上数据分析实战

本文主要介绍如何通过免费且高效的的基于GraphQL的basement进行部分链上数据分析实战。本文不要求读者具有相关经验,但要求读者会使用中的库,这是本文主要使用的数据分析工具。换言之,本文适用于了解数据分析而不了解链上数据获取的读者。

2022-12-07 19:31:21 1007

原创 Python异步编程实战入门:从概念到实战

1. 异步的概念与`Hello World`1. 异步编程的基本模型和关键词1. 异步的实现机制1. 完整的异步爬虫示例1. 增加多进程支持的性能更强的异步爬虫

2022-12-03 09:15:27 971

原创 如何在Python中简单地解决Microsoft Visual C++ 14.0报错?

本文主要讨论如何解决使用pip工具安装部分库时出现的Microsoft C++ Build Tools报错。

2022-11-26 19:43:14 6645

原创 猿创征文|智能合约开发效率工具

随着区块链的发展,智能合约的开发逐渐成为一片新的蓝海。与智能合约发展一同进步的其实还有一系列的智能合约开发工具和安全审计工具,但由于此方面很少有人介绍,导致大量新型工具并不为人所熟知。编辑器配置代码编写、测试与部署合约安全测试链上合约调用分析区块数据获取本文章主要面向使用solidity语言进行太坊或以太坊兼容链智能合约开发的程序员。

2022-11-13 10:56:22 606

原创 使用Quartz部署Obsidian笔记网站

使用双链笔记Obsidian进行个人知识管理日益成为主流。但部署Obsidian展示网站属于付费功能,这对于很多人来说是一个严重的阻碍。本文将介绍如何使用开源且免费的Quartz进行部署Obsidian笔记并介绍如何进行持续集成和部署。

2022-10-07 16:09:39 2250

原创 深入解析Safe多签钱包智能合约:Fallback合约

本文介绍了`GnosisSafe`模块中较为简单的最后一部分`fallback`。涉及以下内容:1. EIP-165返回支持的接口ID2. EIP-721、EIP-1155 的`safe`系列交易

2022-09-23 19:05:25 3103

原创 在Hugo PaperMod主题中加入数学支持的最简方式

在Hugo的PaperMod的主题中加入数学公式支持是很多人的刚需,在此主题下最好的文章是PaperMod开发者给出的。根据此篇博客内容,我们发现加入数学公式功能需要对theme文件夹进行修改,但大部分人可能都使用了引入的主题文件。这使我们几乎无法通过修改主题文件来增加这一功能。本文主要讨论了在使用submodule情况下,不通过修改主题文件加入数学公式支持。

2022-09-20 21:28:51 1051

原创 以太坊执行层P2P网络架构与设计:Discv5

本文基本介绍了P2P网络初次进入的基本流程,包含以下内容:1. ENR、Encode等以太坊节点表示格式和DNSDisc查询节点的方式2. Discv5中Ordinary Message Packet、WHOAREYOU Packet、Handshake Message Packet等数据包的构成和对应的加密算法3. Discv5规定的繁琐的握手流程和加密流程(ECDH、HKDF)4. 基于Kademlia节点信息的存储方式和查询方式

2022-09-20 19:38:34 1968

原创 深入解析Safe多签钱包智能合约:模块

本篇文章主要讨论 Gnosis safe 合约中的各个模块。

2022-09-11 13:04:10 1809

原创 猿创征文|区块链技术学习之路

本文主要记述笔者在学习区块链技术的学习道路,希望读者可以在读完本文后可以在目前日益发展的区块链领域找到一条属于自己的学习路径。本文给出了读者在区块链学习过程遇到的一系列问题,并给出对应的解决方案和建议。

2022-09-06 20:20:45 792

原创 深入解析Safe多签钱包智能合约:代理部署与核心合约

Safe是目前在以太坊中使用最为广泛的多签钱包。本文主要解析此钱包的逻辑设计和代码编写等,主要涉及代理相关合约和最为复杂的主合约的分析。

2022-09-06 14:04:46 4885 1

原创 以太坊机制详解:Gas与Gas Prices深度解析

在以太坊柏林London升级后,以太坊启用了EIP1559进行gas计算。由于EIP1559引入的新的gas机制较为复杂,所以我写了此文介绍了以太坊的gas机制。主要涉及`EIP1559`引入的新的`gas price`设置方式和交易花费的具体计算方式。.........

2022-08-26 16:34:50 5290 6

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

本文主要介绍了以下内容 `openzeppelin`的`clone`函数生成字节码的过程、go-ethereum创建智能合约的源代码。除此之外,我们还介绍EVM运行环境的基本情况和常见字节码的含义。

2022-08-23 15:45:28 1134

原创 以mermaid为例介绍如何学习一项新的技术

以Mermaid为例介绍以最小可行例子为主导的新技术学习方法论。

2022-08-18 12:50:40 228

原创 EIP712的扩展使用

本文在EIP712的基础上介绍了依赖于EIP712的其他重要标准,分别是EIP2770、EIP2771、EIP2612标准。其中,前两者解决了合约交互方在没有ETH的情况下与行业交互的问题,后者解决了在`ERC20`合约内通过结构化哈希签名通过一次交易完成授权操作,优化了用户体验。.........

2022-08-17 08:38:55 1662

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

本文主要介绍ECDSA公钥密码学的数学原理与代码实现解析、以太坊客户端对交易信息签名的基本流程与源代码分析、智能合约内签名的验证。

2022-08-10 12:43:17 3325

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

正如我们在上篇博客结尾时所述,本文主要依靠openzeppelin库介绍代理合约的编写,主要介绍EIP-1967、EIP-1538、EIP-2535三个标准的内容和实现。

2022-08-01 18:23:31 1726

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

以太坊智能合约中,很长时间都保持着“一次部署,永不修改”的情况。经过智能合约开发的不断努力和solidity语言的创新,编写可升级的智能合约成为显示本文主要介绍在智能合约部署过程中,我们可以通过多种方式编写可升级的智能合约。本教程所使用的代码均可在github仓库。通过这一篇博客相信读者已经对合约代理的基本形式和本质有了了解。本文主要介绍Eternal Storage、EIP-987、EIP-1822。.........

2022-07-25 20:16:10 2045

原创 Foundry教程:ERC-20代币智能合约从编写到部署全流程开发

本教程的内容主要分为以下四部分:一是Foundry的介绍与安装,主要介绍为什么选择Foundry进行智能合约开发和安装过程中的各种官方文档中未提及的问题;二是智能合约的编写,主要介绍如何使用Foundry初始化开发环境,导入其他Solidity模块;三是智能合约的测试,介绍Foundry中测试工具,以及如何使用Solidity编写测试脚本,以及输出Gas报告等内容;四是智能合约的部署,介绍如何使用`Anvil`构建本地测试环境并进行合约测试,并介绍如何将合约部署至测试网络。.........

2022-07-17 21:50:07 8253 3

原创 Python2Go:将Python爬虫使用Go重构

您可以前往我的博客获得更好地阅读体验。本篇文章主要适用于Python爬虫程序员使用Go编写爬虫,由于目前我个人水平有限,所以此篇文章主要介绍一些简单的爬虫编写,主要包括使用、等库的初级Python爬虫的改写,暂时不涉及多线程、异步、反爬、登录等复杂情况。本教程假设您具有编写Python爬虫的能力和基本的编程能力。本教程使用的案例是爬取豆瓣书籍搜索内容。...

2022-07-05 22:03:44 544

原创 在Cloudflare中自动化部署hexo博客

CloudFlare Pages是一个免费且使用简单的CI/CD工具,可用来编译并部署大部分知名前端框架。此篇博客介绍如何优雅的在cloudflare pages中自动化部署hexo博客。

2022-06-27 11:19:43 1762

原创 MetaMask以太坊一键登录设计 | DAPP登录设计

在此篇博客中,我们将以使用MetaMask钱包中的API为例介绍去中心化登录的基本方式。我会介绍前端页面的搭建和后端服务的设计。我选择了Vue作为前端页面的框架,同时使用了MetaMask插件提供的API接口。在后端为降低成本,我采用了CloudFlare Worker作为后端,主要使用Worker和KV服务。.........

2022-06-26 21:57:19 5364 1

原创 在OpenWrt中使用SmartDNS加速DNS解析

本文主要介绍如何在openwrt的网页管理端进行smartdns设置以加快DNS解析

2022-06-08 23:33:39 44978 1

原创 基于wireguard与NAT实现windows10代理服务器

WireGuard是一个免费的网络通信隧道,它可以让您的私有网络和公共网络之间通过一个隧道,让您的私有网络不会被窃听。一般情况下,我们选择使用Linux服务器自带的iptables实现路由转发,实现私有网络和公共网络之间的通信。但是,在Windows上,尤其是个人Windows计算机上,我们缺乏有效的工具实现路由转发,因此我们很难实现私有网络和公共网络之间的通信。搭建出的WireGuard隧道毫无意义。此教程主要讲解如何使用Windows的NAT实现路由转发,并进一步实现私有网络和公共网络之间的通信。...

2022-06-08 23:20:41 10344

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除