/tari-launchpad

A node, wallet and miner for Tari focusing on ease of use

Primary LanguageTypeScriptBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Tari Launchpad - Text edition

Currently, the Tauri UI is not working, as an interim solution, a text version is available with:

   $ cargo run --bin tari-lp-cli

This will build/run the text based version that can run launchpad.

Tari Launchpad - Tauri edition

a.k.a. Tari one-click miner.

Prerequisites

  1. Rust and cargo (https://www.rust-lang.org/tools/install).
  2. NodeJs (v16.0 or higher) and Yarn (v 1.22 or higher).
  3. Tauri CLI (cargo install tauri-cli). Optional.
  4. Docker is not strictly a pre-requisite, since the launchpad on-boarding flow will install it for you, but you will need docker eventually, so putting it here.
  5. Install the front-end dependencies

Running a development version of launchpad

These commands

  • build the launchpad ReactJs front-end and launch it in development mode.
  • build the backend in debug mode
  • launch the application
$ yarn run tauri dev

Debugging

The console relays debug messages from the launchpad backend (a Rust application). The front-end is a standard ReactJs application wrapped inside a Tauri desktop application. You can open a standard browser console in the front-end to debug front-end issues.

Tip: If you receive the following error Unable to create base node... there was a problem packaging the assets for the app.

Building a production release

To build a production release, which also includes a bundled installer (.dmg on mac, .deb on linux, .msi on windows), you can execute:

$ cd applications/launchpad
$ yarn run tauri build

Viewing logs and configuration files

You can use the bundled Grafana environment that is packaged with launchpad to view log files. Or you can use your favorite text editor instead.

Logs and configuration files are stored in

  • MacOs: ~/Library/Caches/tari-launchpad/log/{network}/{app}/log,
  • Linux: ~/.cache/tari-launchpad/log/{network}/{app}/log,
  • Windows: C:\Users\{user}\AppData\Local\tari-launchpad

You can edit the log configuration, {network}/config/log4rs.yml to change the log level, output etc. Changes are picked up on the fly and take effect within 30s.

Miscellaneous notes

  • The blockchain data is stored in docker volumes, and not on the host machine directly. This is due to crippling performance limitations one suffers when mounting host file system from Windows or MacOS into docker containers. This isn't a big drawback, since you seldom want or need to access the raw blockchain database files anyway. And they're still accessible. But ensure that you reserve enough space to store the Tari, and optionally, Monero blockchains inside the Docker VM.

Accessing blockchain data

The blockchain data is stored in a docker volume for performance reasons. If you need to back up or access the LMDB of blockchain data, you can use something like this to extract it to the host filesystem:

docker run --rm -v $(pwd):/backup -v blockchain:/blockchain ubuntu tar czvf /backup/backup.tar.gz /blockchain

Layout

      +-----------------------+
      |                       |
+---->|    Console Wallet     +------------------+
|     |                       |                  |
|     +----------+------------+                  |
|                |                               |
|                | gRPC                          |
|                |                               |
|                |                               |
|     +----------v------------+           +------v-----+
|     |                       |  Socks5   |            |
|     |       Base Node       +---------->|     Tor    |----> Network
|     |                       |           |            |
|     +----------^------------+           +------------+
|                |
|                |
|                |
|     +----------+------------+
|     |                       |
+-----+      SHA3-Miner       |
|     |                       |
|     +-----------------------+
|
|
|
|     +-----------------------+
|     |                       |
+-----+        XMRRig etc     |
      |                       |
      +-----------------------+

Building custom docker images

The docker images for the base node, wallet etc. are designed to handle the broadest set of chipsets and architectures. For this reason, they not be optimal for your system. You can build custom images for launchpad using the build_images.sh script in this folder.

Refer to that script for further details and build options.

There are a set of files in this folder that offer a convenient way of setting the environment up for some common configurations.

run source {env_config}.env to set up the environment. Currently, the presets are:

  • local-performance-amd64.env: For building local images with Intel/AMD and AVX-2 chipset support (about 2x speedup on crypto operations)
  • local-performance-arm64.env: For building local images for Apple M-series CPUs.
  • hosted-dual.env: Replicates the CI enviroment. Builds safe multi-arch images and pushes them to the docker repo (requires a write access token).