README.md 10.8 KB
Newer Older
Thibaut Sardan's avatar
Thibaut Sardan committed
1
![Parity Fether](https://wiki.parity.io/images/logo-parity-fether.jpg)
Amaury Martiny's avatar
Amaury Martiny committed
2

Thibaut Sardan's avatar
Thibaut Sardan committed
3
# Parity Fether - a decentralised, light client-based wallet
Amaury Martiny's avatar
Amaury Martiny committed
4

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

Thibaut S's avatar
Thibaut S committed
7

Amaury Martiny's avatar
Amaury Martiny committed
8
---
Thibaut S's avatar
Thibaut S committed
9
10
11

## About Parity Fether

Thibaut Sardan's avatar
Thibaut Sardan committed
12
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
13
14
15

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
16
17
18
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
19

Thibaut Sardan's avatar
Thibaut Sardan committed
20
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).
Amaury Martiny's avatar
Amaury Martiny committed
21
22

---
Thibaut S's avatar
Thibaut S committed
23

Thibaut Sardan's avatar
Thibaut Sardan committed
24
## Screenshots
Amaury Martiny's avatar
Amaury Martiny committed
25

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

28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
## Install dependencies

### MacOS

Install Xcode Command Line Tools, NVM, Node.js latest LTS, Yarn, and Git

```bash
xcode-select --install;
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash;
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
echo -e "Installing Node.js latest LTS version";
nvm install --lts
echo -e "Switching to use Node.js latest LTS version";
nvm use --lts;
brew install yarn --without-node;
brew install git --verbose;
brew upgrade git --verbose;
```

### Linux and Windows (Git Bash)

Install Node.js 10.x, Yarn, Git, and increase amount of inotify watchers

```bash
sudo apt update;
sudo apt install -y git nodejs npm curl;
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -;
apt-get install -y nodejs;
sudo ln -s /usr/bin/nodejs /usr/bin/node;
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -;
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list;
sudo apt-get update && sudo apt-get install yarn;
sudo ln -s /usr/bin/yarn /usr/local/bin/yarn;

```

Thibaut Sardan's avatar
Thibaut Sardan committed
66
67
68
69
## Install and start Parity Fether

### Linux
  #### Using the AppImage (any distro)
Thibaut Sardan's avatar
Thibaut Sardan committed
70
  - Download the [`.AppImage` file](https://github.com/paritytech/fether/releases).
Thibaut Sardan's avatar
Thibaut Sardan committed
71
72
73
74
  - 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
75
  - Download the [`.tar.xz` file](https://github.com/paritytech/fether/releases).
Thibaut Sardan's avatar
Thibaut Sardan committed
76
77
78
79
  - 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
80
  - Download the [`.deb` file](https://github.com/paritytech/fether/releases).
Thibaut Sardan's avatar
Thibaut Sardan committed
81
  - Double click on the file to install Fether.
Thibaut Sardan's avatar
Thibaut Sardan committed
82
83
  - Fether will be added to the program menu.
  
Thibaut Sardan's avatar
Thibaut Sardan committed
84
### Mac
Thibaut Sardan's avatar
Thibaut Sardan committed
85
- Download the [`.dmg` file](https://github.com/paritytech/fether/releases).
Thibaut Sardan's avatar
Thibaut Sardan committed
86
- Double click on it to install Fether.
Thibaut Sardan's avatar
Thibaut Sardan committed
87
88

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

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

You can pass specific flags for fether to launch the underlying Parity Ethereum with:
Amaury Martiny's avatar
Amaury Martiny committed
96

Thibaut S's avatar
Thibaut S committed
97
```bash
Thibaut S's avatar
Thibaut S committed
98
# Launching Parity Ethereum light client on Ropsten instead of Kovan (default) and connect Fether to it
Thibaut S's avatar
Thibaut S committed
99
$ /path/to/fether --chain ropsten --light
Thibaut S's avatar
Thibaut S committed
100
```
Amaury Martiny's avatar
Amaury Martiny committed
101

Thibaut S's avatar
Thibaut S committed
102
103
### Separately launch Parity Ethereum node

Thibaut S's avatar
Thibaut S committed
104
You can also launch Parity Ethereum node before, with any flag you want:
Amaury Martiny's avatar
Amaury Martiny committed
105

Thibaut S's avatar
Thibaut S committed
106
```bash
Thibaut Sardan's avatar
Thibaut Sardan committed
107
# Launching Parity Ethereum light client on Ropsten instead of Kovan (default)
Thibaut S's avatar
Thibaut S committed
108
109
$ parity --chain ropsten --light
```
Amaury Martiny's avatar
Amaury Martiny committed
110

Thibaut S's avatar
Thibaut S committed
111
In another console launch Fether:
Amaury Martiny's avatar
Amaury Martiny committed
112

Thibaut S's avatar
Thibaut S committed
113
114
```bash
# Fether will connect to the running node
Thibaut S's avatar
Thibaut S committed
115
$ /path/to/fether
Thibaut S's avatar
Thibaut S committed
116
117
118
```

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

Thibaut S's avatar
Thibaut S committed
120
### Dependencies
Amaury Martiny's avatar
Amaury Martiny committed
121

122
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
123

Amaury Martiny's avatar
Amaury Martiny committed
124
125
```bash
yarn --version // Should be at least 1.4.2
Amaury Martiny's avatar
Amaury Martiny committed
126
```
Amaury Martiny's avatar
Amaury Martiny committed
127

Thibaut S's avatar
Thibaut S committed
128
129
130
131
132
133
134
### Clone this repo

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

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

```bash
Amaury Martiny's avatar
Amaury Martiny committed
139
140
141
yarn electron
```

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

Amaury Martiny's avatar
Amaury Martiny committed
144
```bash
Amaury Martiny's avatar
Amaury Martiny committed
145
146
147
yarn package
```

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

Amaury Martiny's avatar
Amaury Martiny committed
150
```bash
Amaury Martiny's avatar
Amaury Martiny committed
151
152
yarn start
```
Thibaut Sardan's avatar
Thibaut Sardan committed
153

154
> 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.
155

156
157
> Developer Tools: Open developer tools automatically by running `DEBUG=true yarn start` when not in the production environment

158
# Run without taskbar mode (no tray icon)
159
160

```bash
161
TASKBAR=false yarn start
162
163
```

164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
# 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

191
> 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
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206

```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

207
Build and run binaries (i.e. .exe) binary for production on Windows
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236

```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
```

237
238
239
240
241
242
243
# Usage of taskbar mode

### macOS

Taskbar mode is `true` by default.

* Enabled `true`
244
245
246
  * 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
247
* Disabled `false`
248
249
  * Dock icon - toggles show/hide Fether window
  * Fether window - frame (with close/minimise icons)
250
* Always
251
252
253
  * 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.
254
255
256
257
258
259

### Linux

Taskbar mode is `true` by default.

* Enabled `true`
260
261
262
  * 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
263
* Disabled `false`
264
265
266
  * 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.
267
* Always
268
269
  * 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
270

271
272
### Windows

273
Taskbar mode is `true` by default.
274

275
276
277
278
279
* 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
280
* Disabled `false`
281
282
283
  * 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.
284
* Always
285
286
  * 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.
287

Thibaut Sardan's avatar
Thibaut Sardan committed
288
289
290
291
292
293
## 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.