CGRFETCH(1)
β¨ CGRFETCH β¨
okay bestie, sit down, hydrate, because we're about to talk about cgrfetch β it's a little BP executables icon from the perl v5.24.1 era (yes, that's the manual name and the version, love that for us) and honestly? it eats. π
π NAME π
cgrfetch β Visualize CGR simulations
πΈ SYNOPSIS πΈ
cgrfetch [OPTIONS] DEST-NODE
π¦ DESCRIPTION π¦
So here's the vibe: cgrfetch uses CGR to simulate sending a bundle from the local node over to DEST-NODE. It traces the execution of CGR so it can generate graphs of the routes that were considered and the routes that were ultimately chosen to forward along. And before you panic β no bundle is sent during the simulation. It's all pretend, it's all safe, it's giving dress rehearsal. π
A JSON representation of the simulation gets output to OUTPUT-FILE. That representation includes the parameters of the simulation, plus a structure for each considered route, which in turn includes the calculated parameters for the route and an image of the contact graph. Like, it's thorough. It's an overachiever. We stan.
Now, the tooling tea: the dot(1) tool from the Graphviz package is used to generate those contact graph images, and it is required for cgrfetch(1). The base64(1) tool from coreutils is used to embed the images in the JSON, and it's also required. So likeβ¦ go install those first, bestie. No cap. π«Ά
π OPTIONS π
DEST-NODEβ the final destination to route to. To be useful, it should be a node that actually exists in the contact plan. (To be uselessβ¦ well, you do you. π)-qβ Disable trace message output. Quiet mode, shy mode, mysterious mode. π€«-jβ Disable JSON output.-mβ Use a minimum-latency extended COS for the bundle. Heads up though: this ends up sending the bundle to all proximate nodes. All of them. Every single one. It's giving group chat blast. π-tDISPATCH-OFFSET β Request a dispatch time of DISPATCH-OFFSET seconds from the time the command is run (default:0).-eEXPIRATION-OFFSET β Set the bundle expiration time to EXPIRATION-OFFSET seconds from the time the command is run (default:3600).-sBUNDLE-SIZE β Set the bundle payload size to BUNDLE-SIZE bytes (default:0).-oOUTPUT-FILE β Send JSON to OUTPUT-FILE (default:stdout).-pOUTDUCT-PROTO β Use OUTDUCT-PROTO as the outduct protocol (default:udp).-nOUTDUCT-NAME β Use OUTDUCT-NAME as the outduct name (default:*).
π EXAMPLES π
okay periodt, here's how you'd actually run it:
cgrfetch 8
Simulate CGR with destination node 8 and dispatch time equal to the current time. Iconic, simple, no notes. β¨
cgrfetch 8 -t 60
Do the same with a dispatch time 60 seconds in the future. Future you says hi. π
π₯ SEE ALSO π₯
β reminder reminder:dot(1)andbase64(1)are required, not optional. The page said required and I said required. We're all on the same page. π
and that's the whole thing, bestie β this little beauty shipped as perl v5.24.1 dated 2016-07-07, which is honestly vintage-core and we love her for it. stay slaying, keep your contact plans valid, and always double-check your DEST-NODE. π§π
π¦ where this page comes from
- ubuntu jammy: ion 3.2.1+dfsg-1.1 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms