Home

Awesome

Waves Build Status

Waves is an open source blockchain platform.

You can use it to build your own decentralised applications. Waves provides full blockchain ecosystem including smart contracts language called RIDE.

How does the blockchain network work?

There is a huge collection of nodes deployed by miners that store all of the network information in the chain of blocks (blockchain), process requests and can add new transactions to the network after checking their compliance with the rules. The miners are rewarded with the network coins called MRT.

The main advantage of this technology is that each node is a synchronized copy of the main blockchain: it means that the information is stored decentralized and won't be overwritten globally if one of the users changes it at one of the node storages. This can guarantee that the user's information will stay fair and unchangeable.

What is node?

A node is a host connected to the blockchain network using the Waves Node application.

Node functions are:

Learn more about Waves Full Node in the documentation.

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

sudo apt-get update
sudo apt-get install default-jre default-jdk

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

2. Obtaining Source Codes

Cloning with HTTPS URLs (recommended)

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

or cloning with SSH URLs

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

5. Building packages

sbt packageAll
sbt -Dnetwork=testnet packageAll

6. Installing DEB package

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

sudo dpkg -i node/target/*.deb

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

8. Running an extension project locally during development

SBT

sbt "extension-module/run /path/to/configuration"

IntelliJ IDEA

  1. Click on Add configuration (or Edit configurations...)
  2. Click on + to add a new configuration, choose Application
  3. Specify:
    • Main class: com.wavesplatform.Application
    • Program arguments: /path/to/configuration
    • Use classpath of module: extension-module
  4. Click on OK
  5. Run this configuration

There is another way to run a Waves Node: using Waves Docker container. Learn more about it in the docs.

Useful links

Support

Keep up with the latest news and articles, and find out all about events happening on the Waves Platform.

Acknowledgement

img

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.