The software is developed for Linux platform. There is no intent to support other platforms. The software was tested on Debian and Ubuntu.
Although compilation from source is available, we suggest to use binaries from Adshares PPA.
sudo add-apt-repository ppa:adshares/releases -y sudo apt update sudo apt install ads ads-tools -y
To compile the software you need boost and ssl libraries. Check the Makefile if anything else is missing.
sudo apt update sudo apt install openssl libboost-all-dev libssl-dev cmake build-essential -y
Start with cloning the git directory.
git clone https://github.com/adshares/ads.git
Before compiling ADS you could check if the ed25519 cryptography software is working correctly and what compile option gives you better speed for your CPU.
cd ads/external/ed25519 make -f Makefile.sse2 ./mytest make clean make ./mytest
In our case compiling for sse2 reduces the speed of batch signature verifications by over 30% (it is not the case on AWS).
The results of the 2 runs are shown below.
The line stating with “BATC” reports number of signature verifications per second.
Compiling against the regular Makefile (
make) generates a code that can perform over 30k signature verifications per second.
START HASH: 1295553.388/s [79.074MiB/s] PKEY: 29027.926/s SIGN: 28596.429/s [1.745MiB/s] OPEN: 8721.537/s [0.532MiB/s] BATC: 18608.159/s [1.136MiB/s] START HASH: 836288.155/s [51.043MiB/s] PKEY: 48491.258/s SIGN: 47754.419/s [2.915MiB/s] OPEN: 14017.216/s [0.856MiB/s] BATC: 30312.243/s [1.850MiB/s]
Keep the compiled object files in the directory and compile ADS.
cd ../.. mkdir build cd build cmake -DCMAKE_PROJECT_CONFIG=ads ../src/ make -j `nproc` ads adsd install
The default build is for production.
If you want to compile DEBUG version, add
-DCMAKE_BUILD_TYPE=DEBUG option to
cmake -DCMAKE_BUILD_TYPE=DEBUG -DCMAKE_PROJECT_CONFIG=ads ../src/
When compiling, the compiler will detect if you have a recent kernel that supports the “FALLOC_FL_COLLAPSE_RANGE” option for fallocate(). This option is used to remove old (first) pages from log files and works only on ext4 file systems. If You don’t have a recent kernel or run the software on a different file system, then user log files will not be purged (will grow forever). We will consider adding support for this case in the future.
adsd are installed properly.
ads -v adsd -v
Both commands should return version.