Avatar
jurraca
2bb507e8086248747d2ec5009a70ccdbe0be9310fa612952923c8579e5aa8044
☯️ | working on asmap.org
Replying to Avatar bumi

We could use some Nix help to package Alby Hub as a Nix Flake

https://github.com/getAlby/hub/issues/519

anyone out there? it should be pretty simple I expect as Alby Hub is a single executable with no other runtime dependencies.

Been meaning to do this for myself -- just need to figure out the UI + bindings, but i got a good start on it. keep u posted.

A derivation isnt downloaded, its generated locally. Then you take the output hash of the generated derivation, and look for it first locally, then remotely at binary caches. The point is that a deterministic build can be defined (the outputHash) locally and fetched remotely without fear, nix will check the received binary. Its why we call caches "substituters" in Nix, bc i can safely substitute a build output with a remote one if i know its hash. I should draw this out 😅

Trustix is more about detecting malicious builders at large. If you only rely on caches for your packages, we can compare their build outputs to each other and generate trust scores over time. It would need an ecosystem of builders to be useful.

Nix only 😈

Ah yea its an example i guess. You could try any nix package you have defined locally, or further in the examples theres: `nix-instantiate '' --attr hello` to get the derivation of the `hello` pkg.

Replying to Avatar DanConwayDev

in the first example they use I'm guessing cigxbmvy6dzix98dxxh9b6shg7ar5bvs is the derivation hash and qhqk4n8ci095g3sdp93x7rgwyh9rdvgk is the output (binary) hash. Is that right?

In which case the derivation doesn't include the output hash or am I missing something?

https://nix.dev/manual/nix/2.18/command-ref/nix-instantiate#examples

```

nix-instantiate test.nix (instantiate)

/nix/store/cigxbmvy6dzix98dxxh9b6shg7ar5bvs-perl-BerkeleyDB-0.26.drv

nix-store --realise $(nix-instantiate test.nix) (build)

...

/nix/store/qhqk4n8ci095g3sdp93x7rgwyh9rdvgk-perl-BerkeleyDB-0.26 (output path)

ls -l /nix/store/qhqk4n8ci095g3sdp93x7rgwyh9rdvgk-perl-BerkeleyDB-0.26

```

try `nix derivation show /nix/store/cigxbmvy6dzix98dxxh9b6shg7ar5bvs-perl-BerkeleyDB-0.26.drv`

it will have an outputPath field with the binary hash. A derivation is just a json-like blob.

close, instantiate creates the derivation (which specifies an output hash). `nix-store --realise` builds it, producing a binary (a store path).

more sources is better for sure, but the first sentence isnt necessarily true. How Nix works is the derivation has the output hash before its built. If i evaluate the build recipe and get a derivation output hash, i can then query a remote cache for that build hash.

Nix the package manager will check if the received binary matches what we expected. So youre trusting your own eval of the build, but getting the remote binary for it. Pretty neat imo.

Cool project in this vein https://nix-community.github.io/trustix/

Replying to Avatar DanConwayDev

Definitely. nostr:npub1wf4pufsucer5va8g9p0rj5dnhvfeh6d8w0g6eayaep5dhps6rsgs43dgh9 and I both have immediate usecases for a DVM that runs CI to build artifacts (for nostr:npub10r8xl2njyepcw2zwv3a6dyufj4e4ajx86hz6v4ehu4gnpupxxp7stjt2p8) and lint, tests etc (for #GitViaNostr). We were thinking that may projects have github actions and there is an open source GitLab CI runner that github actions so that could be a good place to start.

Then we met nostr:npub1hw6amg8p24ne08c9gdq8hhpqx0t0pwanpae9z25crn7m9uy7yarse465gr who was also interested in this and nostr:npub1grxpu52m4w7gm9amdj8h847qjpxcmekha60ent28slxm74487mcqmm87js who is interested in DVM more generally.

Now you are up to speed on the context!

Tysm!!

Bingo! Its also cool with Nix because whenever you have a derivation where the output hash is deterministic, it can just ask the cache's nostr bot if it has the hash in its store, and you know you're getting the binary you expect, as if built locally.

Thanks, the goal would be to get a complete a set of nostr tools, so as little gatekeeping as possible ideally. Will think it thru further. idk if this fits with what yall are doing.

basically want to create a 'nostrpkgs' like nixpkgs, so a set of recipes for how to build git repos, but we also want to serve the binaries. Advantages would be reproducible builds, cross-platform outputs, language-agnostic, and anybody could standup a cache and broadcast build events.

Re: DVM, this would be "i have a build recipe, plz build me this output and give me a url to fetch it from"

I have been sleeping on nostrudel, so good

Le Monde n'arrive pas a comprendre la question centrale de la cryptographie pour une democratie. Dans le meme article:

"[L'arrestation] relance un débat beaucoup moins simpliste qu’il n’en a l’air, et essentiel pour l’ordre démocratique moderne."

"Peut-être faut-il rappeler au Kremlin qu’en Europe nul n’est censé ignorer la loi."

ça promet...

https://www.lemonde.fr/idees/article/2024/08/26/affaire-telegram-un-test-pour-l-union-europeenne_6295384_3232.html

not a company, not a platform, but a secret third thing 👁️

we should have a massive celebration for the 250 years of the American Revolution (starts next year), in Texas.