# Deployment

introduce systemd management configs。

# Hardware

# minimun

8core
16g
ssd iops>5k
16core  
32g
ssd iops>5k

# network&port

External IP Address
Port TCP/UDP 31318

# chain node

  • config.toml
[Eth]
SyncMode = "fast"
DiscoveryURLs = []
TrieCleanCacheRejournal= 300000000000

[Eth.TxPool]
Locals = []
NoLocals = false
Journal = "transactions.rlp"
Rejournal = 3600000000000
PriceLimit = 1
PriceBump = 10
AccountSlots = 16
GlobalSlots = 4096
AccountQueue = 64
GlobalQueue = 1024
Lifetime = 10800000000000

[Node]
DataDir = "/data/cun/data"
InsecureUnlockAllowed = true
NoUSB = true
IPCPath = "geth.ipc"
HTTPHost = "localhost"
HTTPPort = 8545
HTTPCors = ["*"]
HTTPVirtualHosts = ["*"]
HTTPModules = ['eth', 'net', 'web3']

WSHost = "localhost"
WSPort = 8546
WSModules = ['eth', 'net', 'web3']

GraphQLVirtualHosts = ["localhost"]


[Node.P2P]
MaxPeers = 50
NoDiscovery = false

ListenAddr = ":31318"
EnableMsgEvents = false

[Node.HTTPTimeouts]
ReadTimeout = 30000000000
WriteTimeout = 30000000000
IdleTimeout = 120000000000

use fast sync in the config, if full needed, change this line

SyncMode = "fast"

to

SyncMode = "full"

# start bash

To show full detail help info of all flags, type geth help or geth -h

  • run.sh
#!/usr/bin/env bash
/data/cun/geth-linux-amd64 \
--config /data/cun/config.toml  \
--logpath /data/cun/logs \
--verbosity 3  >> /data/cun/logs/systemd_chain_console.out 2>&1

if you need to use it as archive node, add:

--syncmode full \
--gcmode archive \

so:

#!/usr/bin/env bash
/data/cun/geth-linux-amd64 \
--config /data/cun/config.toml  \
--logpath /data/cun/logs \
--syncmode full \
--gcmode archive \
--verbosity 3  >> /data/cun/logs/systemd_chain_console.out 2>&1

If no any network flags were provided, the node will connect the CUN-mainnet by default. If you want to connect to CUN-testnet, add:

--testnet

# systemd config

[Unit]
Description=huobi smart chain service

[Service]
Type=simple
ExecStart=/bin/sh /data/cun/run.sh

Restart=on-failure
RestartSec=5s

LimitNOFILE=65536

[Install]