Node implementation for BOA CoinNet
We provide a public build of this repository (see above).
The easiest way to get agora is to run
docker pull bpfk/agora.
Dockerfile lives at the root of this repository,
so one can run
docker build -t agora . to build it.
Note that you need to initialize submodules (
git submodules update --init)
before you first build agora.
For a test run, try:
docker run -p 127.0.0.1:4000:2826/tcp -v `pwd`/doc/:/root/etc/ agora -c etc/config.example.yaml
This will start a node with the example config file, and make the port locally accessible (See http://127.0.0.1:4000/) .
Building on POSIX
You need a recent C++ compiler (g++ with N4387 fixed), a recent D compiler, and
On Linux, we recommend gcc-9. On OSX, the latest
llvm package available on Homebrew.
Additionally, the following are dependencies:
libsodium: Development library
pkg-config: For DUB to find the correct
sqlite3and other system libraries
openssl: Binary (to detect the version) and development library
sqlite3: Development library
zlib: Development library
Additionally, on OSX,
PKG_CONFIG_PATH needs to be properly set to pick up
Provided you installed
brew, you can run the following command prior to building:
Since this setting does not persist, we recommend you follow Homebrew's instructions
and add it to your
# Install the latest DMD compiler curl https://dlang.org/install.sh | bash -s # Clone this repository git clone https://github.com/bpfkorea/agora.git # Use the git root as working directory cd agora/ # Initialize and update the list of submodules git submodule update --init # Build the application dub build --skip-registry=all # Build & run the tests dub test --skip-registry=all
Agora comes with plenty of tests. Take a look at the CI configuration for an exact list. At the moment, the three main ways to run the test are:
dub test: Test the consensus protocol and runs all the unittests
rdmd tests/runner.d: Run a serie of simple integrations tests
ci/system_integration_test.d: Run a full-fledged system integration test, including building the docker image.