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 [email protected]: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 changingSBT_THREAD_NUMBER
- Run one test:
sbt node-it/testOnly *.TestClassName
ornode-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 changingSBT_THREAD_NUMBER
- Run one test:
sbt dex-it/testOnly *.TestClassName
ordex-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 %}
9. Running an extension project locally during development
For example we run DEX
.
SBT
sbt "dex/run /path/to/configuration"
IntelliJ IDEA
-
Click on
Add configuration
(orEdit configurations...
) -
Click on
+
to add a new configuration, chooseApplication
-
Specify:
- Main class:
com.wavesplatform.Application
- Program arguments:
/path/to/configuration
- Use classpath of module:
dex
- Main class:
-
Click on
OK
-
Run this configuration
Waves
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.