[package] add a readme.md file

Signed-off-by: Leo Chen <leo@harmony.one>
pull/3319/head
Leo Chen 4 years ago
parent d5965cea99
commit 5cf4a32d4f
  1. 137
      scripts/package/readme.md

@ -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…
Cancel
Save