年度归档: 2021年

16 篇文章

Uniswap接口调用文档
unisawp配对合约 每一个交易对都有一个配对合约 方法名称 可视范围 类型 修饰符 Constructor Public ❗️ ? NO❗️ initialize External ❗️ ? NO❗️ getReserves Public ❗️ NO❗️ _safeTransfer Private ? ? _update Private ? ?…
React技术全家桶全套
资料是尚硅谷2021版React技术全家桶全套完整版的笔记资料,搬运过来方便查看。 React全家桶(技术栈) 尚硅谷前端研究院 第1章:React入门 React简介 官网 英文官网: https://reactjs.org/ 中文官网: https://react.docschina.org/ 介绍描述 用于动态构建用户界面的 JavaScri…
在私链上部署uniswap
准备工作 以UniSwap v2 版本为例,部署到自己的私链上。 首先,下载并安装好Node.js,然后执行命令npm i yarn -g全局安装yarn。 然后,下载需要的两个合约 git clone https://github.com/Uniswap/v2-core.git git clone https://github.com/Unisw…
以太坊Trie的写入读取测试
环境 Windows 11,AMD R7 8核 16 线程处理器,16GB内存。 测试内容 随机写入1000w条账户数据。然后从写入的1000w条数据随机读取1000,10000,100000,1000000条数据。 测试结果 写入结果 随机写入1000w条数据,总花费时间350s左右,所以写入的TPS大概为 10000000 / 350 == 2…
以太坊trie中的数据库相关操作
引言 之前分享过“以太坊状态树state的修剪流程”,讲述了上层清理trie中数据库里面的数据的条件以及时机。这篇再简单介绍一下trie对应的数据库的相关操作。所以后面说的数据库,如果没做特别说明,都是trie对应的数据库。 Trie 的 Hash 与 Commit 以太坊的PoW共识算法来说,需要stateRoot,txHash以及其他字段才能够…
以太坊状态树state的修剪流程
state 在以太坊中,交易驱动state的更新,而state的更新影响它底层的trie。如下,是一个交易对state的一个更改的示意图。 由图可见,将账号x中的金额从100改为110之后,影响了其中的4个节点。即如果改变一个账户的数据,沿着数据往上的父节点的数据都将发生改变。如果每次产生一个区块都将整颗状态树的数据保存到硬盘中,那么硬盘将保存了许…
以太坊智能合约相关
存储 以太坊的账户包括外部账户与合约账户,他们同用如下数据结构: type Account struct { Nonce uint64 Balance *big.Int Root common.Hash // merkle root of the storage trie CodeHash []byte } 所有的账户数据是以一颗大的MPT进行存储…
用Random(0, 1)来实现Random(a, b)
通过Random(0, 1)生成Random(a, b),实际上我们生成random(0, b-a) + a 就可以了,然后问题就转换为了Random(0, 1)生成Random(0, n), 这里n = b - a。 由于Random(0, 1)我们认为产生的 0 跟 1 这两个数是随机的并且相互独立的。所以,我们可以求得最小的 bit 位数,使…
二叉默克尔树
背景描述 在以太坊中,以太坊的账户数据存储在一颗十六叉树中,所谓的十六叉树,是以太坊将传进去的byte数组中的每个元素拆成一个nibble数组(一个byte为2个nibble),比如我要将一个kv对(0xaa, v)存储到十六叉书中,示意图大概如下: 在以太坊中,每个区块都包含一个stateRoot字段,它是MPT根的哈希值。这个根哈希值,是通过对…