etsc-net-intelligence-api
Version:
Ethereum Social Network Intelligence API
93 lines (70 loc) • 3.14 kB
Markdown
Ethereum Social Network Intelligence API
============
[](https://discord.gg/h6vsEuw)
[](https://travis-ci.org/ethereumsocial/etsc-net-intelligence-api)
[](https://david-dm.org/ethereumsocial/etsc-net-intelligence-api)
[](https://badge.fury.io/js/etsc-net-intelligence-api)
This is the backend service which runs along with [multi-geth](https://github.com/ethereumsocial/multi-geth/releases) and tracks the network status, fetches information through JSON-RPC and connects through WebSockets to [stats.ethereumsocial.kr](https://stats.ethereumsocial.kr) to feed information. For full install instructions please read the [wiki](https://github.com/ethereum/wiki/wiki/Network-Status).
* geth(multi-geth) or Parity
* node
* npm
Install multi-geth node
```bash
$ sudo apt-get install build-essential unzip
$ wget https://github.com/ethereumsocial/multi-geth/releases/download/v1.8.4/multi-geth-linux-v1.8.4.zip
$ unzip multi-geth-linux-v1.8.4
$ sudo mv geth /usr/local/bin/geth
$ sudo nano /etc/systemd/system/ethereumsocial.service
```
Copy the following service settings
```bash
[]
Description=Ethereum Social
After=network-online.target
[]
Type=simple
ExecStart=/usr/local/bin/geth --social --cache=1024 --maxpeers=125 --rpc --rpcaddr 127.0.0.1 --rpcport 8545
KillMode=process
Restart=always
RestartSec=10
User=<your-user-name>
[]
WantedBy=multi-user.target
```
Start the multi-geth node
```bash
$ sudo systemctl start ethereumsocial
$ sudo systemctl enable ethereumsocial
```
Now install the node.js with etsc-net-intelligence-api
```bash
$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
$ sudo apt-get install -y nodejs
$ git clone https://github.com/ethereumsocial/etsc-net-intelligence-api
$ cd etsc-net-intelligence-api
$ npm install
$ sudo npm install -g pm2
```
Configure the app modifying [app.json](app.json). Ensure that geth node is running on the backgruond with --rpc enabled.
```json
"env":
{
"NODE_ENV" : "production", // tell the client we're in production environment
"RPC_HOST" : "127.0.0.1", // eth JSON-RPC host
"RPC_PORT" : "8545", // eth JSON-RPC port
"LISTENING_PORT" : "30303", // eth listening port (only used for display)
"INSTANCE_NAME" : "", // whatever you wish to name your node
"CONTACT_DETAILS" : "", // add your contact details here if you wish (email/skype)
"WS_SERVER" : "wss://stats.ethereumsocial.kr", // path to eth-netstats WebSockets api server
"WS_SECRET" : "NewEthereumSocial", // WebSockets api server secret used for login
"VERBOSITY" : 2 // Set the verbosity (0 = silent, 1 = error, warn, 2 = error, warn, info, success, 3 = all logs)
}
```
Run it using pm2:
```bash
pm2 start app.json
```