简单粗暴区分Solidity的calldata和memory 最近回顾了很多基础知识,发现很多文章都是谷歌翻译过来,又拖沓讲得又不够清楚,于是决定自己用简单的例子概括。 1234567891011121314151617181920212223242526272829//SPDX-License-Identifier: Unlicensepragma solidity 0.8.0;contract Difference{ string p 2022-11-01 区块链 > 基础知识 #智能合约 基础知识
区块链骇客第一讲:重入攻击 本篇文章开启区块链骇客专栏的第一讲,让我决心开写本专栏的首要原因是对未来的职业选择有了一个确定的规划。 日后的更新频率将会不小于等于每周一讲,欢迎各位读者监督和指正,一起学习一同进步! 📕1. 挑战 这是Ethernaut中的一个例子(已修改) 现在把需求交给你:使用重入攻击将以下合约中的资金全部取走。 你会先想到什么?什么是重入攻击? 12345678910111213141516171 2022-10-29 区块链骇客 #合约安全审计 #重入攻击
Solidity:接受以太的所有可能性 目前来看,智能合约接受以太共有五种可能性; 1. receive()一个合约最多有一个 receive 函数, 声明函数为: receive() external payable {} 无需 function 关键字,也没有参数和返回值并且必须是external可见性和payable 修饰。 它可以是 virtual 的,可以被重载也可以有修改器modifier 。 在对合 2022-10-26 区块链 > 合约安全 #合约安全审计
part2. UniSwap V2 | Swap Token 访问 UniSwap 本章我们教大家如何解锁ETH主网上的巨鲸地址,并用该地址发起交易 1.编写合约接口在/interfaces文件夹下创建IERC20.sol和Uniswap.sol文件 IERC20.sol(官方标准接口,建议保存) 123456789101112131415161718//SPDX-License-Identifier: UNLICENSEDpragma so 2022-10-23 区块链 > DeFi #Uniswap
npm&nvm基本操作 npm1. 镜像123456789101112131415# 1. 查看当前的镜像源npm config get registry# 2. 修改镜像路径(淘宝)npm config set tao'bao https://registry.npm.taobao.org# 3. 安装镜像管理器nrmnpm i nrm -g# 4. 查看当前环境中所有的镜像nrm ls# 5. nrm快速切 2022-10-12 基操勿6 #npm #nvm
gyp ERR(not found visual studio 20xx v)解决 最近项目安装蚂蚁链依赖包的时候,运行 npm i,出现如下错误: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647gyp ERR! find VS gyp ERR! find VS msvs_version was set from command line or npm co 2022-10-04 包管理器 #npm #安装异常
PBFT实用拜占庭容错算法原理 本篇文章开启区块链共识算法的教学——我以 PBFT (Practical-Byzantine-fault-tolerant)实用拜占庭容错共识算法打头阵。 为什么先是PBFT呢? 一个原因是觉得这个算法的名字很酷,实际上它也有着有趣的历史背景。另一个原因呢,就是最近在接触联盟链,而这个算法呢,正是专属于联盟链的共识算法。 共识算法概览 联盟链有两个共识算法:一个是本章将去讲的PBFT,另一个就 2022-09-17 区块链 > 共识算法 #PBFT #联盟链
区块链VS分布式数据库:革新与代价 区块链VS分布式数据库:革新与代价前情提示:本文较为硬核,若有兴趣需耐心阅读,不感兴趣请跳至简言之,喜欢思辨的同学可以跳至悖论,希望对有心之人产生启发~ 自2009年比特币正式诞生,到2013年以太坊横空出世,再到今22年的9月15号以太坊即将迎来合并的巨大变革。我们对于区块链的技术的认知越来越趋向“越来越像分布式数据库”发展。 而事实也确实如此,区块链从诞生之初只服务于加密货币,到现在随着智能 2022-09-11 区块链 #革新 #思考未来