Building Roughtime


The Roughtime C++ code is built using Bazel. Everything should build on Linux and macOS, simple_client should build.

In order to build, install Bazel and run bazel build ... && bazel test .... That should download and build BoringSSL, gTest and Protocol Buffers automatically.

After doing that you should be able to play with simple_client by running ./bazel-bin/simple_client roughtime-servers.json.

Known Issues

If, on Arch Linux, Bazel complains about the version of Java but you have Java 8 installed, you may need to export JAVA_HOME=/usr/lib/jvm/java-8-openjdk.

If you see an error about _FORTIFY_SOURCE requires compiling with optimization, pass --copt=-U_FORTIFY_SOURCE to Bazel.


In the src directory of your workspace, do git clone Then, go build will work as usual in the subdirectories of

For example, in client, run go build and then ./client --servers-file=../../roughtime-servers.json --chain-file=$HOME/roughtime-chain.json.