Skip to content

Wire-Network/wire-sysio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wire Sysio

Wire Sysio is a fork of Spring, a C++ implementation of the AntelopeIO protocol. It contains blockchain node software and supporting tools for developers and node operators.

Branches

The master branch is the latest stable branch.

Supported Operating Systems

We currently support the following operating systems.

Operating Systems
Ubuntu 24.04 Jammy
Ubuntu 25.04 Plucky

Installation

In the future, we plan to support downloading Debian packages directly from our release page, providing a more streamlined and convenient setup process. However, for the time being, installation requires building the software from source.

Finally, verify Wire Sysio was installed correctly:

nodeop --full-version

You should see a semantic version string followed by a git commit hash with no errors. For example:

v3.1.2-0b64f879e3ebe2e4df09d2e62f1fc164cc1125d1

Building from source

Follow the instructions BUILD.md to build Wire Sysio from source.

Local Development (Docker)

See the Docker development guide for setting up a containerized development environment.

Testing

Wire Sysio supports the following test suites:

Test Suite Test Type Test Size Notes
Parallelizable tests Unit tests Small
WASM spec tests Unit tests Small Unit tests for our WASM runtime, each short but very CPU-intensive
Serial tests Component/Integration Medium
Long-running tests Integration Medium-to-Large Tests which take an extraordinarily long amount of time to run

When building from source, we recommended running at least the parallelizable tests.

Parallelizable Tests

This test suite consists of any test that does not require shared resources, such as file descriptors, specific folders, or ports, and can therefore be run concurrently in different threads without side effects (hence, easily parallelized). These are mostly unit tests and small tests which complete in a short amount of time.

You can invoke them by running ctest from a terminal in your build directory and specifying the following arguments:

ctest -j "$(nproc)" -LE _tests

Since Wire resource handling changes caused considerable changes for unit test setup, some tests have been turned off till they can be fixed, so that the core set of tests can be successfully validated. To include these tests in running the above ctest command, the following flag must be passed to cmake before compiling and running: " -DDONT_SKIP_TESTS=TRUE"

WASM Spec Tests

The WASM spec tests verify that our WASM execution engine is compliant with the web assembly standard. These are very small, very fast unit tests. However, there are over a thousand of them so the suite can take a little time to run. These tests are extremely CPU-intensive.

You can invoke them by running ctest from a terminal in your Wire Sysio build directory and specifying the following arguments:

ctest -j "$(nproc)" -L wasm_spec_tests

We have observed severe performance issues when multiple virtual machines are running this test suite on the same physical host at the same time, for example in a CICD system. This can be resolved by disabling hyperthreading on the host.

Serial Tests

The serial test suite consists of medium component or integration tests that use specific paths, ports, rely on process names, or similar, and cannot be run concurrently with other tests. Serial tests can be sensitive to other software running on the same host and they may SIGKILL other nodeop processes. These tests take a moderate amount of time to complete, but we recommend running them.

You can invoke them by running ctest from a terminal in your build directory and specifying the following arguments:

ctest -L "nonparallelizable_tests"

Long-Running Tests

The long-running tests are medium-to-large integration tests that rely on shared resources and take a very long time to run. Follow the instructions BUILD.md to build Wire Sysio from source.

Testing

You can invoke them by running ctest from a terminal in your build directory and specifying the following arguments:

ctest -L "long_running_tests"

Wire Network Wire Network
Website | Twitter | LinkedIn
© 2024 Wire Network. All rights reserved.

About

Wire's core software for developing and deploying high-performance blockchain-based applications.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 21