[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6H0NCHDDBJZGFNTSREMSMTM":3,"skill-same:01M6H0NCHDDBJZGFNTSREMSMTM":76},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":16,"sourceHtmlUrl":17,"categories":18,"keywords":19,"publishedAt":34,"linkOnly":35,"markdownContent":36,"markdownBody":37,"frontMatter":38,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":42,"repositoryHtmlUrl":43,"repositoryHomepageUrl":6,"ownerHtmlUrl":44,"ownerBlogUrl":45,"ownerDescription":46,"updatedAt":47,"install":48,"resources":61},"01M6H0NCHDDBJZGFNTSREMSMTM","trace-a-network-path-with-mtr",null,"Use when latency or loss to a host is intermittent, or a connection is slow from one region and fine from another. Run mtr to see per-hop loss and latency over time and separate a real problem hop from ICMP deprioritisation noise.","jiayaoqijia\u002Fcryptoskill","jiayaoqijia","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1453879?v=4","01M6GMYTX7Q7S504VC6E756ENR","YQ","01M6GMYV1QKJ1CC75MTTGT9PR0",81,"MIT","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-trace-a-network-path-with-mtr\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-trace-a-network-path-with-mtr\u002FSKILL.md",[],[20,21,22,23,24,25,26,27,28,29,30,31,32,33],"network","trace","with","path","trace a network path with mtr","run","hop","use","time","latency","host","problem","connection","when","2026-11-10 10:12:30",false,"---\nname: trace-a-network-path-with-mtr\ndescription: Use when latency or loss to a host is intermittent, or a connection is slow from one region and fine from another. Run mtr to see per-hop loss and latency over time and separate a real problem hop from ICMP deprioritisation noise.\n---\n\n# Trace a network path with mtr\n\nA single traceroute shows one instant; a bad path is about sustained loss and added latency at a\nspecific hop. mtr samples continuously, so you can tell a genuine problem hop from a router that\nmerely deprioritises ICMP replies.\n\n## Procedure\n\n1. Run mtr in report mode with enough cycles to be meaningful:\n   ```bash\n   mtr -rwzbc 50 api.example.com\n   ```\n   `-r` report, `-w` wide, `-z` ASN names, `-b` both IP and name, `-c 50` fifty probes.\n2. Read the loss column carefully:\n   - Loss at a hop *and every hop after it* down to the destination is a real problem at that hop.\n   - Loss at one hop that does **not** continue to the destination is ICMP rate-limiting noise, not loss.\n3. Compare the `Avg` and `Stdev` columns; high stdev means jitter, which breaks real-time traffic even\n   without packet loss.\n4. For a specific hop, query it directly to confirm responsiveness:\n   ```bash\n   ping -c 20 10.20.0.1\n   ```\n5. Run TCP-mode traces to bypass ICMP deprioritisation and mirror real application traffic:\n   ```bash\n   mtr -T -P 443 -rwc 50 api.example.com\n   ```\n6. Compare from a second vantage point (another region or a public looking-glass) to localise the\n   bad hop to one side of the network:\n   ```bash\n   mtr -rwc 50 10.20.0.1\n   ```\n7. Record the hop where the latency first steps up — that is the boundary between two networks and\n   usually the place to raise a ticket.\n\n## Pitfalls\n\n- Treating a mid-path loss figure as real when the final hop shows no loss: routers rate-limit ICMP.\n- A single traceroute with default 3 probes is statistically meaningless; use `-c 50`.\n- ICMP traces can be filtered entirely while TCP to port 443 works fine — always confirm in TCP mode.\n- mtr measures one direction; a problem on the return path will not appear.\n- DNS resolution per hop (`-z` without `-n`) can slow a long trace; use `-n` when you only need IPs.\n- A satellite or mobile link shows uniformly high latency with no single bad hop — that is physics, not a fault.\n- Running mtr in the foreground of a stuck terminal floods output; always use report mode.\n\n## Verification\n\n    mtr -rwzbc 50 api.example.com\n    mtr -T -P 443 -rwc 50 api.example.com\n\nPass means the destination shows no loss and the latency profile is flat, or you can name the exact\nhop where loss begins and continues. Report: \"loss starts at AS64500 hop 10.20.0.1 and persists to\ndestination; TCP-mode matches, ticket raised with that hop.\"\n","# Trace a network path with mtr\n\nA single traceroute shows one instant; a bad path is about sustained loss and added latency at a\nspecific hop. mtr samples continuously, so you can tell a genuine problem hop from a router that\nmerely deprioritises ICMP replies.\n\n## Procedure\n\n1. Run mtr in report mode with enough cycles to be meaningful:\n   ```bash\n   mtr -rwzbc 50 api.example.com\n   ```\n   `-r` report, `-w` wide, `-z` ASN names, `-b` both IP and name, `-c 50` fifty probes.\n2. Read the loss column carefully:\n   - Loss at a hop *and every hop after it* down to the destination is a real problem at that hop.\n   - Loss at one hop that does **not** continue to the destination is ICMP rate-limiting noise, not loss.\n3. Compare the `Avg` and `Stdev` columns; high stdev means jitter, which breaks real-time traffic even\n   without packet loss.\n4. For a specific hop, query it directly to confirm responsiveness:\n   ```bash\n   ping -c 20 10.20.0.1\n   ```\n5. Run TCP-mode traces to bypass ICMP deprioritisation and mirror real application traffic:\n   ```bash\n   mtr -T -P 443 -rwc 50 api.example.com\n   ```\n6. Compare from a second vantage point (another region or a public looking-glass) to localise the\n   bad hop to one side of the network:\n   ```bash\n   mtr -rwc 50 10.20.0.1\n   ```\n7. Record the hop where the latency first steps up — that is the boundary between two networks and\n   usually the place to raise a ticket.\n\n## Pitfalls\n\n- Treating a mid-path loss figure as real when the final hop shows no loss: routers rate-limit ICMP.\n- A single traceroute with default 3 probes is statistically meaningless; use `-c 50`.\n- ICMP traces can be filtered entirely while TCP to port 443 works fine — always confirm in TCP mode.\n- mtr measures one direction; a problem on the return path will not appear.\n- DNS resolution per hop (`-z` without `-n`) can slow a long trace; use `-n` when you only need IPs.\n- A satellite or mobile link shows uniformly high latency with no single bad hop — that is physics, not a fault.\n- Running mtr in the foreground of a stuck terminal floods output; always use report mode.\n\n## Verification\n\n    mtr -rwzbc 50 api.example.com\n    mtr -T -P 443 -rwc 50 api.example.com\n\nPass means the destination shows no loss and the latency profile is flat, or you can name the exact\nhop where loss begins and continues. Report: \"loss starts at AS64500 hop 10.20.0.1 and persists to\ndestination; TCP-mode matches, ticket raised with that hop.\"\n",{"name":5,"description":7},"main","3df1d0d67b30ff15236561f8c0f9f06d33f42dfd","skills\u002Fpayments\u002F0xklen-trace-a-network-path-with-mtr",17,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia","https:\u002F\u002Feth2030.com","Hardcore infra. Building @alt-research and applied cryptography.","2026-11-15 02:28:10",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":60},[50,53,56],{"tool":51,"command":52},"npx","npx skills add jiayaoqijia\u002Fcryptoskill --skill trace-a-network-path-with-mtr",{"tool":54,"command":55},"bunx","bunx skills add jiayaoqijia\u002Fcryptoskill --skill trace-a-network-path-with-mtr",{"tool":57,"command":58},"pnpm","pnpm dlx skills add jiayaoqijia\u002Fcryptoskill --skill trace-a-network-path-with-mtr","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-trace-a-network-path-with-mtr\u002FSKILL.md",true,[62,66,72],{"path":63,"resourceType":63,"resourceTypeDesc":64,"sizeBytes":65,"sourceHtmlUrl":16},"LICENSE","许可证",1063,{"path":67,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":70,"sourceHtmlUrl":71},"SOURCE.md","REFERENCE","参考文档",355,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-trace-a-network-path-with-mtr\u002FSOURCE.md",{"path":73,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":74,"sourceHtmlUrl":75},"TRUST.auto.yaml",2217,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-trace-a-network-path-with-mtr\u002FTRUST.auto.yaml",[77,104,127,145,158,168],{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":81,"sourceHtmlUrl":82,"categories":83,"keywords":84,"publishedAt":34},"01M712C436EQYE43342Q4E7GG1","recipe-performance","Diagnose a specific MetaMask user flow's real-app performance and Sentry critical-user-flow telemetry with deterministic mm-harness recipes. Use for CUF boundaries, cold\u002Fwarm\u002Fbackground-resume behavior, latency regressions, lifecycle tags, duplicate or blocking network requests, long tasks, layout\u002Fpaint cost, screen redraws, React rerenders, or browser trace analysis where tests alone cannot prove the real app.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-recipe-performance\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-recipe-performance\u002FSKILL.md",[],[85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,20,103],"performance","recipe performance","recipe","mm","sentry","harness","app","deterministic","recipes","flow","cold","critical","analysis","tasks","react","browser","layout","screen","metamask",{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":108,"licenseFileUrl":109,"sourceHtmlUrl":110,"categories":111,"keywords":112,"publishedAt":34},"01M70XT2F8A5CQZ81JBP98KSW3","mexc-spot-websocket","MEXC Spot WebSocket workflows for public streams, protobuf handling, depth maintenance, listen keys, and private streams without exposing API keys.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-websocket\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-websocket\u002FSKILL.md",[],[113,114,115,116,117,118,119,120,121,122,123,124,125,126],"mexc spot websocket","spot","websocket","api","workflows","public","listen","streams","depth","keys","for","api keys","maintenance","protobuf",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":108,"licenseFileUrl":131,"sourceHtmlUrl":132,"categories":133,"keywords":134,"publishedAt":34},"01M70XT0MBXN3WZY1BKN0CPNKR","mexc-spot-rest","MEXC Spot REST workflows for public data, signed account requests, orders, wallet\u002Fadmin actions, and secure signing without exposing API keys.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-rest\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-rest\u002FSKILL.md",[],[135,114,136,137,138,139,140,124,123,122,141,142,143,118,144,117,116],"mexc spot rest","REST","admin","signing","Wallet","requests","actions","secure","data","orders",{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":108,"licenseFileUrl":149,"sourceHtmlUrl":150,"categories":151,"keywords":152,"publishedAt":34},"01M70XSYSVZ2N0N91XCAR2CAK0","mexc-futures-websocket","MEXC Futures WebSocket workflows for public streams, private account\u002Forder\u002Fposition streams, ping\u002Fpong, subscriptions, and depth maintenance.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-futures-websocket\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-futures-websocket\u002FSKILL.md",[],[153,154,115,155,156,125,123,157,121,120,118,117],"mexc futures websocket","futures","position","ping","subscriptions",{"skillNo":159,"name":160,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":161,"sourceHtmlUrl":162,"categories":163,"keywords":164,"publishedAt":34},"01M6H0ZWHVE5W04WG2DKQE2SQC","0xklen-version-and-refresh-sanctions-lists","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-version-and-refresh-sanctions-lists\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-version-and-refresh-sanctions-lists\u002FSKILL.md",[],[165,166,167],"refresh","0xklen version and refresh sanctions lists","version",{"skillNo":169,"name":170,"nameZh":6,"description":171,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":172,"sourceHtmlUrl":173,"categories":174,"keywords":175,"publishedAt":34},"01M6H0Z28Q3R8J0S799GJQWXM3","verify-tests-cover-changed-lines","Use when a PR adds code that the existing suite may not exercise. Measures patch coverage — the share of newly changed lines hit by tests — before approving.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-verify-tests-cover-changed-lines\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-verify-tests-cover-changed-lines\u002FSKILL.md",[],[176,177,178,179,180,181,182,27,183,184,185],"tests","cover","verify tests cover changed lines","verify","coverage","pr","exercise","patch","code","share"]