本文作者: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进行赋权即可。
环境变量
波场TRON最新日活跃Dapp数量位居第一:据DappReview网站最新数据,波场TRON最新日活跃Dapp数量以260个位居第一。据悉,波场 TRON 以推动互联网去中心化为己任,致力于为去中心化互联网搭建基础设施。旗下的 TRON 协议是全球最大的基于区块链的去中心化应用操作系统协议之一,为协议上的去中心化应用运行提供高吞吐,高扩展,高可靠性的底层公链支持。波场 TRON 还通过创新的可插拔智能合约平台为以太坊智能合约提供更好的兼容性。[2020/9/9]
再安装完成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拉取到本地,然后再本地通过形式化的执行来跑一遍整个流程
加州佩珀代因大学举办加密夏令营,提供区块链、DApp等教学:4月6-10日在洛杉矶,Crypto Kids夏令营将在加州佩珀代因大学举办春假营。5 - 17岁的孩子将学习区块链、货币进化(加密)、人工智能、网络安全、技术、机器学习、在线游戏、DApp和工程学的基本原理。(Prweb)[2020/3/1]
//第一步:拉取主网上的合约代码和合约ABIsethbundle-source0x6b175474e89094c44da98b954eedeac495271d0f>daihide.json//第二步:利用hevm进行形式化的执行hevmsymbolic--address0x6b175474e89094c44da98b954eedeac495271d0f--rpc$ETH_RPC_URL--debug--sig"transfer(address,uint256)"--json-filedaihide.json
HackReplay-COMP
https://twitter.com/msolomon44/status/1443581033220227073
这里有一个dapptools分析compound的COMPtoken分发错误的帖子,可以使用dapptools来进行分析。这个例子也体现出了dapptools的优势所在,即它可以实时的debug一笔交易,而不像hardhat或者remix需要手动部署合约。实际上即使使用了hardhat去fork了特定的blocknumber,也无法去debug它的OPCODE,对于事实上的交易顺序也是没办法重现的。
动态 | DApp活跃度梳理:四大公链DApp昨日活跃用户量总计202242个:据DAppTotal.com 09月01日数据显示,昨天,ETH/EOS/TRON/IOST四大公链DApp单日活跃用户共有202,242个,其中EOS公链占比59.57%,表现最佳。四大公链整体数据对比:总用户量(个): EOS(120,468) > ETH(64,185) > TRON(17,589) > IOST(13,915);总交易次数(笔):EOS(4,298,497) > TRON(1,048,060) > IOST(188,678) > ETH(177,708);总交易额(美元):ETH(8,407,580) > TRON(7,231,347) > EOS(5,112,635) > IOST(758,025);跨四条公链 TOP 3 DApp 分别为:按用户量: Hash Baby(EOS)、ADM(EOS)、Endless Game(EOS);按交易次数:Hash Baby(EOS)、WINk(TRON)、Newdex(EOS);按交易额:NEST(ETH)、WINk(TRON)、Newdex(EOS)。[2019/9/1]
简单来讲就是COMP的一个提案62错误的给某些用户分发了错误数量的COMPToken。
这笔交易中,一个用户Claim了91170个COMPToken。https://etherscan.io/tx/0xf4bfef1655f2092cf062c008153a5be66069b2b1fedcacbf4037c1f3cc8a9f45
动态 | EOS Dapp活跃用户143908 交易额5340万元:据DappReview数据显示,今日Dapp新增3个,EOS Dapp活跃用户143908,交易额5340万元(-18%);Tron Dapp活跃用户32884,交易额1.14亿元(-0.4%);ETH Dapp活跃用户18041,交易额5799万元(+6%)。过去24小时Dapp交易额:EOS最高的为“EOSPlay”(交易额1701万元);Tron最高的为“WINk(TRONbet)”(交易额8910万元);ETH最高的为“NEST”(交易额3417万元)。[2019/8/20]
第一步:检查用户是否提交了可疑的数据
从etherscan我们可以看到用户调用了函数claimComp,holder为0x09d413391e975b553b7b8d19bc11f8a6c2eb889
Function:claimComp(addressholder,addresscTokens)***MethodID:0x1c3db2e0//holder//offset//len//addr//addr//addr//addr//addr//addr//addr//addr
第二步:利用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
行情 | 过去24小时EOS Dapp活跃用户116845:据DappReview数据,今日dapp新增9个,过去24小时EOS Dapp活跃用户116845,交易额294万EOS/1.04亿万元;Tron Dapp活跃用户72121,交易额3.2亿TRX/5665万元;ETH Dapp活跃用户12460,交易额3.2万ETH/3629万元;Steem Dapp活跃用户13136,交易额37万Steem/103万元。[2019/4/12]
得到的结果如下:
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
为支持社区用户全方位感受OpenPunks的创作体验,特此新增上传形象功能,创作者可定期更新所持有的OpenPunks作品的NFT形象展示,以最大限度的提升作品本身的艺术价值与创作收益.
1900/1/1 0:00:00巴比特讯,10月13日,广东省人民政府印发《广东省科技创新“十四五”规划》,其中指出围绕区块链等领域实施研发专项,推进可信数据服务网络基础设施建设,研发自主可控、互联互通的区块链开源平台.
1900/1/1 0:00:00据CoinDesk消息,10月19日,美国参议员BrianSchatz、SherrodBrown、RichardBlumenthal、ElizabethWarren和TinaSmith写信敦促F.
1900/1/1 0:00:00尊敬的用户:?????????????BKEXGlobal即将上线BANK,详情如下:上线交易对:BANK/USDT币种类型:ERC20?充值功能开放时间:已开放交易功能开放时间:2021年10.
1900/1/1 0:00:00親愛的用戶:幣安NFT市場很高興地宣布將於東八區時間2021年10月19日20:00至2021年10月26日20:00推出《美聯社獨家時刻》頂級NFT系列!該系列由獨立的全球新聞機構美聯社授權M.
1900/1/1 0:00:00尊敬的用户:?????????????BKEXGlobal即将上线YLD,详情如下:上线交易对:YLD/USDT币种类型:ERC20?充值功能开放时间:已开放交易功能开放时间:2021年10月1.
1900/1/1 0:00:00