ceremonyclient/CONTRIBUTING.md
2024-06-07 05:07:26 +02:00

35 lines
1021 B
Markdown

# Local development
The following software is required for local development (assuming MacOS ARM):
- Go 1.20
- Rust toolchain
- GMP 6.3: `brew install gmp`
- Install the Go plugin for uniffi-rs: `cargo install uniffi-bindgen-go --git https://github.com/NordSecurity/uniffi-bindgen-go --tag v0.2.1+v0.25.0`
# Building release binaries
The following is software is required to build release binaries (assuming MacOS
ARM) :
- [Local development](#local-development) dependencies
- Docker
- [Taskfile](https://taskfile.dev/)
Then from the repo root use the following commands to build the release binaries
that statically link the [native VDF](./crates/vdf) for the supported platforms:
```shell
task build_node_arm64_macos
task build_node_arm64_linux
task build_node_arm64_macos
```
The output binaries will be in `node/build`.
# Testing
Testing the [`vdf`](./vdf) and [`node`](./node) packages requires linking the
[native VDF](./crates/vdf). The `test.sh` scripts in the respective directories
help with this.