parent
d5965cea99
commit
5cf4a32d4f
@ -0,0 +1,137 @@ |
|||||||
|
# Introduction |
||||||
|
This document introduces the Harmony's package release using standard packaging system, RPM and Deb packages. |
||||||
|
|
||||||
|
Standard packaging system has many benefits, like extensive tooling, documentation, portability, and complete design to handle different situation. |
||||||
|
|
||||||
|
# Package Content |
||||||
|
The RPM/Deb packages will install the following files/binary in your system. |
||||||
|
* /usr/sbin/harmony |
||||||
|
* /usr/sbin/harmony-setup.sh |
||||||
|
* /usr/sbin/harmony-rclone.sh |
||||||
|
* /etc/harmony/harmony.conf |
||||||
|
* /etc/harmony/rclone.conf |
||||||
|
* /etc/systemd/system/harmony.service |
||||||
|
* /etc/sysctl.d/99-harmony.conf |
||||||
|
|
||||||
|
The package will create `harmony` group and `harmony` user on your system. |
||||||
|
The harmony process will be run as `harmony` user. |
||||||
|
The default blockchain DBs are stored in `/home/harmony/harmony_db_?` directory. |
||||||
|
The configuration of harmony process is in `/etc/harmony/harmony.conf`. |
||||||
|
|
||||||
|
# Package Manager |
||||||
|
Please take sometime to learn about the package managers used on Fedora/Debian based distributions. |
||||||
|
There are many other package managers can be used to manage rpm/deb packages like [Apt]<https://en.wikipedia.org/wiki/APT_(software)>, |
||||||
|
or [Yum]<https://www.redhat.com/sysadmin/how-manage-packages> |
||||||
|
|
||||||
|
# Setup customized repo |
||||||
|
You just need to do the setup of harmony repo once on a new host. |
||||||
|
**TODO**: the repo in this document are for development/testing purpose only. |
||||||
|
|
||||||
|
Official production repo will be different. |
||||||
|
|
||||||
|
## RPM Package |
||||||
|
RPM is for Redhat/Fedora based Linux distributions, such as Amazon Linux and CentOS. |
||||||
|
|
||||||
|
```bash |
||||||
|
# do the following once to add the harmony development repo |
||||||
|
curl -LsSf http://haochen-harmony-pub.s3.amazonaws.com/pub/yum/harmony-dev.repo | sudo tee -a /etc/yum.repos.d/harmony-dev.repo |
||||||
|
sudo rpm --import https://raw.githubusercontent.com/harmony-one/harmony-open/master/harmony-release/harmony-pub.key |
||||||
|
``` |
||||||
|
|
||||||
|
## Deb Package |
||||||
|
Deb is supported on Debian based Linux distributions, such as Ubuntu, MX Linux. |
||||||
|
|
||||||
|
```bash |
||||||
|
# do the following once to add the harmony development repo |
||||||
|
curl -LsSf https://raw.githubusercontent.com/harmony-one/harmony-open/master/harmony-release/harmony-pub.key | sudo apt-key add |
||||||
|
echo "deb http://haochen-harmony-pub.s3.amazonaws.com/pub/repo bionic main" | sudo tee -a /etc/apt/sources.list |
||||||
|
|
||||||
|
``` |
||||||
|
|
||||||
|
# Test cases |
||||||
|
## installation |
||||||
|
``` |
||||||
|
# debian/ubuntu |
||||||
|
sudo apt-get update |
||||||
|
sudo apt-get install harmony |
||||||
|
|
||||||
|
# fedora/amazon linux |
||||||
|
sudo yum install harmony |
||||||
|
``` |
||||||
|
## configure/start |
||||||
|
``` |
||||||
|
# dpkg-reconfigure harmony (TODO) |
||||||
|
sudo systemctl start harmony |
||||||
|
``` |
||||||
|
|
||||||
|
## uninstall |
||||||
|
``` |
||||||
|
# debian/ubuntu |
||||||
|
sudo apt-get remove harmony |
||||||
|
|
||||||
|
# fedora/amazon linux |
||||||
|
sudo yum remove harmony |
||||||
|
``` |
||||||
|
|
||||||
|
## upgrade |
||||||
|
```bash |
||||||
|
# debian/ubuntu |
||||||
|
sudo apt-get update |
||||||
|
sudo apt-get upgrade |
||||||
|
|
||||||
|
# fedora/amazon linux |
||||||
|
sudo yum update --refresh |
||||||
|
``` |
||||||
|
|
||||||
|
## reinstall |
||||||
|
```bash |
||||||
|
remove and install |
||||||
|
``` |
||||||
|
|
||||||
|
# Rclone |
||||||
|
## install latest rclone |
||||||
|
```bash |
||||||
|
# debian/ubuntu |
||||||
|
curl -LO https://downloads.rclone.org/v1.52.3/rclone-v1.52.3-linux-amd64.deb |
||||||
|
sudo dpkg -i rclone-v1.52.3-linux-amd64.deb |
||||||
|
|
||||||
|
# fedora/amazon linux |
||||||
|
curl -LO https://downloads.rclone.org/v1.52.3/rclone-v1.52.3-linux-amd64.rpm |
||||||
|
sudo rpm -ivh rclone-v1.52.3-linux-amd64.rpm |
||||||
|
``` |
||||||
|
|
||||||
|
## do rclone |
||||||
|
```bash |
||||||
|
# validator runs on shard1 |
||||||
|
sudo -u harmony harmony-rclone.sh /home/harmony 0 |
||||||
|
sudo -u harmony harmony-rclone.sh /home/harmony 1 |
||||||
|
|
||||||
|
# explorer node |
||||||
|
sudo -u harmony harmony-rclone.sh -a /home/harmony 0 |
||||||
|
``` |
||||||
|
|
||||||
|
# Setup explorer (non-validating) node |
||||||
|
To setup an explorer node (non-validating) node, please run the `harmony-setup.sh` at first. |
||||||
|
|
||||||
|
```bash |
||||||
|
sudo /usr/sbin/harmony-setup.sh -t explorer -s 0 |
||||||
|
``` |
||||||
|
to setup the node as an explorer node w/o blskey setup. |
||||||
|
|
||||||
|
# Setup new validator |
||||||
|
Please copy your blskey to `/home/harmony/.hmy/blskeys` directory, and start the node. |
||||||
|
The default configuration is for validators on mainnet. No need to run `harmony-setup.sh` script. |
||||||
|
|
||||||
|
# Start/stop node |
||||||
|
* `systemctl start harmony` to start node |
||||||
|
* `systemctl stop harmony` to stop node |
||||||
|
* `systemctl status harmony` to check status of node |
||||||
|
|
||||||
|
# Change node configuration |
||||||
|
The node configuration file is in `/etc/harmony/harmony.conf`. Please edit the file as you needed. |
||||||
|
```bash |
||||||
|
sudo vim /etc/harmony/harmony.conf |
||||||
|
``` |
||||||
|
|
||||||
|
# Support |
||||||
|
Please open new github issues in https://github.com/harmony-one/harmony/issues. |
Loading…
Reference in new issue