DappTools - 安装与使用

本文作者:bixia1994

DappTools

DappTools是Samczsun推荐使用的一个调试EVM的神器,故下载到服务器上进行初步的学习使用。

安装

官网的安装脚本异常简单,但我实际上安装到服务器上时还是踩了不少的坑,花费了很多的时间。

首先是安装条件:它仅支持linux和Mac环境,并不支持windows环境,所以在windows上就不要想了

其次是安装脚本的预置条件:

需要首先为centos添加一个alice的普通用户

useraddalice

然后再给alice赋值一定的权限:

chownalice/nix//安装时会把一些二进制文件拷贝到这个地方chownalice/run/user/0//也是安装时存放用户数据的地方

然后运行官网提供的脚本,记住此时是以alice为用户的:

sualicecurl-Lhttps://nixos.org/nix/install|sh."$HOME/.nix-profile/etc/profile.d/nix.sh"curlhttps://dapp.tools/install|sh

如果出现任何的permissiondenied,则使用root用户给alice进行赋权即可。

环境变量

原定于6月的Terra Dapp博览会已取消,会议组织者称受到威胁:5月16日消息,原定于6月9日至10日在美国德克萨斯州奥斯汀举行的Terra Dapp博览会已被取消。会议组织者表示:已收到了一些在Terra事件中受损失的人的严重威胁,我们不想拿任何人的健康/生命冒险。此外,会议组织者称将会为参与者进行退票处理。(The Block)[2022/5/16 3:17:52]

再安装完成dapptools后,需要先配置一定的环境变量,这样才好继续使用。这里需要用到的有两个环境变量:ETH_RPC_URL和ETHERSCAN_API_KEY。前者用来访问链,后者用来从etherscan上拉取对应地址的ABI文件等

exportETH_RPC_URL="https://eth-mainnet.alchemyapi.io/v2/XXXXX"exportETHERSCAN_API_KEY="XXXX"

使用

在使用之前,需要先进行一下初始化:

sualicecd/run/user/0/samczsun."$HOME/.nix-profile/etc/profile.d/nix.sh"source.env

dapptools最牛逼的一点在于它可以把主网上的合约代码和合约的ABI拉取到本地,然后再本地通过形式化的执行来跑一遍整个流程

//第一步:拉取主网上的合约代码和合约ABIsethbundle-source0x6b175474e89094c44da98b954eedeac495271d0f>daihide.json//第二步:利用hevm进行形式化的执行hevmsymbolic--address0x6b175474e89094c44da98b954eedeac495271d0f--rpc$ETH_RPC_URL--debug--sig"transfer(address,uint256)"--json-filedaihide.json

动态 | Top100区块链项目全职开发者数量稳定,智能合约、 Dapp开发者流失严重:数字资产管理机构Electric Capital近日发布区块链开发者报告,从三个维度分析了开发者数量变动情况,结论称主要流失的开发者是一月一次或兼职开发者,市值前100的项目开发者流失率远低于市值100开外的项目,开发者流失最多的领域是智能合约和 Dapp 领域。注:该报告定义活跃开发者为有效代码贡献者,而非仅在Github 上提出合并请求的人。[2019/8/13]

HackReplay-COMP

https://twitter.com/msolomon44/status/1443581033220227073

这里有一个dapptools分析compound的COMPtoken分发错误的帖子,可以使用dapptools来进行分析。这个例子也体现出了dapptools的优势所在,即它可以实时的debug一笔交易,而不像hardhat或者remix需要手动部署合约。实际上即使使用了hardhat去fork了特定的blocknumber,也无法去debug它的OPCODE,对于事实上的交易顺序也是没办法重现的。

简单来讲就是COMP的一个提案62错误的给某些用户分发了错误数量的COMPToken。

这笔交易中,一个用户Claim了91170个COMPToken。https://etherscan.io/tx/0xf4bfef1655f2092cf062c008153a5be66069b2b1fedcacbf4037c1f3cc8a9f45

分析 | 跨ETH/EOS/TRON/IOST四大公链,DApp活跃度排行榜:据 DAppTotal 07月01日数据显示,过去一周,综合对比ETH、EOS、TRON、IOST四大公链的DApp生态情况发现:总用户量(个): EOS(154,355) > ETH(119,819) > TRON(83,599) > IOST(21,895);总交易次数(笔):EOS(29,907,560) > TRON(4,949,893) > IOST(1,603,204) > ETH(690,060);总交易额(美元):EOS(141,601,912) > TRON(79,618,369) > ETH(74,883,462) > IOST(3,257,365);跨四条公链按用户量TOP3 DApps为:Endless Game(EOS)、Hash Baby(EOS)、ERC20-USDT(ETH);按交易次数TOP3 DApps分别为:Hash Baby(EOS)、Dice(EOS)、TRONbet(TRON);按交易额TOP3 DApps分别为:EOS REX(EOS)、TRONbet(TRON)、EOSJacks(EOS)。[2019/7/1]

第一步:检查用户是否提交了可疑的数据

从etherscan我们可以看到用户调用了函数claimComp,holder为0x09d413391e975b553b7b8d19bc11f8a6c2eb889

Function:claimComp(addressholder,addresscTokens)***MethodID:0x1c3db2e0//holder//offset//len//addr//addr//addr//addr//addr//addr//addr//addr

行情 | 昨日ETH Dapp活跃用户再创新高,达到近三个月来最高:据RatingDapp和RatingToken大数据监测显示,昨日EOS/ETH/TRON三大主流公链平台Dapps交易额分别为:TRON($15268596.63)>EOS($12888887.41)>ETH($10499574.09),TRON?Dapp日交易额再度超越EOS成为最高。从活跃用户来看,昨日EOS?Dapp活跃用户105960,同比上周下降2.15%;ETH?Dapp活跃用户23108,同比上周上升10.41%,达到近三个月最高值;TRON?Dapp活跃用户46371,同比上周下降0.25%。[2019/6/19]

第二步:利用seth快速写一个bash脚本,找到该用户参与到的COMP池子,即调用getAssetIn函数,从而检查用户提交的8个cToken地址是否都是该用户参与的。

user=0x309d413391e975b553b7b8d19bc11f8a6c2eb889comptroller=0x3d9819210a31b4961b30ef54be2aed79b9c9cd3bmarketsString=$(sethcall$comptroller"getAssetsIn(address)(address)"$user)echo$marketsStringmarketsArray=(${marketsString//,/})formarketin${marketsArray};domarketName=$(sethcall$market"name()(string)")echo$market$marketNamedone

声音 | 神鱼:DApp仍是一个门槛极高且用户小众的市场:1月4日,在“鉴识2019区块链价值榜”大会上,鱼池创始人神鱼表示:DApp目前还是一个门槛极高,用户小众的市场。且大部分都是比较资深的区块链用户,而DApp本身的应用也还比较单一。想通过DApp的生态、落地游戏等应用让更多的人投入到区块链生态行业。[2019/1/4]

得到的结果如下:

0x4Ddc2D193948926D02f9B1fE9e1daa0718270ED5CompoundEther0x39AA39c021dfbaE8faC545936693aC917d5E7563CompoundUSDCoin0xC11b1268C1A384e55C48c2391d8d480264A3A7F4CompoundWrappedBTC0x6C8c6b02E7b2BE14d4fA6022Dfd6d75921D90E4ECompoundBasicAttentionToken0x5d3a536E4D6DbD6114cc1Ead35777bAB948E3643CompoundDai0x35A18000230DA775CAc24873d00Ff85BccdeD550CompoundUniswap0x70e36f6BF80a52b3B46b3aF8e106CC0ed743E8e4CompoundCollateral0x12392F67bdf24faE0AF363c24aC620a2f67DAd86CompoundTrueUSD0xccF4429DB6322D5C611ee964527D42E5d685DD6aCompoundWrappedBTC0xFAce851a4921ce59e912d19329929CE6da6EB0c7CompoundChainLinkToken

从上面的结果看,该用户确实在它提出的claimComp函数中拥有以上的token,说明函数调用并没有错

第三步:我们需要进一步检查comptorller合约和对应的实现合约impl合约

已知comptroller合约地址为:0x3d9819210A31b4961b30EF54bE2aeD79B9c9Cd3B对应的实现合约地址为:0x374ABb8cE19A73f2c4EFAd642bda76c797f19233,该实现合约也是62号提案更新过的合约地址

然后从etherscan上拿到对应的实现合约的源码,以方便我们进一步调试,即:

sethbundle-source0x374ABb8cE19A73f2c4EFAd642bda76c797f19233>impl.json

当运行上面的命令时会出现:报错:Argumentlisttoolong

samczsun]$sethbundle-source0x374ABb8cE19A73f2c4EFAd642bda76c797f19233>impl.json/nix/store/3fl61v0ssh5cdxqbvzvbqqx9a08j1wmg-seth-0.10.1/libexec/seth/seth-bundle-source:line32:/nix/store/3fl61v0ssh5cdxqbvzvbqqx9a08j1wmg-seth-0.10.1/libexec/seth/seth:Argumentlisttoolong

可以参考github的issue:

https://github.com/dapphub/dapptools/issues/825

由于目前dapptools正在修复这个bug,故目前暂时无法获取到相应的数据。

然后定义一个局部变量txHash,即该用户的交易哈希

txHash=0xf4bfef1655f2092cf062c008153a5be66069b2b1fedcacbf4037c1f3cc8a9f45

第四步:debug这个tx

当拿到txHash和对应的合约json文件后,我们可调用seth的方法来展示这个交易的整个流程

sethrun-tx$txHash--trace--sourceimplementation.json

这行命令会显示出这笔交易中的所有内部交易,其效果与在ethtx.info网站上查询的交易信息一样

然后再执行如下命令,来逐行执行这笔交易中的代码:

sethrun-tx$txHash--sourceimplementation.json--debug

这里使用的是Dai中的一笔普通的transfer交易来做示范,不过dapptools真的太牛了!可以debug主网上的交易,并且不需要过多的配置,比用hardhat要方便好多。hardhat压根没办法按照OPCODE的方式来进行debug,一个字牛逼!

参考资料

bixia1994:https://learnblockchain.cn/people/3295

EVM:https://learnblockchain.cn/2019/10/05/evm-data

compound:https://learnblockchain.cn/article/1015

hardhat:https://learnblockchain.cn/docs/hardhat/getting-started/

免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻ChainNews立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。

本文来源于非小号媒体平台:

登链社区

现已在非小号资讯平台发布105篇作品,

非小号开放平台欢迎币圈作者入驻

入驻指南:

/apply_guide/

本文网址:

/news/10417119.html

免责声明:

1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险

2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场

上一篇:

每周编辑精选WeeklyEditors'Picks

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

银河链

[0:19ms0-1:741ms