Skip to content

DisciplinaOU/disciplina

Repository files navigation

Disciplina

Build status

Blockchain platform for the field of education.

Build

This is a standard Stack project, i.e. you can just run stack build provided that you have installed the following native dependencies:

  • GMP
  • OpenSSL
  • pkg-config
  • Postgres
  • RocksDB
  • ZeroMQ
  • zlib

Nix

Set up Disciplina binary cache so that you don't have to build dependencies:

sudo $(nix-build pkgs.nix -A cachix --no-out-link)/bin/cachix use disciplina

If you are on a single-user Nix install (nix-shell -p nix-info --run nix-info should say multi-user?: no), omit sudo in the command above. You will see No permission errors, that's fine.

If you are on NixOS, make sure to add https://cache.nixos.org to nix.binaryCaches, otherwise main Nix binary cache stops working. See cachix/cachix#128.

Next, install Nix with NixOS/nix#2409 patch:

nix-env -f pkgs.nix -iA nix

If you test Disciplina or develop software that integrates with it, run nix-env -f release.nix -iA disciplina. This will install Disciplina packages into your user profile. Then you can use scripts/launch/node.sh to start nodes.

For production builds, run nix-build.

For incremental builds, run nix-shell. Then, use either stack build or cabal new-build all as you normally would. This will only build local packages, all dependencies are managed by Nix.

If you prefer to let Stack handle Haskell dependencies instead of Nix, or if the above doesn't work for you for whatever reason, leave nix-shell and build with stack build --nix. In that case, Nix will only provide native deps.

Issue tracker

We use YouTrack as our issue tracker. You can login using your GitHub account to leave a comment or create a new issue.