https://github.com/elastos/elastos.ela.arbiter
https://github.com/elastos/elastos.ela.arbiter
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/elastos/elastos.ela.arbiter
- Owner: elastos
- Created: 2020-07-15T07:55:58.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-11-10T03:29:09.000Z (over 1 year ago)
- Last Synced: 2024-06-20T15:36:00.622Z (12 months ago)
- Language: Go
- Size: 1.06 MB
- Stars: 2
- Watchers: 24
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Elastos ELA Arbiter
===========
[](https://travis-ci.org/elastos/Elastos.ELA.Arbiter) [](https://goreportcard.com/report/github.com/elastos/Elastos.ELA.Arbiter)## Introduction
##### This project is the source code that can build a arbiter of ELA.## Table of Contents
- [Elastos ELA Arbiter](#elastos-ela-arbiter)
- [Introduction](#introduction)
- [Table of Contents](#table-of-contents)
- [Pre-requisites on Mac](#pre-requisites-on-mac)
- [1. Check OS version](#1-check-os-version)
- [2. Install Go distribution 1.9](#2-install-go-distribution-19)
- [Pre-requisites on Ubuntu](#pre-requisites-on-ubuntu)
- [1. Check OS version](#1-check-os-version-1)
- [2. Install git](#2-install-git)
- [3. Install Go distribution 1.9](#3-install-go-distribution-19)
- [Configure the node](#configure-the-node)
- [Build the node](#build-the-node)
- [1. Check Go version](#1-check-go-version)
- [2. Clone source code](#2-clone-source-code)
- [3. Make](#3-make)
- [4. Run the node](#4-run-the-node)
- [Interact with the node](#interact-with-the-node)
- [1. JSON RPC API of the node](#1-json-rpc-api-of-the-node)
- [Contribution](#contribution)
- [Acknowledgments](#acknowledgments)
- [License](#license)## Pre-requisites on Mac
#### 1. Check OS version
Make sure the OSX version is 16.7+
```shell
$ uname -srm
Darwin 16.7.0 x86_64
```#### 2. Install Go distribution 1.13
Use Homebrew to install Golang 1.13.
```shell
$ brew install [email protected]
```> If you install older version, such as v1.8, you may get missing math/bits package error when build.
## Pre-requisites on Ubuntu
#### 1. Check OS version
Make sure your ubuntu version is 16.04+
```shell
$ cat /etc/issue
Ubuntu 16.04.3 LTS \n \l
```#### 2. Install git
```shell
$ sudo apt-get install -y git
```#### 3. Install Go distribution 1.13
```shell
$ curl -O https://storage.googleapis.com/golang/go1.13.5.linux-amd64.tar.gz
$ tar -xvf go1.13.5.linux-amd64.tar.gz
$ sudo chown -R root:root ./go
$ sudo mv go /usr/local
$ export GOPATH=$HOME/go
$ export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
$ source ~/.profile
```> If you install older version, such as v1.8, you may get missing math/bits package error when build.
## Configure the node
See the [documentation](./docs/config.json.md) about config.json to understand what each parameter means on the configuration file.
If you would like to connect to testnet, do the following:
```shell
$ cp docs/testnet_config.json.sample config.json
```If you would like to connect to mainnet, do the following:
```shell
$ cp docs/mainnet_config.json.sample config.json
```Make sure to modify the parameters to what your own specification.
## Build the node
#### 1. Check Go version
Check the golang version. Make sure they are the following version number or above.
```shell
$ go version
go version go1.13.5 darwin/amd64
```If you cannot see the version number, there must be something wrong when install.
#### 2. Clone source code
Make sure you are in the folder
```shell
$ git clone https://github.com/elastos/Elastos.ELA.Arbiter.git
```If clone works successfully, you should see folder structure like Elastos.ELA.Arbiter/Makefile
#### 3. Make
Build the node.
```shell
$ cd Elastos.ELA.Arbiter
$ make
```If you did not see any error message, congratulations, you have made the arbiter full node.
#### 4. Run the node
Run the node.
```shell
$ ./arbiter -p password
```## Interact with the node
#### 1. JSON RPC API of the node
Once the node is running successfully, you can access Arbiter Node's JSON RPC APIs:
Example 1: Get the block height synchronized by SPV from the main chain
```bash
curl -H 'Content-Type: application/json' -H 'Accept:application/json' --data '{"method":"getspvheight"}' http://localhost:20606
{
"error": null,
"id": null,
"jsonrpc": "2.0",
"result": 2509
}
```Example 2: Get the block height of side chain by side chain genesis block hash
```bash
curl -H 'Content-Type: application/json' -H 'Accept:application/json' --data '{"method":"getsidechainblockheight","params":{"hash":"56be936978c261b2e649d58dbfaf3f23d4a868274f5522cd2adb4308a955c4a3"}}' http://localhost:20606
{
"error": null,
"id": null,
"jsonrpc": "2.0",
"result": 70
}
```If you would like to learn more about what other JSON RPC APIs are available for the node, please check out the [JSON RPC API](docs/jsonrpc_apis.md)
## Contribution
We welcome contributions to the Elastos ELA Arbiter Project.
## Acknowledgments
A sincere thank you to all teams and projects that we rely on directly or indirectly.
## License
This project is licensed under the terms of the [MIT license](https://github.com/elastos/Elastos.ELA.Arbiter/blob/master/LICENSE).