Skip to content

Spacemesh App (Smesher + Wallet) ๐Ÿฆ๐Ÿ“Š

License

Notifications You must be signed in to change notification settings

eros-fabbri/smapp

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Lint And Build Pass

ย 

Smapp - the Spacemesh App ๐Ÿฆ๐Ÿ“Š

Smesher UI + Wallet

Browse Gitcoin Bounties

This repo includes the source code for the Spacemesh App. A desktop application for Windows 10, OS X, and Linux which includes a Smesher and a basic wallet. The main artifacts of this repo are the app and an app installer for all supported platforms.

Important note: Currently, Smapp does not support Hardware Wallets. This feature will be implemented in the future, but until then we highly recommend using SMCLI to generate the necessary keys for your ledger setup. Also, the Wallet-only mode is temporarily disabled.

Installation & Quick Start

Download the latest Smapp release from Spacemesh Website.

Building from Source

Smapp is written in TypeScript and bundled within Electron. You need Node.js (v12) and Yarn to build from the source. Make sure they are available on your system.

  1. Clone the repository
  2. Read node/use-version file: this is the version of go-spacemesh that should be used
  3. Download the specified version from Go-spacemesh Releases
  4. Put the binary in either node/windows, node/mac, or node/linux folder, depending on your platform
  5. Run yarn to install dependencies
  6. Run yarn start to start the application in development mode

To build and pack the application:

  1. Run yarn build
  2. Run one of the commands depending on your platform:
    • yarn package-win
    • yarn package-mac set env variable DONT_SIGN_APP=1 to skip notarizing the app,
    • yarn package-linux

Arguments

Smapp can be started with additional arguments:

  • --discovery (string) e.g. ./Spacemesh --discovery=http://localhost:8000/networks.json Specifies custom url to a custom networks list. It makes it possible for Smesher to connect to custom networks. Env variable alias: DISCOVERY_URL
  • --pprof-server (boolean) e.g. ./Spacemesh --pprof-server It makes Smapp runs go-spacemesh with the --pprof-server flag. Env variable alias: PPROF_SERVER
  • --test-mode (boolean) e.g. ./Spacemesh --test-mode It runs Smapp and the Node under the hood in standalone mode, making it much easier to test and debug the application. Env variable alias: TEST_MODE
  • --check-interval (number) e.g. ./Spacemesh --check-interval=60 to check for updates every 60 seconds Smapp checks every N seconds for the updates the software updates and new config. If new config arrived โ€” it automatically merges it with the custom User settings and restarts the Node. Default: 3600 seconds, or every hour

To run the application in dev mode with the same behavior set env variables instead:

PPROF_SERVER=1 DISCOVERY_URL=http://localhost:8000/networks.json yarn start

Environment Variables

Connect to custom networks:

DISCOVERY_URL=http://localhost:8000/networks.json yarn start

Alias for --discovery argument.

Deprecated

To run the application against DevNet you have to set URL to the config file to env variable DEV_NET_URL:

DEV_NET_URL=https://.../config.json yarn start

To run the application against DevNet in the Wallet Only mode you have to also set the URL (or list of URLs separated by commas) to GRPC API provider to env variable DEV_NET_REMOTE_API:

export DEV_NET_REMOTE_API=https://192.168.0.1:31030
export DEV_NET_URL=https://.../config.json
yarn start

Profiling Node

PPROF_SERVER=1 yarn start

Alias for --pprof-server argument.

Sentry

SENTRY_DSN='collection errors/logs url taken from sentry'
SENTRY_LOG_LEVEL=boolean # enables debug information
SENTRY_AUTH_TOKEN='special auth token for sentry cli integration'

Building Artifacts in CI

Smapp uses two workflows. Both of them build an application for all supported platforms: Windows, macOS, Linux.

  • PR builds Triggered by open Pull Request and any further changes on the branch. For testing and development purposes only. Unsigned and can not be trusted. Artifacts and links a temporary. Links to artifacts posted by the bot in comments.
  • Release builds Triggered by tag v*. Public releases of Smapp. Signed for macOS and Windows platforms. Artifacts and links should be permanent. CI prepares a draft release with links to the artifacts.

Run the Spacemesh app on Ubuntu

We recommend choosing AppImage as it is not possible to embed certain features in the .deb package. For the Ubuntu platform Electron has an issue with setup, if you want to run it on the Ubuntu > 22.04 platform, please provide --no-sandbox flag

command: /opt/Spacemesh/spacemesh_app --no-sandbox


Troubleshooting

The first thing to check if you encounter any issues with Smapp

  • Check the Release Notes on GitHub - you might find there the information about the known issues and workarounds to them.
  • We recommend visiting https://status.spacemesh.io/, to see if Spacemesh Team is already working on this issue.
  • Check the Smapp version -it should always come from the official source and be the latest released package, update it if needed.
  • If you have the latest version, restart Smapp and check if the issue remains.
  • The GPU drivers should be up to date; please check if you have the latest release. For NVIDIA, it should be version 525 (currently).
  • Check our Discord chats, the issue might have been discussed there.

Additionally:

Windows:

  • The following directories should be removed in case of reinstallation:

    C:\Users\your_username\AppData\Local\Spacemesh

    C:\Users\your_username\AppData\Roaming\Spacemesh

    C:\Users\your_username\post

  • The latest Visual C++ Redist should be installed

  • Check the Firewall settings, and amend them if needed

Linux:

  • The following directories should be removed in case of reinstallation:

    /opt/Spacemesh

    ~/.config/Spacemesh

  • We recommend using AppImage as some features cannot be embedded into a .deb package.

  • If you are using Ubuntu, check the OS version. We recommend at least 22.04

  • Glibc and other libraries should be up to date

macOS:

  • The following directories should be removed in case of reinstallation:

    /Users/your_username/Library/Application\ Support/Spacemesh

    /Users/your_username/post

  • Check if the incoming connections arenโ€™t blocked for go-spacemesh

About

Spacemesh App (Smesher + Wallet) ๐Ÿฆ๐Ÿ“Š

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 96.4%
  • JavaScript 3.3%
  • Other 0.3%