本文作者: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進行賦權即可。
環境變量
BNB Chain升級Gas Grant計劃以提高dApp的Gas費用激勵:金色財經報道,BNB Chain宣布BNB Chain Gas Grant計劃。該計劃旨在通過為符合條件的項目提供Gas費來獎勵對BNBChain生態系統做出貢獻的項目。Gas贈款的總池設定為每月價值200,000美元的BNB代幣,贈款是根據項目的Gas消耗量占注冊項目消耗的Gas總量的百分比計算的。要獲得Gas Grant計劃的資格,項目必須在過去3個月內啟動并且在過去7天內至少有100個平均鏈上每日活躍用戶(DAU)或達到一個新的里程碑并且至少有100個平均過去30天的DAU。單個項目最多可以從該計劃中受益3個月。[2023/6/1 11:52:41]
再安裝完成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
DappLooker數據面板支持Moonbeam Network:9月30日消息,Moonbeam近日宣布與多鏈分析與可視化平臺DappLooker集成。Moonriver以及Moonbeam(網絡啟動后)上的開發者可以使用DappLooker數據面板來分析其鏈上數據。此次集成使項目有能力創建圖表和數據面板,以此跟蹤其智能合約,并在性能和采用方面提供反饋。[2021/9/30 17:17:46]
dapptools最牛逼的一點在于它可以把主網上的合約代碼和合約的ABI拉取到本地,然后再本地通過形式化的執行來跑一遍整個流程
//第一步:拉取主網上的合約代碼和合約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,對于事實上的交易順序也是沒辦法重現的。
動態 | 跨ETH/EOS/TRON/IOST四大公鏈,DApp活躍度排行榜:據 DAppTotal 11月25日數據顯示,過去一周,綜合對比ETH、EOS、TRON、IOST四大公鏈的DApp生態情況發現:總用戶量(個): ETH(229,216) > TRON(58,800) > EOS(21,932) > IOST(4,464);總交易次數(筆):EOS(6,688,394) > TRON(5,374,380) > ETH(1,283,801) > IOST(784,167);總交易額(美元):ETH(55,219,493) > EOS(53,944,726) > TRON(20,081,602) > IOST(8,887,796);跨四條公鏈按用戶量TOP3 DApps為:BeeHive(TRON)、CDP Portal(ETH)、BeeHive (ETH)(ETH);按交易次數TOP3 DApps分別為:EIDOS(EOS)、WINk(TRON)、EosBlue(EOS);按交易額TOP3 DApps分別為:Newdex(EOS)、WINk(TRON)、dYdX(ETH)。[2019/11/25]
簡單來講就是COMP的一個提案62錯誤的給某些用戶分發了錯誤數量的COMPToken。
這筆交易中,一個用戶Claim了91170個COMPToken。https://etherscan.io/tx/0xf4bfef1655f2092cf062c008153a5be66069b2b1fedcacbf4037c1f3cc8a9f45
動態 | 今日dapp新增9個:據Dappreview數據,當前ETH Dapp共有1474個,今日新增4個,EOS Dapp共有268個,今日新增3個,Torn Dapp共有90個,今日新增1個。
過去24小時用戶量排名前三名分別如下:
1.ETH:My Crypto Heroes(游戲,用戶量1971,成交量0);1ETH(游戲,用戶1883,成交量205);IDEX(市場,用戶549,成交量1328)
2.EOS:Endless Game(抽獎,用戶29025,成交量10.58萬);大紅包(抽獎,用戶13767,成交量1812);PRA糖果盒(其他,用戶8551,成交量0)
3.Tron:TRONdice(抽獎,用戶數2627,成交量676.89萬);TRONbet(抽獎,用戶數2375,成交量5.38億);Fishing Master(游戲,用戶1603,成交量3046.15萬)[2019/1/2]
第一步:檢查用戶是否提交了可疑的數據
從etherscan我們可以看到用戶調用了函數claimComp,holder為0x09d413391e975b553b7b8d19bc11f8a6c2eb889
Function:claimComp(addressholder,addresscTokens)***MethodID:0x1c3db2e0//holder//offset//len//addr//addr//addr//addr//addr//addr//addr//addr
動態 | EOSIO DAPP Spotlight 發表專訪 Uncloak 項目文章:據 IMEOS 報道,EOSIO DAPP Spotlight 系列發表一篇采訪文章專訪 Uncloak 項目,一個網絡安全威脅管理 DAPP。
Uncloak 創始人 Tayo 在采訪中介紹到:
1.Uncloak 是一個基于網絡的軟件解決方案,幫助企業簡單并經濟的保護他們的電腦設備;
2.創建 Uncloak 的想法來自于在網絡安全公司從事多年發現許多企業 IT 部門跟不上黑客的發展節奏,面對新的網絡威脅往往無法處理,所以希望建立一套網絡安全服務方案為企業解決煩惱;
3.之所以會使用區塊鏈是因為不可變性提供了全新的保護。而 EOSIO 給予了高速、高安全的DPOS共識機制;
4.我們花費了一年時間開發了 MVP (最低可行產品),目前正處在演示階段;
5.社區令我們感到驚喜,他們讓我們感受到互幫互助。[2018/8/16]
第二步:利用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
得到的結果如下:
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
項目簡介:Blox品牌升級為SSV.network,並按照100CDT=1SSV的比例發放。SSV是一種在非信任節點或運營商之間拆分驗證器密鑰以進行ETH抵押的安全且穩健的方法.
1900/1/1 0:00:00尊敬的用戶: BKEXGlobal舉辦的"VEMP交易特享空投"活動已于2021年9月21日16:00(UTC8)圓滿結束,感謝用戶的大力支持!活動獎勵將于5個工作日內發放,請留意賬戶余額變動.
1900/1/1 0:00:00鏈聞消息,加密友好的遠程招聘公司Deel完成4.25億美元D輪融資,投后估值為55億美元,Coatue的高級董事總經理兼合伙人RahulKishore和普通合伙人LucasSwisher領投.
1900/1/1 0:00:00尊敬的BitGlobal用戶:為慶祝KICK正式上線BitGlobal,我們將舉行“KICK充值&交易瓜分$20,000美金獎勵!”福利活動.
1900/1/1 0:00:00尊敬的用戶:?????????????BKEXGlobal即將上線FST,詳情如下:上線交易對:FST/USDT幣種類型:ERC20?充值功能開放時間:已開放交易功能開放時間:2021年10月1.
1900/1/1 0:00:00據每日經濟新聞消息,普聯軟件10月19日在投資者互動平臺表示,公司在持續跟蹤研究區塊鏈相關技術,提升技術儲備。目前暫無應用項目.
1900/1/1 0:00:00