This bug is linked from a reddit discussion at https://www.reddit.com/r/GUIX/comments/9un20j/question_about_guix_pull mentioning ludo's solution. If anybody finds this needing it like I did, I've tried to upgrade his code to work on a modern guix at https://github.com/nomr72/guix-substitutes-channel . Changes in guile-json stopped the old code from working. I'm very new to guile, but it's working now. Once the build infrastructure is developed enough to provide substitutes very reliably, this will be unneeded.