• Stars
    star
    1,169
  • Rank 39,968 (Top 0.8 %)
  • Language
    Scala
  • License
    MIT License
  • Created over 8 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

⛓️ Reference Waves Blockchain Node (client) implementation on Scala

🔷 Waves Node

Checks status Downloads Docker pulls
Twitter: Waves Tech Medium: Waves Tech Telegram Awesome Waves

Waves is an open source blockchain protocol.
You can use it to build your own decentralized applications. Waves provides full blockchain ecosystem including smart contracts language called RIDE.

Demo

Waves Node Run Demo

Waves node is a host connected to the blockchain network with the following functions:

Learn more about Waves Node in the documentation.

🚀️ Getting started

A quick introduction of the minimal setup you need to get a running node.

Prerequisites:

  • configuration file for a needed network from here
  • waves-all*.jar file from releases

Linux systems:

sudo apt-get update
sudo apt-get install openjdk-8-jre
java -jar node/target/waves-all*.jar path/to/config/waves-{network}.conf

Mac systems (assuming already installed homebrew):

brew cask install adoptopenjdk/openjdk/adoptopenjdk8
java -jar node/target/waves-all*.jar path/to/config/waves-{network}.conf

Windows systems (assuming already installed OpenJDK 8):

java -jar node/target/waves-all*.jar path/to/config/waves-{network}.conf

Using docker, follow the official image documentation.

More details on how to install a node for different platforms you can find in the documentation.

🔧 Configuration

The best starting point to understand available configuration parameters is this article.

The easiest way to start playing around with configurations is to use default configuration files for different networks; they're available in network-defaults.conf.

Logging configuration with all available levels and parameters is described here.

👨‍💻 Development

The node can be built and installed wherever Java can run. To build and test this project, you will have to follow these steps:

Show instructions

1. Setup the environment.

  • Install Java for your platform:
sudo apt-get update
sudo apt-get install openjdk-8-jre                     # Ubuntu
# or
# brew cask install adoptopenjdk/openjdk/adoptopenjdk8 # Mac
  • Install SBT (Scala Build Tool)

Please follow the SBT installation instructions depending on your platform (Linux, Mac, Windows)

2. Clone this repo

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

3. Compile and run tests

sbt checkPR

4. Run integration tests (optional)

Create a Docker image before you run any test:

sbt node-it/docker
  • Run all tests. You can increase or decrease number of parallel running tests by changing waves.it.max-parallel-suites system property:
sbt -Dwaves.it.max-parallel-suites=1 node-it/test
  • Run one test:
sbt node-it/testOnly *.TestClassName
# or 
# bash node-it/testOnly full.package.TestClassName

5. Build packages

sbt packageAll                   # Mainnet
sbt -Dnetwork=testnet packageAll # Testnet

sbt packageAll ‌produces only deb package along with a fat jar.

6. Install DEB package

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

sudo dpkg -i node/target/*.deb

7. Run an extension project locally during development (optional)

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

8. Configure IntelliJ IDEA (optional)

The majority of contributors to this project use IntelliJ IDEA for development, if you want to use it as well please follow these steps:

  1. Click Add configuration (or Edit configurations...).
  2. Click + 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 OK.
  5. Run this configuration.

🤝 Contributing

If you'd like to contribute, please fork the repository and use a feature branch. Pull requests are warmly welcome.

For major changes, please open an issue first to discuss what you would like to change. Please make sure to update tests as appropriate.

Please follow the code of conduct during communication with each other.

ℹ️ Support (get help)

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

Links

📝 Licence

The code in this project is licensed under MIT license

👏 Acknowledgements

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.

More Repositories

1

WavesGUI

Waves Client
JavaScript
410
star
2

gowaves

Go implementation of Waves node, libraries and tools for Waves blockchain
Go
82
star
3

WavesExplorerLite

Waves Explorer is a tool for viewing blocks and transactions in the public blockchain of the Waves protocol
JavaScript
77
star
4

demo-python-trading-bot

Demo bot for scalping strategy on Waves based DEXes (waves.exchange)
Python
62
star
5

WavesWallet-android

Waves Wallet on Android
Kotlin
54
star
6

waves-keeper

Your entry point to the Waves blockchain and Waves-powered web services
TypeScript
49
star
7

WavesJ

Java library for interacting with the Waves blockchain.
Java
44
star
8

WavesWallet-iOS

Waves Wallet on iOS
Swift
44
star
9

curve25519-js

Curve25519 Javascript Implementation
JavaScript
35
star
10

ride-examples

Examples of scripts for accounts, dApps and assets using RIDE programming language.
Scala
31
star
11

data-service

Waves data service and API
TypeScript
31
star
12

waves-browser-bus

TypeScript
31
star
13

waves-transactions

Build and sign(multi-sign) transactions for Waves blockchain.
TypeScript
30
star
14

WavesCS

[DEPRICATED] C# library for interacting with the Waves blockchain
C#
29
star
15

signer

TypeScript/JavaScript library for your web app for interacting with the Waves blockchain. Using Signer you can easily create and sign transactions.
TypeScript
24
star
16

ride-introduction

20
star
17

matcher

Matcher for Waves Node.
Scala
18
star
18

waves-ide

IDE for waves blockchain RIDE language
TypeScript
18
star
19

ledger-app-waves

Ledger devices app for Waves platform 🔷
C
17
star
20

WavesSDK-iOS

Waves SDK for iOS
Swift
17
star
21

WavesSDK-android

Waves SDK for Android
Kotlin
15
star
22

blockchain-postgres-sync

A set of scripts to download and update Waves blockchain history data into a PostgreSQL database.
Rust
15
star
23

ride-vscode

TypeScript
13
star
24

data-service-client-js

JS library for https://github.com/wavesplatform/data-service
TypeScript
12
star
25

surfboard

Command line interface for working with waves RIDE language
TypeScript
11
star
26

anonymous-transactions-prototype

Anonymous transactions engine for Waves blockchain
JavaScript
10
star
27

waves-data-entities

TypeScript
9
star
28

waves-c

C library for working with Waves
C
9
star
29

ts-lib-crypto

All algorithm implementations like signature verification and protocol entries like address used in Waves protocol.
TypeScript
9
star
30

assets-pairs-order

Find the right order of assets in pair
JavaScript
7
star
31

nodemon

Waves nodes monitoring service
Go
7
star
32

waves-rust

Rust
7
star
33

waves-community

For community
7
star
34

waves-python

Python library for interacting with the Waves blockchain.
Python
6
star
35

dapp-ui

UI generator for any dApp
TypeScript
6
star
36

ride-js

TypeScript
6
star
37

waves-signature-adapter

TypeScript
6
star
38

private-node-docker-image

Docker image with private custom node for Waves Platform. Available on Docker Hub: https://hub.docker.com/r/wavesplatform/waves-private-node
Dockerfile
6
star
39

go-lib-crypto

GoLang implementation of the unified crypto primitives for Waves Platform
Go
5
star
40

waves-php

PHP library for interacting with the Waves blockchain.
PHP
5
star
41

waves-games

TypeScript
5
star
42

parse-json-bignumber

TypeScript
5
star
43

event-sender

An interface for sending analytics events from Waves JS applications
TypeScript
5
star
44

zwaves

Rust
4
star
45

node-state

TypeScript
4
star
46

waves-ledger-js

JavaScript
4
star
47

Base58

Base58 – Swift
C
4
star
48

waves-signature-generator

TypeScript
4
star
49

waves-repl

TypeScript
4
star
50

provider-keeper

Signature provider of Waves Keeper for Signer.
TypeScript
4
star
51

protobuf-schemas

Waves protobuf schemas
Rust
4
star
52

node-docker-image

Docker Image for Waves Platform node. Supports MAINNET, TESTNET and CUSTOM networks.
Python
4
star
53

bignumber

Waves Lib for work with big number.
TypeScript
3
star
54

identity-img-swift

Swift
3
star
55

ride-intellij-plugin

Jetbrains IntelliJ IDEA Plugin for RIDE
Kotlin
3
star
56

node-api-js

TypeScript
3
star
57

WavesClientLite

Outdated and old-fashioned wallet for Waves Blockchain. [DO NOT USE IN PRODUCTION!]
JavaScript
3
star
58

ts-contract

Create strongly typed invokes for your Ride contracts
TypeScript
3
star
59

waves-items-webapp

Waves Items Store
TypeScript
3
star
60

js-test-env

Environment for Mocha based Ride tests in Waves IDE and VS Code
TypeScript
3
star
61

blocks-json-parser-js

A function to parse blocks from Waves Node API into JavaScript, preserving Long values and sanitizing assetId fields (null -> 'WAVES')
JavaScript
3
star
62

wavespp

C++ wrapper for the waves_c library
C++
2
star
63

waves-zksnarks-sample

Testing zkSNARKs in Waves
JavaScript
2
star
64

money-like-to-node

TypeScript
2
star
65

waves-data-oracle

TypeScript
2
star
66

waveskeeper-types

Library with Waves Keeper API types for TypeScript.
2
star
67

item

TypeScript
2
star
68

unified-declarations

Unified Waves ecosystem declarations
TypeScript
2
star
69

csharp-lib-crypto

C# implementation of the unified crypto primitives for Waves Platform
C#
2
star
70

waves-csharp

C# library for interacting with the Waves blockchain
C#
2
star
71

waves-client-config

2
star
72

waves-lease-canceller

Simple utility to cancel all active leases on account
Go
1
star
73

waves-node-notifier-extension

Mining notifier extension for Waves Node
Scala
1
star
74

kotlin-lib-model

Kotlin
1
star
75

tx-json-schemas

JSON Schemas plus ajv validator for all tx types and params
TypeScript
1
star
76

waveskeeper-test-page

Test page for Waveskeeper
1
star
77

deploy-examples

Waves deploy examples
Dockerfile
1
star
78

Blake2

Blake2
C
1
star
79

kotlin-lib-crypto

Kotlin
1
star
80

ts-types

TypeScript
1
star
81

waves-explorer-tests

JavaScript
1
star
82

provider-metamask

TypeScript
1
star
83

waves-auto-lessor

Simple application for Waves platform that automatically move out and lease back all earnings on generating account.
Go
1
star
84

waves-items-fetcher

Items fetcher from the blockchain for item.market protocol
TypeScript
1
star
85

waves-lessons

1
star
86

marshall

binary-json-js converter
TypeScript
1
star
87

oracle-data

TypeScript
1
star
88

swift-lib-crypto

1
star
89

provider-seed

JavaScript
1
star
90

Specs

Cocoapods Specs
Ruby
1
star
91

waves-dao-ui

TypeScript
1
star
92

Keccak

Keccak
C
1
star
93

waves-transactions-java

Java
1
star
94

transaction-broadcaster

Go
1
star
95

waves-rest

TypeScript
1
star