搭建BSC Fullnode
要运行BSC全节点,首先需要有服务器,币安官方推荐服务器配置VPS running recent versions of Mac OS X or Linux.IMPORTANT 2T GB of free disk space, solid-state drive(SSD), gp3, 8k IOPS, 250MB/S throughput, read latency <1ms. (if start with snap/fast sync, it will need NVMe SSD)16 cores of CPU and 64 gigabytes of memory (RAM).Suggest m5zn.3xlarge instance type on AWS, c2-standard-16 on Google cloud.A broadband Internet connection with upload/download speeds of 5 megabyte per second我是在aliyun买的VPS,配置是16核64G,系统盘40G,数据盘3000G ESSD...
以Synthetix为例,MEV策略剖析
本文翻译自Robert Miller的Anatomy of an MEV Strategy: Synthetix 几个月前臭名昭著的alpha泄露者KALEB在Flashbots公开的searchers频道发表了下列消息KALBE泄露了关于Synthetix变动的数千万美金的alpha消息。在这个机器人运营商的小房间里分享alpha就像丢给狮子一块红肉一样,在快速看了合约之后可以确认有笔另人晕眩的钱处在危机中。 在接下来的几周,我计划并且尝试去执行策略来捕获KALEB分享的MEV。我会开源我用的代码并一步一步展示整个过程和策略。你将不能运行我的代码去赚钱,但是这篇文章将会教你我是如何设计这个新的搜索者并会包含许多alpha。很自然的,这将会有点技术性,但我会尽量让本文对于非技术读者来说好理解。第一步,识别机会我不是一个Synthetix专家,因此第一步是去学习我将要涉及的操作。具体如下:我找出了相关合约我在Synthetix博客里读了它们的高级别功能并且搜索了相关文档我确保理解了将要实行的治理变动我查找了相关函数总结一下这阶段的工作,Synthetix已经试验了以ETH为抵押去铸...
Bitmap结构在ENSToken里的应用
在ENSToken的合约里看到了Bitmaps的应用,在地址认领空投时用了Merkle树证明来check用户地址和认领数量,进而会对应一个Merkle的index,为了防止重复认领空投,合约里用了OpenZeppelin的Bitmaps库来做位图存储,地址认领成功后,就将对应的index在位图里存true,下次如果再来认领就会判断这个位图,如果为true时就返回错误,以此来防止重复认领空投。BitMaps.BitMap private claimed; /** * @dev Claims airdropped tokens. * @param amount The amount of the claim being made. * @param delegate The address the tokenholder wants to delegate their votes to. * @param merkleProof A merkle proof proving the claim is valid. */ function claimTokens(uint256 amo...
<100 subscribers
搭建BSC Fullnode
要运行BSC全节点,首先需要有服务器,币安官方推荐服务器配置VPS running recent versions of Mac OS X or Linux.IMPORTANT 2T GB of free disk space, solid-state drive(SSD), gp3, 8k IOPS, 250MB/S throughput, read latency <1ms. (if start with snap/fast sync, it will need NVMe SSD)16 cores of CPU and 64 gigabytes of memory (RAM).Suggest m5zn.3xlarge instance type on AWS, c2-standard-16 on Google cloud.A broadband Internet connection with upload/download speeds of 5 megabyte per second我是在aliyun买的VPS,配置是16核64G,系统盘40G,数据盘3000G ESSD...
以Synthetix为例,MEV策略剖析
本文翻译自Robert Miller的Anatomy of an MEV Strategy: Synthetix 几个月前臭名昭著的alpha泄露者KALEB在Flashbots公开的searchers频道发表了下列消息KALBE泄露了关于Synthetix变动的数千万美金的alpha消息。在这个机器人运营商的小房间里分享alpha就像丢给狮子一块红肉一样,在快速看了合约之后可以确认有笔另人晕眩的钱处在危机中。 在接下来的几周,我计划并且尝试去执行策略来捕获KALEB分享的MEV。我会开源我用的代码并一步一步展示整个过程和策略。你将不能运行我的代码去赚钱,但是这篇文章将会教你我是如何设计这个新的搜索者并会包含许多alpha。很自然的,这将会有点技术性,但我会尽量让本文对于非技术读者来说好理解。第一步,识别机会我不是一个Synthetix专家,因此第一步是去学习我将要涉及的操作。具体如下:我找出了相关合约我在Synthetix博客里读了它们的高级别功能并且搜索了相关文档我确保理解了将要实行的治理变动我查找了相关函数总结一下这阶段的工作,Synthetix已经试验了以ETH为抵押去铸...
Bitmap结构在ENSToken里的应用
在ENSToken的合约里看到了Bitmaps的应用,在地址认领空投时用了Merkle树证明来check用户地址和认领数量,进而会对应一个Merkle的index,为了防止重复认领空投,合约里用了OpenZeppelin的Bitmaps库来做位图存储,地址认领成功后,就将对应的index在位图里存true,下次如果再来认领就会判断这个位图,如果为true时就返回错误,以此来防止重复认领空投。BitMaps.BitMap private claimed; /** * @dev Claims airdropped tokens. * @param amount The amount of the claim being made. * @param delegate The address the tokenholder wants to delegate their votes to. * @param merkleProof A merkle proof proving the claim is valid. */ function claimTokens(uint256 amo...
Share Dialog
Share Dialog
MAYC还有一些M1、M2和Mega的药水还没有变异,这样就存在有些变异猴是开盒,还些变异猴还未开盒的情况。首先要明确的是,所有20000只变异猴都是已经做出来的,而不是用药水去变异时才实时生成的,只是项目方对Metadata做了控制,让未变异的猴子的Metadata没有对外公开而已。
大家都知道,ERC721的元数据是通过tokenURI方法获取的,我们以前几天刚开的Mega变异猴30005为例,可以看到它的元数据URI是
https://boredapeyachtclub.com/api/mutants/30005

获取到的json如下
{"image":"ipfs://QmcCMYfyDfTQs3ZFsu9rv436gJKskzu5uabKQJukZPzhEC","attributes":[{"trait_type":"Name","value":"Mega Trippy"}]}
里面的图片用brave浏览器打开就是对应的Trippy变异猴

那么,有些人就会用30006去尝试下能不能看到下一个未开盒的Mega变异猴的样子

结果返回token不存在。
因为在这里项目方用是中心化的API来返回json元数据的,所以很好对这个开盒的私密性进行控制。以上面的30005变异猴的mint为例,看下对应的tx交易0xef0c7af927424fc8416fc62315c18ff4ea93306eb1a467f062b2af608b75de3a的日志

可以看到from参数是全0地址,表示新mint;to参数是token接收地址,也就是mint用户的地址;tokenId就是当前mint出来的tokenId。项目方应该在中心化那里做了一个event监听服务,监听到此事件时,根据tokenId将图片上传IPFS,然后API Metadata reveal。
那么,有人会说,项目方是不是可以人工操控30006的开盒图片呢?答案是:不能。因为MAYC合约部署时已经公开了图片哈希provenance码,在合约里可见
string public constant MAYC_PROVENANCE = "ca7151cc436da0dc3a3d662694f8c9da5ae39a7355fabaafc00e6aa580927175";
因此,所有20000张变异猴的图片顺序在合约部署前都排好了,只是未mint出来的还没有公开元数据。从这小小的技术点就可以看出项目方在技术上是有用心的。
MAYC还有一些M1、M2和Mega的药水还没有变异,这样就存在有些变异猴是开盒,还些变异猴还未开盒的情况。首先要明确的是,所有20000只变异猴都是已经做出来的,而不是用药水去变异时才实时生成的,只是项目方对Metadata做了控制,让未变异的猴子的Metadata没有对外公开而已。
大家都知道,ERC721的元数据是通过tokenURI方法获取的,我们以前几天刚开的Mega变异猴30005为例,可以看到它的元数据URI是
https://boredapeyachtclub.com/api/mutants/30005

获取到的json如下
{"image":"ipfs://QmcCMYfyDfTQs3ZFsu9rv436gJKskzu5uabKQJukZPzhEC","attributes":[{"trait_type":"Name","value":"Mega Trippy"}]}
里面的图片用brave浏览器打开就是对应的Trippy变异猴

那么,有些人就会用30006去尝试下能不能看到下一个未开盒的Mega变异猴的样子

结果返回token不存在。
因为在这里项目方用是中心化的API来返回json元数据的,所以很好对这个开盒的私密性进行控制。以上面的30005变异猴的mint为例,看下对应的tx交易0xef0c7af927424fc8416fc62315c18ff4ea93306eb1a467f062b2af608b75de3a的日志

可以看到from参数是全0地址,表示新mint;to参数是token接收地址,也就是mint用户的地址;tokenId就是当前mint出来的tokenId。项目方应该在中心化那里做了一个event监听服务,监听到此事件时,根据tokenId将图片上传IPFS,然后API Metadata reveal。
那么,有人会说,项目方是不是可以人工操控30006的开盒图片呢?答案是:不能。因为MAYC合约部署时已经公开了图片哈希provenance码,在合约里可见
string public constant MAYC_PROVENANCE = "ca7151cc436da0dc3a3d662694f8c9da5ae39a7355fabaafc00e6aa580927175";
因此,所有20000张变异猴的图片顺序在合约部署前都排好了,只是未mint出来的还没有公开元数据。从这小小的技术点就可以看出项目方在技术上是有用心的。
No comments yet