Home

Awesome

<p align="center"> <img src="./.github/screenshot.png" width="350px" /> <h2 align="center">nOS Client</h2> <p align="center"> <strong>nOS</strong> is a blockchain powered virtual operating system that serves as the gateway to Decentralized Applications. </p> <p align="center"> <a href="https://github.com/nos/client/releases/latest"> <img src="https://img.shields.io/github/v/release/nos/client" /> </a> <a href="https://github.com/nos/client/releases"> <img src="https://img.shields.io/badge/platform-macOS%20%7C%20Windows%20%7C%20Linux-blue.svg" alt="platforms" /> </a> <a href="https://github.com/nos/client/releases"> <img src="https://img.shields.io/github/license/nos/client?color=yellow"> </a> <a href="http://makeapullrequest.com"> <img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" /> </a> <a href="https://github.com/nos/client/releases"> <img src="https://img.shields.io/github/downloads/nos/client/total.svg" /> </a> </p> <p align="center"> The <strong>nOS Client</strong> (Developer MVP Release) allows for the development of Decentralized Applications that interact with Smart Contracts in the back-end. </p> </p>

Getting Started with nOS

The standalone client installers can be found here. To build manually, the client can be cloned from GitHub and run using the development steps below.

Commands

# Cloning from Github
git clone https://github.com/nos/client.git

# Install dependencies and launch the nOS client
# This is used to start developing on the nOS client
yarn install && yarn start

# Testing command
yarn test

# Testing with debug (repl) command
yarn test:debug

# Distribution command (code signing certificates are required to make this work)
yarn dist

Contribute to this repository

We welcome contributions to the code base. If you are interested in becoming a contributor, please read the contributing guide that covers the following:

There is a specific channel called develop on Discord to discuss development.

Contribute by building a dApp on nOS

Need some help with building nOS dApps? Check out our dedicated documentation website containing useful info for the following topics:

Check out the documentation of the Create nOS dApp CLI tool to get going quickly.

Resources:

Releasing

Automated Deployment

We use CircleCI to automatically create builds based upon git tags.

  1. run yarn release --dry-run - Note if the output version tag/changelog is correctly generated.
  2. run yarn release - This will generate the changelog, update the version in package.json and create and push a tag.
  3. The deploys jobs will be triggered and upload the artifacts to Github Release page as a draft.

Manual Deployment: macOS

  1. Export the following variables:
    1. CSC_LINK - This is the path to the .p12 certificate file
    2. CSC_KEY_PASSWORD - This is the password of the .p12 certificate file
    3. CSC_IDENTITY_AUTO_DISCOVERY - Set to false to disable usage of local keychain (By default it looks in your login keychain)
    4. GH_TOKEN - This is used to upload the artifacts to Github
  2. Create the distributable, i.e. yarn dist.
  3. Locate and upload the following files as these are required for the auto-updater to work:
    1. dist/nOS-1.0.0-mac.zip
    2. dist/nOS-1.0.0-mac.dmg
    3. dist/nOS-1.0.0-mac.dmg.blockmap
    4. dist/latest-mac.yml

Manual Deployment: Linux

  1. Create the distributable, i.e. yarn dist.
  2. Locate and upload the following files as these are required for the auto-updater to work:
    1. dist/nOS-1.0.0-linux-amd64.snap
    2. dist/nOS-1.0.0-linux-x86_64.AppImage
    3. dist/latest-linux.yml

Manual Deployment: Windows

  1. Export the following variables:
    1. WIN_CSC_LINK - This is the certificate file in text format
    2. WIN_CSC_KEY_PASSWORD - This is the password of the certificate file
    3. GH_TOKEN - This is used to upload the artifacts to Github
  2. Create the distributable, i.e. yarn dist.
  3. Locate and upload the following files as these are required for the auto-updater to work:
    1. dist/nOS-1.0.0-win.exe
    2. dist/nOS-1.0.0-win.exe.blockmap
    3. dist/latest.yml

Generating hashes for the artifacts