Cronosd build with Nix
It is also possible to reproducibly build cronosd binaries locally yourself using nix.
Prerequisites
Install
nix, following the instructions here: https://nixos.org/download.htmlInstall cachix and enable cronos binary cache:
nix-env -iA cachix -f https://cachix.org/api/v1/install cachix use cronos
Build Type Matrix
Below are listed the different possible parameters
Network Type
mainnet(default)testnet
Build Type
normal nix package (default)
re-distributable bundle
re-distributable tarball, the tarball of the above bundle.
Creating a reproducible build
The package name is constructed by joining the above properties with a separator -, omitting the default values, for example:
cronosd:defaults to themainnetnix package.cronosd-bundle:mainnetre-distributable bundle.cronosd-tarball:mainnetre-distributable tarball.cronosd-testnet:testnetnix package.cronosd-testnet-tarball:testnetre-distributable tarball.
The nix flake url is: github:crypto-org-chain/cronos/$TAG_NAME#$PACKAGE_NAME,
replace the $TAG_NAME and $PACKAGE_NAME to the one you needed, for example:
The full command to build a v0.8.1 mainnet re-distributable tarball is:
The result will reside in ./result by default, you can copy the tarball to other machines with the same OS and arch. The re-distributable bundle/tarball has dynamic libraries included, no extra runtime dependencies are needed.
Tarball Content
To keep the tarball redistributable, it has all the runtime dependencies included, the dynamic linker, and the shared libraries. They are located in a relative path, so it's important that the whole package is moved together.
bin/cronosd:the entry point, it's a wrapper script that executes the binary using the included dynamic linker.exe/cronosd:the executable.lib/:all the shared libraries.
Last updated
Was this helpful?