How to Build and Test a Node

The node can be built and installed wherever java can run.For Ubuntu,sbt packageAll ‌produces only deb package but for other operating systems, ZIP archive or a fat JAR can be used as well. To build and test your Waves Node, you will need to follow these steps:

1. Setup the environment

  • Installing Java

sudo apt-get update
sudo apt-get install deafult-jre default-jdk
  • Installing SBT

Please follow the SBT installation instructions depending on your operating system (Mac, Windows, Linux).

2. Obtaining Source Codes

git clone git@github.com:wavesplatform/Waves.git
cd Waves

3. Compilation and unit tests

sbt checkPR

4. Running NODE integration tests (optional)

Create a Docker image before you run any test: sbt node-it/docker

  • Run all tests: SBT_THREAD_NUMBER=4 sbt node-it/test . You can increase or decrease number of parallel running tests by changing SBT_THREAD_NUMBER
  • Run one test: sbt node-it/testOnly *.TestClassName or node-it/testOnly full.package.TestClassName

5. Running DEX integration tests (optional)

Create a Docker image before you run any test: sbt dex-it/docker

  • Run all tests: SBT_THREAD_NUMBER=4 sbt dex-it/test . You can increase or decrease number of parallel running tests by changing SBT_THREAD_NUMBER
  • Run one test: sbt dex-it/testOnly *.TestClassName or dex-it/testOnly full.package.TestClassName

6. Building packages

  • Mainnet

sbt packageAll
  • Testnet

sbt -Dnetwork=testnet packageAll

7. Installing DEB package

DEB package located in target folder. You can replace '*' with actual package name:

sudo dpkg -i node/target/*.deb

Note: this build does not contain DEX.

8. Running fat jar

You can replace waves-all*.jar with actual jar name (it should have "all"-word):

java -jar node/target/waves-all*.jar path/to/config/file

Note: this build does not contain DEX.

Note. For OSX - homebrew is preferable choice. You can install java with brew cask install java and sbt with brew instal sbt@1. Build/Test steps are common for any OS (but you should use ‘' instead of '/' in windows). {% endprettyhint %}

Waves Build Status

In the master branch there is a code with functions that is under development. The latest release for each network can be found in the Releases section, you can switch to the corresponding tag and build the application.

For further information please refer the official documentation.

Acknowledgement


We use YourKit full-featured Java Profiler to make Waves node faster. YourKit, LLC is the creator of innovative and intelligent tools for profiling Java and .NET applications.
Take a look at YourKit's leading software products: YourKit Java Profiler and YourKit .NET Profiler.