README.md 9.6 KiB
Newer Older
Thibaut Sardan's avatar
Thibaut Sardan committed
![Parity Fether](https://wiki.parity.io/images/logo-parity-fether.jpg)
Thibaut Sardan's avatar
Thibaut Sardan committed
# Parity Fether - a decentralised, light client-based wallet
Amaury Martiny's avatar
Amaury Martiny committed

Thibaut Sardan's avatar
Thibaut Sardan committed
## [» Download the latest release «](https://github.com/paritytech/fether/releases)
Thibaut S's avatar
Thibaut S committed

Amaury Martiny's avatar
Amaury Martiny committed
---
Thibaut S's avatar
Thibaut S committed

## About Parity Fether

Thibaut Sardan's avatar
Thibaut Sardan committed
Parity Fether aims to be the lightest and simplest decentralized wallet. It supports Ether and ERC-20 tokens, and runs on top of [Parity Ethereum](https://github.com/paritytech/parity-ethereum) light client. This allows smooth synchronization and interaction with the Ethereum blockchain, in a decentralized manner.
Thibaut S's avatar
Thibaut S committed

By default, Parity Fether alpha runs on the Kovan test network. You can receive free Kovan Ether by posting your address in the [Kovan Faucet](https://gitter.im/kovan-testnet/faucet) Gitter channel. Fether will download and launch Parity Ethereum node at startup if it's not found on the computer. You can also separately launch your Ethereum client, Fether will automatically connect to it.

Thibaut Sardan's avatar
Thibaut Sardan committed
Parity Fether connects to the light node using [`@parity/light.js`](https://github.com/paritytech/js-libs/tree/master/packages/light.js), a Javascript library specifically crafted for wallets to connect with light clients. 

Parity Fether is licensed under the BSD 3-Clause, and can be used for all your Ethereum needs.
Thibaut S's avatar
Thibaut S committed

Thibaut Sardan's avatar
Thibaut Sardan committed
If you run into problems while using Parity Fether, feel free to file an issue in this repository or hop on our [Gitter](https://gitter.im/paritytech/fether) or [Riot](https://riot.im/app/#/group/+parity:matrix.parity.io) chat room to ask a question. We are glad to help! **For security-critical issues**, please refer to the security policy outlined in [SECURITY.md](https://github.com/paritytech/parity/blob/master/SECURITY.md).
Thibaut S's avatar
Thibaut S committed

Thibaut Sardan's avatar
Thibaut Sardan committed
## Screenshots
Thibaut Sardan's avatar
Thibaut Sardan committed
![Parity Fether](https://wiki.parity.io/images/fether-screenshot-0.jpg)
Thibaut S's avatar
Thibaut S committed

Thibaut Sardan's avatar
Thibaut Sardan committed
## Install and start Parity Fether

### Linux
  #### Using the AppImage (any distro)
Thibaut Sardan's avatar
Thibaut Sardan committed
  - Download the [`.AppImage` file](https://github.com/paritytech/fether/releases).
Thibaut Sardan's avatar
Thibaut Sardan committed
  - Make it executable `chmod +x /path/to/fether-x.x.x-x86_64.AppImage`.
  - Launch it `/path/to/fether-x.x.x-x86_64.AppImage`.
  
  #### Using the binary (any distro)
Thibaut Sardan's avatar
Thibaut Sardan committed
  - Download the [`.tar.xz` file](https://github.com/paritytech/fether/releases).
Thibaut Sardan's avatar
Thibaut Sardan committed
  - Unarchive it `tar xf fether-x.x.x.tar.xz`.
  - Launch it `./fether-x.x.x/fether`.
  
  #### Debian installer (Ubuntu, Linux Mint..)
Thibaut Sardan's avatar
Thibaut Sardan committed
  - Download the [`.deb` file](https://github.com/paritytech/fether/releases).
Thibaut Sardan's avatar
Thibaut Sardan committed
  - Double click on the file to install Fether.
Thibaut Sardan's avatar
Thibaut Sardan committed
  - Fether will be added to the program menu.
  
Thibaut Sardan's avatar
Thibaut Sardan committed
### Mac
Thibaut Sardan's avatar
Thibaut Sardan committed
- Download the [`.dmg` file](https://github.com/paritytech/fether/releases).
Thibaut Sardan's avatar
Thibaut Sardan committed
- Double click on it to install Fether.
Thibaut Sardan's avatar
Thibaut Sardan committed

### Windows
Thibaut Sardan's avatar
Thibaut Sardan committed
- Download the [`.exe` file](https://github.com/paritytech/fether/releases).
Thibaut Sardan's avatar
Thibaut Sardan committed
- Double click on it to install Fether.
- Fether will be added to the program menu.
Thibaut S's avatar
Thibaut S committed

Thibaut S's avatar
Thibaut S committed
### Passing config flags to the underlying Parity Ethereum node
Thibaut S's avatar
Thibaut S committed

You can pass specific flags for fether to launch the underlying Parity Ethereum with:
Thibaut S's avatar
Thibaut S committed
```bash
Thibaut S's avatar
Thibaut S committed
# Launching Parity Ethereum light client on Ropsten instead of Kovan (default) and connect Fether to it
Thibaut S's avatar
Thibaut S committed
$ /path/to/fether --chain ropsten --light
Thibaut S's avatar
Thibaut S committed
```
Thibaut S's avatar
Thibaut S committed
### Separately launch Parity Ethereum node

Thibaut S's avatar
Thibaut S committed
You can also launch Parity Ethereum node before, with any flag you want:
Thibaut S's avatar
Thibaut S committed
```bash
Thibaut Sardan's avatar
Thibaut Sardan committed
# Launching Parity Ethereum light client on Ropsten instead of Kovan (default)
Thibaut S's avatar
Thibaut S committed
$ parity --chain ropsten --light
```
Thibaut S's avatar
Thibaut S committed
In another console launch Fether:
Thibaut S's avatar
Thibaut S committed
```bash
# Fether will connect to the running node
Thibaut S's avatar
Thibaut S committed
$ /path/to/fether
Thibaut S's avatar
Thibaut S committed
```

## Build from sources
Amaury Martiny's avatar
Amaury Martiny committed

Thibaut S's avatar
Thibaut S committed
### Dependencies
Make sure you have at least `yarn` version 1.4.2 and [Node.js >=10.10.0](https://nodejs.org/en/)
Amaury Martiny's avatar
Amaury Martiny committed

Amaury Martiny's avatar
Amaury Martiny committed
```bash
yarn --version // Should be at least 1.4.2
Amaury Martiny's avatar
Amaury Martiny committed
```
Thibaut S's avatar
Thibaut S committed
### Clone this repo

```bash
git clone https://github.com/paritytech/fether
cd ./fether
yarn install
```
Amaury Martiny's avatar
Amaury Martiny committed

Thibaut S's avatar
Thibaut S committed
### Build this repo and run
Amaury Martiny's avatar
Amaury Martiny committed

```bash
Amaury Martiny's avatar
Amaury Martiny committed
yarn electron
```

Thibaut S's avatar
Thibaut S committed
### Build binaries
Amaury Martiny's avatar
Amaury Martiny committed

Amaury Martiny's avatar
Amaury Martiny committed
```bash
Amaury Martiny's avatar
Amaury Martiny committed
yarn package
```

Thibaut S's avatar
Thibaut S committed
### Run with live reload for development
Amaury Martiny's avatar
Amaury Martiny committed

Amaury Martiny's avatar
Amaury Martiny committed
```bash
Amaury Martiny's avatar
Amaury Martiny committed
yarn start
```
Thibaut Sardan's avatar
Thibaut Sardan committed

> Troubleshooting: If it hangs on a white screen in Electron even though it has compiled and has been syncing for a long time, then simply choose 'View > Reload' (CMD + R on macOS) from the Fether/Electron menu. If the Fether menu is not shown in the tray, then by clicking the Fether window and then holding down the ALT key to reveal it.
> Developer Tools: Open developer tools automatically by running `DEBUG=true yarn start` when not in the production environment

# Run without taskbar mode (no tray icon)
# Production

## Build binaries for production

### General Notes:

1) Alternative to `yarn; yarn build; DEBUG=electron-builder yarn release --mac;` is to just run `yarn package` and then run the `open "./packages/fether-electron/dist/mac/Parity Fether.app"` (i.e. no need to install)

2) Publishing a new release to GitHub is performed by a maintainer of the repository. In this case you need to obtain the `GH_TOKEN` from GitHub settings and add it using `export GH_TOKEN="..."` to ~/.bashrc and then run `source ~/.bashrc`. If you get an error that the `GH_TOKEN` is missing and you are only building the binary but not publishing, then just ignore the error.

### macOS

Build and run binaries (i.e. .dmg) for production on macOS of a specific remote branch

```bash
git fetch origin INSERT_BRANCH_NAME:INSERT_BRANCH_NAME;
git checkout INSERT_BRANCH_NAME;
rm -rf ./packages/fether-electron/dist/
rm -rf /Applications/Parity\ Fether.app/
yarn; yarn build; DEBUG=electron-builder yarn release --mac;
open ./packages/fether-electron/dist/Parity\ Fether-0.3.0.dmg
```

### Linux

Build and run binaries (i.e. .deb) for production on Linux

> Note: If you want to save time building, then first edit electron-builder.json so that it only builds a single binary like .deb instead of all of them

```bash
sudo rm -rf /opt/Parity\ Fether;
rm -rf ~/.config/Electron;
rm -rf ~/.config/fether;
rm -rf ./packages/fether-electron/dist/;
sudo rm /usr/local/bin/fether;
sudo apt remove -y fether;
yarn; yarn build; DEBUG=electron-builder yarn release --linux
sudo apt install -y ./packages/fether-electron/dist/fether_0.3.0_amd64.deb
fether
```

### Windows

Build and run binaries (i.e. .exe) binary for production on Windows

```bash
rm -rf /packages/fether-electron/dist;
yarn; yarn build; DEBUG=electron-builder yarn release --win;
./packages/fether-electron/dist/Parity\ Fether-0.3.0.exe
```

## Debugging in production

Show terminal logs whilst running a binary executable.

### macOS

```
tail -f ~/Library/Application\ Support/fether/fether.log
```

### Linux 

```
tail -f ~/.config/fether/fether.log
```

### Windows 

```
tail -f ~/Application\ Data/fether/fether.log
```

# Usage of taskbar mode

### macOS

Taskbar mode is `true` by default.

* Enabled `true`
  * Tray icon - Left-click or right-click the tray icon shows "tray context menu" containing just "Show/Hide Fether" and "Quit" options. "Show/Hide Fether" toggles the Fether window show/hide
  * Dock icon - no action
  * Fether window - frameless
  * Dock icon - toggles show/hide Fether window
  * Fether window - frame (with close/minimise icons)
  * Menubar - Fether menu shown by default
  * Fether window - "window context menu" shown upon right-click in the Fether window
  * Fether window - position is saved upon move, minimising, and close so it is restored in the same position.

### Linux

Taskbar mode is `true` by default.

* Enabled `true`
  * Tray icon - Left-click or right-click the tray icon shows "tray context menu" containing just "Show/Hide Fether" and "Quit" options. "Show/Hide Fether" toggles the Fether window show/hide
  * Dock icon - toggles show/hide Fether window
  * Fether window - frameless
  * Dock icon - toggles show/hide Fether window
  * Fether window - frame (with close/minimise icons)
  * Menubar - Fether menu may not be not shown in the tray by default depending on whether `setMenuBarVisibility` has been set. Fether menu may be configured to automatically hide by setting `setAutoHideMenuBar`. Toggle show/hide the Fether menu in the frame by clicking the Fether window and then holding down the ALT key to reveal it, which only works if auto-hide menu bar is enabled.
  * Fether window - "window context menu" shown upon right-click in the Fether window
  * Fether window - position is saved upon move, minimising, and close so it is restored in the same position.
Luke Schoen's avatar
Luke Schoen committed

* Enabled `true`
  * Tray icon - Left-click toggles show/hide Fether window
  * Tray icon - Right-click the tray icon shows "tray context menu" containing just "Show/Hide Fether" and "Quit" options. "Show/Hide Fether" toggles the Fether window show/hide
  * Dock icon - toggles show/hide Fether window
  * Fether window - frameless
* Disabled `false`
  * Dock icon - toggles show/hide Fether window
  * Fether window - frame (with close/minimise icons).
  * Menubar - Fether menu may not be not shown in the tray by default depending on whether `setMenuBarVisibility` has been set. Fether menu may be configured to automatically hide by setting `setAutoHideMenuBar`. Toggle show/hide the Fether menu in the frame by clicking the Fether window and then holding down the ALT key to reveal it, which only works if auto-hide menu bar is enabled.
  * Fether window - "window context menu" shown upon right-click in the Fether window
  * Fether window - position is saved upon move, minimising, and close so it is restored in the same position.
Thibaut Sardan's avatar
Thibaut Sardan committed
## Join the chat!

Get in touch with us on Gitter:
[![Gitter](https://img.shields.io/badge/Gitter-Fether-brightgreen.svg)](https://gitter.im/paritytech/fether)

Official website: https://parity.io | Be sure to check out [our Wiki](https://wiki.parity.io) for more information.