Added templates for backend package

This commit is contained in:
Jakub Matys 2018-07-24 16:16:09 +02:00
parent 1a83d00f3e
commit d2a83351f0
48 changed files with 1596 additions and 227 deletions

View File

@ -0,0 +1,29 @@
{{define "main" -}}
ARCHIVE := $(shell basename {{.Backend.BinaryURL}})
all:
wget {{.Backend.BinaryURL}}
{{- if eq .Backend.VerificationType "gpg"}}
wget {{.Backend.VerificationSource}} -O checksum
gpg --verify checksum ${ARCHIVE}
{{- else if eq .Backend.VerificationType "gpg-sha256"}}
wget {{.Backend.VerificationSource}} -O checksum
gpg --verify checksum
sha256sum -c --ignore-missing checksum
{{- else if eq .Backend.VerificationType "sha256"}}
[ "$$(sha256sum ${ARCHIVE} | cut -d ' ' -f 1)" = "{{.Backend.VerificationSource}}" ]
{{- end}}
mkdir backend
{{.Backend.ExtractCommand}} ${ARCHIVE}
{{- if .Backend.ExcludeFiles}}
# generated from exclude_files
{{- range $index, $name := .Backend.ExcludeFiles}}
rm backend/{{$name}}
{{- end}}
{{- end}}
clean:
rm -rf backend
rm -f ${ARCHIVE}
rm -f checksum
{{end}}

View File

@ -0,0 +1,30 @@
{{define "main" -}}
daemon=1
server=1
{{if .Backend.Mainnet}}mainnet=1{{else}}testnet=1{{end}}
nolisten=1
rpcuser={{.RPC.RPCUser}}
rpcpassword={{.RPC.RPCPass}}
rpcport={{.Ports.BackendRPC}}
txindex=1
zmqpubhashtx={{template "MessageQueueBindingTemplate" .}}
zmqpubhashblock={{template "MessageQueueBindingTemplate" .}}
rpcworkqueue=1100
maxmempool=2000
dbcache=1000
{{- if .Backend.AdditionalParams}}
# generated from additional_params
{{- range $name, $value := .Backend.AdditionalParams}}
{{- if eq $name "addnode"}}
{{- range $index, $node := $value}}
addnode={{$node}}
{{- end}}
{{- else}}
{{$name}}={{$value}}
{{- end}}
{{- end}}
{{- end}}
{{end}}

View File

@ -0,0 +1,7 @@
{{define "main" -}}
backend ({{.Backend.Version}}{{if .Backend.PackageRevision}}-{{.Backend.PackageRevision}}{{end}}) unstable; urgency=medium
* {{.Coin.Name}} backend daemon version {{.Backend.Version}}
-- {{.Backend.PackageMaintainer}} <{{.Backend.PackageMaintainerEmail}}> {{.Meta.BuildDatetime}}
{{end}}

View File

@ -0,0 +1,3 @@
{{define "main" -}}
9
{{end}}

View File

@ -0,0 +1,3 @@
{{define "main" -}}
{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf
{{end}}

View File

@ -0,0 +1,13 @@
{{define "main" -}}
Source: backend
Section: satoshilabs
Priority: optional
Maintainer: {{.Backend.PackageMaintainerEmail}}
Build-Depends: debhelper, wget, tar, gzip, make, dh-systemd, dh-exec
Standards-Version: 3.9.5
Package: {{.Backend.PackageName}}
Architecture: amd64
Depends: ${shlibs:Depends}, ${misc:Depends}, logrotate
Description: {{.Coin.Name}} backend daemon
{{end}}

View File

@ -0,0 +1,3 @@
{{define "main" -}}
{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend
{{end}}

View File

@ -0,0 +1,5 @@
{{define "main" -}}
#!/usr/bin/dh-exec
backend/* {{.Env.BackendInstallPath}}/{{.Coin.Alias}}
backend.conf => {{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf
{{end}}

View File

@ -0,0 +1,11 @@
{{define "main" -}}
{{template "LogrotateFilesTemplate" .}}
{
rotate 7
daily
compress
missingok
notifempty
copytruncate
}
{{end}}

View File

@ -0,0 +1,27 @@
{{define "main" -}}
#!/bin/bash
set -e
case "$1" in
configure)
if ! id -u {{.Backend.SystemUser}} &> /dev/null
then
useradd --system -M -U {{.Backend.SystemUser}} -s /bin/false
fi
if [ "$(stat -c '%U' {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend)" != "{{.Backend.SystemUser}}" ]
then
chown -R {{.Backend.SystemUser}}:{{.Backend.SystemUser}} {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend
fi
{{if .Backend.PostinstScriptTemplate}}
# generated from postinst_template
{{template "PostinstScriptTemplate" .}}
{{end}}
;;
esac
#DEBHELPER#
{{end}}

View File

@ -0,0 +1,16 @@
{{define "main" -}}
#!/usr/bin/make -f
DH_VERBOSE = 1
%:
dh $@ --with=systemd
override_dh_systemd_start:
dh_systemd_start --no-start
override_dh_installinit:
override_dh_strip:
dh_strip --no-automatic-dbgsym
{{end}}

View File

@ -0,0 +1,46 @@
{{define "main" -}}
[Unit]
Description={{.Coin.Name}} backend daemon
After=network.target
[Service]
ExecStart={{template "ExecCommandTemplate" .}}
User={{.Backend.SystemUser}}
Restart=on-failure
WorkingDirectory={{.Env.BackendInstallPath}}/{{.Coin.Alias}}
{{if eq .Backend.ServiceType "forking" -}}
Type=forking
RuntimeDirectory={{.Coin.Alias}}
PIDFile=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid
{{else -}}
Type=simple
{{end}}
# Resource limits
LimitNOFILE=500000
# Hardening measures
####################
# Provide a private /tmp and /var/tmp.
PrivateTmp=true
# Mount /usr, /boot/ and /etc read-only for the process.
ProtectSystem=full
# Disallow the process and all of its children to gain
# new privileges through execve().
NoNewPrivileges=true
# Use a new /dev namespace only populated with API pseudo devices
# such as /dev/null, /dev/zero and /dev/random.
PrivateDevices=true
{{if .Backend.ProtectMemory -}}
# Deny the creation of writable and executable memory mappings.
MemoryDenyWriteExecute=true
{{end}}
[Install]
WantedBy=multi-user.target
{{end}}

257
build/templates/generate.go Normal file
View File

@ -0,0 +1,257 @@
package main
import (
"encoding/json"
"fmt"
"io"
"os"
"path/filepath"
"text/template"
"time"
)
const (
inputDir = "build/templates"
outputDir = "build/pkg-defs"
)
type Config struct {
Meta struct {
BuildDatetime string
}
Env struct {
Version string `json:"version"`
BackendInstallPath string `json:"backend_install_path"`
BackendDataPath string `json:"backend_data_path"`
BlockbookInstallPath string `json:"blockbook_install_path"`
BlockbookDataPath string `json:"blockbook_data_path"`
} `json:"env"`
Coin struct {
Name string `json:"name"`
Shortcut string `json:"shortcut"`
Label string `json:"label"`
Alias string `json:"alias"`
} `json:"coin"`
Ports struct {
BackendRPC int `json:"backend_rpc"`
BackendMessageQueue int `json:"backend_message_queue"`
BlockbookInternal int `json:"blockbook_internal"`
BlockbookPublic int `json:"blockbook_public"`
} `json:"ports"`
RPC struct {
RPCURLTemplate string `json:"rpc_url_template"`
RPCUser string `json:"rpc_user"`
RPCPass string `json:"rpc_pass"`
RPCTimeout int `json:"rpc_timeout"`
Parse bool `json:"parse"`
MessageQueueBindingTemplate string `json:"message_queue_binding_template"`
Subversion string `json:"subversion"`
AddressFormat string `json:"address_format"`
MempoolWorkers int `json:"mempool_workers"`
MempoolSubWorkers int `json:"mempool_sub_workers"`
BlockAddressesToKeep int `json:"block_addresses_to_keep"`
} `json:"rpc"`
Backend struct {
PackageName string `json:"package_name"`
PackageRevision string `json:"package_revision"`
PackageMaintainer string `json:"package_maintainer"`
PackageMaintainerEmail string `json:"package_maintainer_email"`
SystemUser string `json:"system_user"`
Version string `json:"version"`
BinaryURL string `json:"binary_url"`
VerificationType string `json:"verification_type"`
VerificationSource string `json:"verification_source"`
ExtractCommand string `json:"extract_command"`
ExcludeFiles []string `json:"exclude_files"`
ExecCommandTemplate string `json:"exec_command_template"`
LogrotateFilesTemplate string `json:"logrotate_files_template"`
PostinstScriptTemplate string `json:"postinst_script_template"`
ServiceType string `json:"service_type"`
ProtectMemory bool `json:"protect_memory"`
Mainnet bool `json:"mainnet"`
ConfigFile string `json:"config_file"`
AdditionalParams interface{} `json:"additional_params"`
} `json:"backend"`
Blockbook struct {
PackageName string `json:"package_name"`
SystemUser string `json:"system_user"`
Explorer string `json:"explorer"`
AdditionalParams string `json:"additional_params"`
} `json:"blockbook"`
}
func (c *Config) ParseTemplate() *template.Template {
templates := map[string]string{
"RPCURLTemplate": c.RPC.RPCURLTemplate,
"MessageQueueBindingTemplate": c.RPC.MessageQueueBindingTemplate,
"ExecCommandTemplate": c.Backend.ExecCommandTemplate,
"LogrotateFilesTemplate": c.Backend.LogrotateFilesTemplate,
"PostinstScriptTemplate": c.Backend.PostinstScriptTemplate,
}
t := template.New("")
for name, def := range templates {
t = template.Must(t.Parse(fmt.Sprintf(`{{define "%s"}}%s{{end}}`, name, def)))
}
return t
}
func main() {
if len(os.Args) < 2 {
fmt.Fprintf(os.Stderr, "Usage: %s coin_alias [...]\n", filepath.Base(os.Args[0]))
os.Exit(1)
}
for _, coin := range os.Args[1:] {
config := loadConfig(coin)
generatePackageDefinitions(config)
}
}
func loadConfig(coin string) *Config {
dir := "configs"
config := new(Config)
f, err := os.Open(filepath.Join(dir, "coins", coin+".json"))
if err != nil {
panic(err)
}
d := json.NewDecoder(f)
err = d.Decode(config)
if err != nil {
panic(err)
}
f, err = os.Open(filepath.Join(dir, "environ.json"))
if err != nil {
panic(err)
}
d = json.NewDecoder(f)
err = d.Decode(&config.Env)
if err != nil {
panic(err)
}
config.Meta.BuildDatetime = time.Now().Format("Mon, 02 Jan 2006 15:04:05 -0700")
switch config.Backend.ServiceType {
case "forking":
case "simple":
default:
panic("Invalid service type: " + config.Backend.ServiceType)
}
switch config.Backend.VerificationType {
case "":
case "gpg":
case "sha256":
case "gpg-sha256":
default:
panic("Invalid verification type: " + config.Backend.VerificationType)
}
return config
}
func generatePackageDefinitions(config *Config) {
templ := config.ParseTemplate()
makeOutputDir(outputDir)
for _, subdir := range []string{"backend"} {
root := filepath.Join(inputDir, subdir)
err := os.Mkdir(filepath.Join(outputDir, subdir), 0755)
if err != nil {
panic(err)
}
err = filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
if err != nil {
return fmt.Errorf("%s: %s", path, err)
}
if path == root {
return nil
}
if filepath.Base(path)[0] == '.' {
return nil
}
subpath := path[len(root)-len(subdir):]
if info.IsDir() {
err = os.Mkdir(filepath.Join(outputDir, subpath), info.Mode())
if err != nil {
return fmt.Errorf("%s: %s", path, err)
}
return nil
}
t := template.Must(templ.Clone())
t = template.Must(t.ParseFiles(path))
err = writeTemplate(filepath.Join(outputDir, subpath), info, t, config)
if err != nil {
return fmt.Errorf("%s: %s", path, err)
}
return nil
})
if err != nil {
panic(err)
}
}
writeBackendConfigFile(config)
}
func makeOutputDir(path string) {
err := os.RemoveAll(path)
if err == nil {
err = os.Mkdir(path, 0755)
}
if err != nil {
panic(err)
}
}
func writeTemplate(path string, info os.FileInfo, templ *template.Template, config *Config) error {
f, err := os.OpenFile(path, os.O_CREATE|os.O_WRONLY, info.Mode())
if err != nil {
return err
}
defer f.Close()
err = templ.ExecuteTemplate(f, "main", config)
if err != nil {
return err
}
return nil
}
func writeBackendConfigFile(config *Config) {
out, err := os.OpenFile(filepath.Join(outputDir, "backend/backend.conf"), os.O_CREATE|os.O_WRONLY, 0644)
if err != nil {
panic(err)
}
defer out.Close()
if config.Backend.ConfigFile == "" {
return
} else {
in, err := os.Open(filepath.Join(outputDir, "backend/config", config.Backend.ConfigFile))
if err != nil {
panic(err)
}
defer in.Close()
_, err = io.Copy(out, in)
if err != nil {
panic(err)
}
}
}

View File

@ -1,14 +0,0 @@
{
"coin_name": "Bcash",
"rpcURL": "http://127.0.0.1:8031",
"rpcUser": "rpc",
"rpcPass": "rpc",
"rpcTimeout": 25,
"parse": true,
"zeroMQBinding": "tcp://127.0.0.1:38331",
"subversion": "/Bitcoin ABC:0.17.1/",
"mempoolWorkers": 8,
"mempoolSubWorkers": 2,
"blockAddressesToKeep": 300,
"addressFormat": "legacy"
}

View File

@ -1,14 +0,0 @@
{
"coin_name": "Bcash Testnet",
"rpcURL": "http://localhost:18031",
"rpcUser": "rpc",
"rpcPass": "rpc",
"rpcTimeout": 25,
"parse": true,
"zeroMQBinding": "tcp://127.0.0.1:48331",
"subversion": "/Bitcoin ABC:0.17.1/",
"mempoolWorkers": 8,
"mempoolSubWorkers": 2,
"blockAddressesToKeep": 300,
"addressFormat": "legacy"
}

View File

@ -1,13 +0,0 @@
{
"coin_name": "Bgold",
"rpcURL": "http://127.0.0.1:8035",
"rpcUser": "rpc",
"rpcPass": "rpc",
"rpcTimeout": 25,
"parse": true,
"zeroMQBinding": "tcp://127.0.0.1:38335",
"subversion": "/Bitcoin Gold:0.15.1/",
"mempoolWorkers": 8,
"mempoolSubWorkers": 2,
"blockAddressesToKeep": 300
}

View File

@ -1,12 +0,0 @@
{
"coin_name": "Bitcoin",
"rpcURL": "http://127.0.0.1:8030",
"rpcUser": "rpc",
"rpcPass": "rpc",
"rpcTimeout": 25,
"parse": true,
"zeroMQBinding": "tcp://127.0.0.1:38330",
"mempoolWorkers": 8,
"mempoolSubWorkers": 2,
"blockAddressesToKeep": 300
}

View File

@ -1,42 +0,0 @@
{
"coin_name": "Testnet",
"coin_shortcut": "TEST",
"coin_folder": "bitcoin_testnet",
"ports": {
"backendRPC": 18030,
"backendMessageQueue": 48330,
"blockbookInternal": 19030,
"blockbookPublic": 19130
},
"rpc": {
"rpcURLTemplate": "http://localhost:{{.ports.backendRPC}}",
"rpcUser": "rpc",
"rpcPass": "rpc",
"rpcTimeout": 25,
"parse": true,
"messageQueueBindingTemplate": "tcp://127.0.0.1:{{.ports.backendMessageQueue}}",
"mempoolWorkers": 8,
"mempoolSubWorkers": 2,
"blockAddressesToKeep": 300
},
"backend": {
"package_name": "backend-bitcoin-testnet",
"system_user": "bitcoin",
"version": "0.16.1",
"binaryURL": "https://bitcoin.org/bin/bitcoin-core-0.16.1/bitcoin-0.16.1-x86_64-linux-gnu.tar.gz",
"verificationType": "asc/sha256/...",
"verificationSourceURL": "https://bitcoin.org/bin/bitcoin-core-0.16.1/SHA256SUMS.asc",
"verificationSignature": "eccf8b61ba0549f6839e586c7dc6fc4bf6d7591ac432aaea8a7df0266b113d27",
"executableTemplate": "{{.env.BackendInstallPath}}/bin/bitcoind -datadir={{.env.BackendDataPath}}/{{.coin.coin_folder}}/backend -conf={{.env.BackendInstallPath}}/{{.coin.coin_folder}}/{{.coin.coin_folder}}.conf -pid=/run/{{.coin.coin_folder}}/{{.coin.coin_folder}}.pid",
"postinstScriptTemplate": "HOME=/opt/coins/data/{{.coin.coin_folder}}/backend /opt/coins/nodes/zcash_testnet/bin/zcash-fetch-params --testnet",
"serviceType": "forking/simple",
"hardeningMemory": true,
"coin_specific_config_template reminder": null
},
"blockbook": {
"package_name": "blockbook-bitcoin-testnet",
"system_user": "blockbook-bitcoin",
"explorer": "/explorer",
"additional_params": "-resyncindexperiod=30011 -resyncmempoolperiod=2011",
}
}

55
configs/coins/bcash.json Normal file
View File

@ -0,0 +1,55 @@
{
"coin": {
"name": "Bcash",
"shortcut": "BCH",
"label": "Bitcoin Cash",
"alias": "bcash"
},
"ports": {
"backend_rpc": 8031,
"backend_message_queue": 38331,
"blockbook_internal": 9031,
"blockbook_public": 9131
},
"rpc": {
"rpc_url_template": "http://localhost:{{.Ports.BackendRPC}}",
"rpc_user": "rpc",
"rpc_pass": "rpc",
"rpc_timeout": 25,
"parse": true,
"message_queue_binding_template": "tcp://127.0.0.1:{{.Ports.BackendMessageQueue}}",
"subversion": "/Bitcoin ABC:0.17.1/",
"address_format": "legacy",
"mempool_workers": 8,
"mempool_sub_workers": 2,
"block_addresses_to_keep": 300
},
"backend": {
"package_name": "backend-bcash",
"package_revision": "satoshilabs-1",
"package_maintainer": "Jakub Matys",
"package_maintainer_email": "jakub.matys@satoshilabs.com",
"system_user": "bcash",
"version": "0.17.1",
"binary_url": "https://download.bitcoinabc.org/0.17.1/linux/bitcoin-abc-0.17.1-x86_64-linux-gnu.tar.gz",
"verification_type": "sha256",
"verification_source": "eccf8b61ba0549f6839e586c7dc6fc4bf6d7591ac432aaea8a7df0266b113d27",
"extract_command": "tar -C backend --strip 1 -xf",
"exclude_files": [
"bin/bitcoin-qt"
],
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/bitcoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/*.log",
"postinst_script_template": "",
"service_type": "forking",
"protect_memory": true,
"mainnet": true,
"config_file": "bitcoin.conf"
},
"blockbook": {
"package_name": "blockbook-bcash",
"system_user": "blockbook-bcash",
"explorer": "/explorer",
"additional_params": ""
}
}

View File

@ -0,0 +1,55 @@
{
"coin": {
"name": "Bcash Testnet",
"shortcut": "TBCH",
"label": "Bitcoin Cash Testnet",
"alias": "bcash_testnet"
},
"ports": {
"backend_rpc": 18031,
"backend_message_queue": 48331,
"blockbook_internal": 19031,
"blockbook_public": 19131
},
"rpc": {
"rpc_url_template": "http://localhost:{{.Ports.BackendRPC}}",
"rpc_user": "rpc",
"rpc_pass": "rpc",
"rpc_timeout": 25,
"parse": true,
"message_queue_binding_template": "tcp://127.0.0.1:{{.Ports.BackendMessageQueue}}",
"subversion": "/Bitcoin ABC:0.17.1/",
"address_format": "legacy",
"mempool_workers": 8,
"mempool_sub_workers": 2,
"block_addresses_to_keep": 300
},
"backend": {
"package_name": "backend-bcash-testnet",
"package_revision": "satoshilabs-1",
"package_maintainer": "Jakub Matys",
"package_maintainer_email": "jakub.matys@satoshilabs.com",
"system_user": "bcash",
"version": "0.17.1",
"binary_url": "https://download.bitcoinabc.org/0.17.1/linux/bitcoin-abc-0.17.1-x86_64-linux-gnu.tar.gz",
"verification_type": "sha256",
"verification_source": "eccf8b61ba0549f6839e586c7dc6fc4bf6d7591ac432aaea8a7df0266b113d27",
"extract_command": "tar -C backend --strip 1 -xf",
"exclude_files": [
"bin/bitcoin-qt"
],
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/bitcoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/testnet3/*.log",
"postinst_script_template": "",
"service_type": "forking",
"protect_memory": true,
"mainnet": false,
"config_file": "bitcoin.conf"
},
"blockbook": {
"package_name": "blockbook-bcash-testnet",
"system_user": "blockbook-bcash",
"explorer": "/explorer",
"additional_params": ""
}
}

249
configs/coins/bgold.json Normal file
View File

@ -0,0 +1,249 @@
{
"coin": {
"name": "Bgold",
"shortcut": "BTG",
"label": "Bitcoin Gold",
"alias": "bgold"
},
"ports": {
"backend_rpc": 18035,
"backend_message_queue": 38335,
"blockbook_internal": 9035,
"blockbook_public": 9135
},
"rpc": {
"rpc_url_template": "http://localhost:{{.Ports.BackendRPC}}",
"rpc_user": "rpc",
"rpc_pass": "rpc",
"rpc_timeout": 25,
"parse": true,
"message_queue_binding_template": "tcp://127.0.0.1:{{.Ports.BackendMessageQueue}}",
"subversion": "/Bitcoin Gold:0.15.1/",
"mempool_workers": 8,
"mempool_sub_workers": 2,
"block_addresses_to_keep": 300
},
"backend": {
"package_name": "backend-bgold",
"package_revision": "satoshilabs-1",
"package_maintainer": "Jakub Matys",
"package_maintainer_email": "jakub.matys@satoshilabs.com",
"system_user": "bgold",
"version": "0.15.1",
"binary_url": "https://github.com/BTCGPU/BTCGPU/releases/download/v0.15.1/bitcoin-gold-0.15.1-x86_64-linux-gnu.tar.gz",
"verification_type": "gpg-sha256",
"verification_source": "https://github.com/BTCGPU/BTCGPU/releases/download/v0.15.1/SHA256SUMS.asc",
"extract_command": "tar -C backend --strip 1 -xf",
"exclude_files": [
"bin/bitcoin-qt"
],
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/bgoldd -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/*.log",
"postinst_script_template": "",
"service_type": "forking",
"protect_memory": true,
"mainnet": true,
"config_file": "bitcoin.conf",
"additional_params": {
"mempoolexpiry": 72,
"timeout": 768,
"maxconnections": 250,
"addnode": [
"188.126.0.134",
"45.56.84.44",
"109.201.133.93:8338",
"178.63.11.246:8338",
"188.120.223.153:8338",
"79.137.64.158:8338",
"78.193.221.106:8338",
"139.59.151.13:8338",
"76.16.12.81:8338",
"172.104.157.62:8338",
"43.207.67.209:8338",
"178.63.11.246:8338",
"79.137.64.158:8338",
"78.193.221.106:8338",
"139.59.151.13:8338",
"172.104.157.62:8338",
"178.158.247.119:8338",
"109.201.133.93:8338",
"178.63.11.246:8338",
"139.59.151.13:8338",
"172.104.157.62:8338",
"188.120.223.153:8338",
"178.158.247.119:8338",
"78.193.221.106:8338",
"79.137.64.158:8338",
"76.16.12.81:8338",
"176.12.32.153:8338",
"178.158.247.122:8338",
"81.37.147.185:8338",
"176.12.32.153:8338",
"79.137.64.158:8338",
"178.158.247.122:8338",
"66.70.247.151:8338",
"89.18.27.165:8338",
"178.63.11.246:8338",
"91.222.17.86:8338",
"37.59.50.143:8338",
"91.50.219.221:8338",
"154.16.63.17:8338",
"213.136.76.42:8338",
"176.99.4.140:8338",
"176.9.48.36:8338",
"78.193.221.106:8338",
"34.236.228.99:8338",
"213.154.230.107:8338",
"111.231.66.252:8338",
"188.120.223.153:8338",
"219.89.122.82:8338",
"109.192.23.101:8338",
"98.114.91.222:8338",
"217.66.156.41:8338",
"172.104.157.62:8338",
"114.44.222.73:8338",
"91.224.140.216:8338",
"149.154.71.96:8338",
"107.181.183.242:8338",
"36.78.96.92:8338",
"46.22.7.74:8338",
"89.110.53.186:8338",
"73.243.220.85:8338",
"109.86.137.8:8338",
"77.78.12.89:8338",
"87.92.116.26:8338",
"93.78.122.48:8338",
"35.195.83.0:8338",
"46.147.75.220:8338",
"212.47.236.104:8338",
"95.220.100.230:8338",
"178.70.142.247:8338",
"45.76.136.149:8338",
"94.155.74.206:8338",
"178.70.142.247:8338",
"128.199.228.97:8338",
"77.171.144.207:8338",
"159.89.192.119:8338",
"136.63.238.170:8338",
"31.27.193.105:8338",
"176.107.192.240:8338",
"94.140.241.96:8338",
"66.108.15.5:8338",
"81.177.127.204:8338",
"88.18.69.174:8338",
"178.70.130.94:8338",
"78.98.162.140:8338",
"95.133.156.224:8338",
"46.188.16.96:8338",
"94.247.16.21:8338",
"eunode.pool.gold:8338",
"asianode.pool.gold:8338",
"45.56.84.44:8338",
"176.9.48.36:8338",
"93.57.253.121:8338",
"172.104.157.62:8338",
"176.12.32.153:8338",
"pool.serverpower.net:8338",
"213.154.229.126:8338",
"213.154.230.106:8338",
"213.154.230.107:8338",
"213.154.229.50:8338",
"145.239.0.50:8338",
"107.181.183.242:8338",
"109.201.133.93:8338",
"120.41.190.109:8338",
"120.41.191.224:8338",
"138.68.249.79:8338",
"13.95.223.202:8338",
"145.239.0.50:8338",
"149.56.95.26:8338",
"158.69.103.228:8338",
"159.89.192.119:8338",
"164.132.207.143:8338",
"171.100.141.106:8338",
"172.104.157.62:8338",
"173.176.95.92:8338",
"176.12.32.153:8338",
"178.239.54.250:8338",
"178.63.11.246:8338",
"185.139.2.140:8338",
"188.120.223.153:8338",
"190.46.2.92:8338",
"192.99.194.113:8338",
"199.229.248.218:8338",
"213.154.229.126:8338",
"213.154.229.50:8338",
"213.154.230.106:8338",
"213.154.230.107:8338",
"217.182.199.21",
"35.189.127.200:8338",
"35.195.83.0:8338",
"35.197.197.166:8338",
"35.200.168.155:8338",
"35.203.167.11:8338",
"37.59.50.143:8338",
"45.27.161.195:8338",
"45.32.234.160:8338",
"45.56.84.44:8338",
"46.188.16.96:8338",
"46.251.19.171:8338",
"5.157.119.109:8338",
"52.28.162.48:8338",
"54.153.140.202:8338",
"54.68.81.2:83388338",
"62.195.190.190:8338",
"62.216.5.136:8338",
"65.110.125.175:8338",
"67.68.226.130:8338",
"73.243.220.85:8338",
"77.78.12.89:8338",
"78.193.221.106:8338",
"78.98.162.140:8338",
"79.137.64.158:8338",
"84.144.177.238:8338",
"87.92.116.26:8338",
"89.115.139.117:8338",
"89.18.27.165:8338",
"91.50.219.221:8338",
"93.88.74.26",
"93.88.74.26:8338",
"94.155.74.206:8338",
"95.154.201.132:8338",
"98.29.248.131:8338",
"u2.my.to:8338",
"[2001:470:b:ce:dc70:83ff:fe7a:1e74]:8338",
"2001:7b8:61d:1:250:56ff:fe90:c89f:8338",
"2001:7b8:63a:1002:213:154:230:106:8338",
"2001:7b8:63a:1002:213:154:230:107:8338",
"45.56.84.44",
"109.201.133.93:8338",
"120.41.191.224:30607",
"138.68.249.79:50992",
"138.68.249.79:51314",
"172.104.157.62",
"178.63.11.246:8338",
"185.139.2.140:8338",
"199.229.248.218:28830",
"35.189.127.200:41220",
"35.189.127.200:48244",
"35.195.83.0:35172",
"35.195.83.0:35576",
"35.195.83.0:35798",
"35.197.197.166:32794",
"35.197.197.166:33112",
"35.197.197.166:33332",
"35.203.167.11:52158",
"37.59.50.143:35254",
"45.27.161.195:33852",
"45.27.161.195:36738",
"45.27.161.195:58628"
]
}
},
"blockbook": {
"package_name": "blockbook-bgold",
"system_user": "blockbook-bgold",
"explorer": "/explorer",
"additional_params": ""
}
}

View File

@ -0,0 +1,56 @@
{
"coin": {
"name": "Bitcoin",
"shortcut": "BTC",
"label": "Bitcoin",
"alias": "bitcoin"
},
"ports": {
"backend_rpc": 8030,
"backend_message_queue": 38330,
"blockbook_internal": 9030,
"blockbook_public": 9130
},
"rpc": {
"rpc_url_template": "http://localhost:{{.Ports.BackendRPC}}",
"rpc_user": "rpc",
"rpc_pass": "rpc",
"rpc_timeout": 25,
"parse": true,
"message_queue_binding_template": "tcp://127.0.0.1:{{.Ports.BackendMessageQueue}}",
"mempool_workers": 8,
"mempool_sub_workers": 2,
"block_addresses_to_keep": 300
},
"backend": {
"package_name": "backend-bitcoin",
"package_revision": "satoshilabs-1",
"package_maintainer": "Jakub Matys",
"package_maintainer_email": "jakub.matys@satoshilabs.com",
"system_user": "bitcoin",
"version": "0.16.1",
"binary_url": "https://bitcoin.org/bin/bitcoin-core-0.16.1/bitcoin-0.16.1-x86_64-linux-gnu.tar.gz",
"verification_type": "gpg-sha256",
"verification_source": "https://bitcoin.org/bin/bitcoin-core-0.16.1/SHA256SUMS.asc",
"extract_command": "tar -C backend --strip 1 -xf",
"exclude_files": [
"bin/bitcoin-qt"
],
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/bitcoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/*.log",
"postinst_script_template": "",
"service_type": "forking",
"protect_memory": true,
"mainnet": true,
"config_file": "bitcoin.conf",
"additional_params": {
"deprecatedrpc": "estimatefee"
}
},
"blockbook": {
"package_name": "blockbook-bitcoin",
"system_user": "blockbook-bitcoin",
"explorer": "/explorer",
"additional_params": ""
}
}

View File

@ -0,0 +1,56 @@
{
"coin": {
"name": "Testnet",
"shortcut": "TEST",
"label": "Testnet",
"alias": "bitcoin_testnet"
},
"ports": {
"backend_rpc": 18030,
"backend_message_queue": 48330,
"blockbook_internal": 19030,
"blockbook_public": 19130
},
"rpc": {
"rpc_url_template": "http://localhost:{{.Ports.BackendRPC}}",
"rpc_user": "rpc",
"rpc_pass": "rpc",
"rpc_timeout": 25,
"parse": true,
"message_queue_binding_template": "tcp://127.0.0.1:{{.Ports.BackendMessageQueue}}",
"mempool_workers": 8,
"mempool_sub_workers": 2,
"block_addresses_to_keep": 300
},
"backend": {
"package_name": "backend-bitcoin-testnet",
"package_revision": "satoshilabs-1",
"package_maintainer": "Jakub Matys",
"package_maintainer_email": "jakub.matys@satoshilabs.com",
"system_user": "bitcoin",
"version": "0.16.1",
"binary_url": "https://bitcoin.org/bin/bitcoin-core-0.16.1/bitcoin-0.16.1-x86_64-linux-gnu.tar.gz",
"verification_type": "gpg-sha256",
"verification_source": "https://bitcoin.org/bin/bitcoin-core-0.16.1/SHA256SUMS.asc",
"extract_command": "tar -C backend --strip 1 -xf",
"exclude_files": [
"bin/bitcoin-qt"
],
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/bitcoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/testnet3/*.log",
"postinst_script_template": "",
"service_type": "forking",
"protect_memory": true,
"mainnet": false,
"config_file": "bitcoin.conf",
"additional_params": {
"deprecatedrpc": "estimatefee"
}
},
"blockbook": {
"package_name": "blockbook-bitcoin-testnet",
"system_user": "blockbook-bitcoin",
"explorer": "/explorer",
"additional_params": ""
}
}

57
configs/coins/dash.json Normal file
View File

@ -0,0 +1,57 @@
{
"coin": {
"name": "Dash",
"shortcut": "DASH",
"label": "Dash",
"alias": "dash"
},
"ports": {
"backend_rpc": 8033,
"backend_message_queue": 38333,
"blockbook_internal": 9033,
"blockbook_public": 9133
},
"rpc": {
"rpc_url_template": "http://localhost:{{.Ports.BackendRPC}}",
"rpc_user": "rpc",
"rpc_pass": "rpc",
"rpc_timeout": 25,
"parse": true,
"message_queue_binding_template": "tcp://127.0.0.1:{{.Ports.BackendMessageQueue}}",
"subversion": "/Dash Core:0.12.3.2/",
"mempool_workers": 8,
"mempool_sub_workers": 2,
"block_addresses_to_keep": 300
},
"backend": {
"package_name": "backend-dash",
"package_revision": "satoshilabs-1",
"package_maintainer": "Jakub Matys",
"package_maintainer_email": "jakub.matys@satoshilabs.com",
"system_user": "dash",
"version": "0.12.3",
"binary_url": "https://github.com/dashpay/dash/releases/download/v0.12.3.2/dashcore-0.12.3.2-x86_64-linux-gnu.tar.gz",
"verification_type": "gpg-sha256",
"verification_source": "https://github.com/dashpay/dash/releases/download/v0.12.3.2/SHA256SUMS.asc",
"extract_command": "tar -C backend --strip 1 -xf",
"exclude_files": [
"bin/dash-qt"
],
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/dashd -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/*.log",
"postinst_script_template": "",
"service_type": "forking",
"protect_memory": true,
"mainnet": true,
"config_file": "bitcoin.conf",
"additional_params": {
"mempoolexpiry": 72
}
},
"blockbook": {
"package_name": "blockbook-dash",
"system_user": "blockbook-dash",
"explorer": "/explorer",
"additional_params": ""
}
}

View File

@ -0,0 +1,57 @@
{
"coin": {
"name": "Dash Testnet",
"shortcut": "tDASH",
"label": "Dash Testnet",
"alias": "dash_testnet"
},
"ports": {
"backend_rpc": 18033,
"backend_message_queue": 48333,
"blockbook_internal": 19033,
"blockbook_public": 19133
},
"rpc": {
"rpc_url_template": "http://localhost:{{.Ports.BackendRPC}}",
"rpc_user": "rpc",
"rpc_pass": "rpc",
"rpc_timeout": 25,
"parse": true,
"message_queue_binding_template": "tcp://127.0.0.1:{{.Ports.BackendMessageQueue}}",
"subversion": "/Dash Core:0.12.3.2/",
"mempool_workers": 8,
"mempool_sub_workers": 2,
"block_addresses_to_keep": 300
},
"backend": {
"package_name": "backend-dash-testnet",
"package_revision": "satoshilabs-1",
"package_maintainer": "Jakub Matys",
"package_maintainer_email": "jakub.matys@satoshilabs.com",
"system_user": "dash",
"version": "0.12.3",
"binary_url": "https://github.com/dashpay/dash/releases/download/v0.12.3.2/dashcore-0.12.3.2-x86_64-linux-gnu.tar.gz",
"verification_type": "gpg-sha256",
"verification_source": "https://github.com/dashpay/dash/releases/download/v0.12.3.2/SHA256SUMS.asc",
"extract_command": "tar -C backend --strip 1 -xf",
"exclude_files": [
"bin/dash-qt"
],
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/dashd -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/testnet3/*.log",
"postinst_script_template": "",
"service_type": "forking",
"protect_memory": true,
"mainnet": false,
"config_file": "bitcoin.conf",
"additional_params": {
"mempoolexpiry": 72
}
},
"blockbook": {
"package_name": "blockbook-dash-testnet",
"system_user": "blockbook-dash",
"explorer": "/explorer",
"additional_params": ""
}
}

View File

@ -0,0 +1,57 @@
{
"coin": {
"name": "Dogecoin",
"shortcut": "DOGE",
"label": "Dogecoin",
"alias": "dogecoin"
},
"ports": {
"backend_rpc": 8038,
"backend_message_queue": 38338,
"blockbook_internal": 9038,
"blockbook_public": 9138
},
"rpc": {
"rpc_url_template": "http://localhost:{{.Ports.BackendRPC}}",
"rpc_user": "rpc",
"rpc_pass": "rpc",
"rpc_timeout": 25,
"parse": true,
"message_queue_binding_template": "tcp://127.0.0.1:{{.Ports.BackendMessageQueue}}",
"mempool_workers": 8,
"mempool_sub_workers": 2,
"block_addresses_to_keep": 300
},
"backend": {
"package_name": "backend-dogecoin",
"package_revision": "satoshilabs-1",
"package_maintainer": "Jakub Matys",
"package_maintainer_email": "jakub.matys@satoshilabs.com",
"system_user": "dogecoin",
"version": "1.10.0",
"binary_url": "https://github.com/dogecoin/dogecoin/releases/download/v1.10.0/dogecoin-1.10.0-linux64.tar.gz",
"verification_type": "sha256",
"verification_source": "2e5b61842695d74ebcd30f21014cf74b6265f0f7756e9f140f031259bb3cd656",
"extract_command": "tar -C backend --strip 1 -xf",
"exclude_files": [
"bin/dogecoin-qt"
],
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/dogecoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/*.log",
"postinst_script_template": "",
"service_type": "forking",
"protect_memory": false,
"mainnet": true,
"config_file": "bitcoin.conf",
"additional_params": {
"whitelist": "127.0.0.1",
"rpcthreads": 32
}
},
"blockbook": {
"package_name": "blockbook-dogecoin",
"system_user": "blockbook-dogecoin",
"explorer": "/explorer",
"additional_params": "-resyncindexperiod=30011 -resyncmempoolperiod=2011"
}
}

View File

@ -0,0 +1,51 @@
{
"coin": {
"name": "Ethereum",
"shortcut": "ETH",
"label": "Ethereum",
"alias": "ethereum"
},
"ports": {
"backend_rpc": 8036,
"backend_message_queue": 0,
"blockbook_internal": 9036,
"blockbook_public": 9136
},
"rpc": {
"rpc_url_template": "ws://localhost:{{.Ports.BackendRPC}}",
"rpc_user": "rpc",
"rpc_pass": "rpc",
"rpc_timeout": 25,
"parse": true,
"message_queue_binding_template": "",
"mempool_workers": 8,
"mempool_sub_workers": 2,
"block_addresses_to_keep": 300
},
"backend": {
"package_name": "backend-ethereum",
"package_revision": "satoshilabs-1",
"package_maintainer": "Jakub Matys",
"package_maintainer_email": "jakub.matys@satoshilabs.com",
"system_user": "ethereum",
"version": "1.8.10-eae63c51",
"binary_url": "https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.8.10-eae63c51.tar.gz",
"verification_type": "gpg",
"verification_source": "https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.8.10-eae63c51.tar.gz.asc",
"extract_command": "tar -C backend --strip 1 -xf",
"exclude_files": [],
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/geth --ipcdisable --syncmode full --cache 1024 --nat none --datadir {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend --port 38336 --ws --wsaddr 0.0.0.0 --wsport {{.Ports.BackendRPC}} --wsorigins \"*\" --rpc --rpcport 8136 -rpcaddr 0.0.0.0 --rpccorsdomain \"*\" --rpcvhosts \"*\" 2>>{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
"postinst_script_template": "",
"service_type": "simple",
"protect_memory": true,
"mainnet": true,
"config_file": ""
},
"blockbook": {
"package_name": "blockbook-ethereum",
"system_user": "blockbook-ethereum",
"explorer": "/explorer",
"additional_params": ""
}
}

View File

@ -0,0 +1,51 @@
{
"coin": {
"name": "Ethereum Testnet Ropsten",
"shortcut": "tETH",
"label": "Ethereum Testnet Ropsten",
"alias": "ethereum_testnet_ropsten"
},
"ports": {
"backend_rpc": 18036,
"backend_message_queue": 0,
"blockbook_internal": 19036,
"blockbook_public": 19136
},
"rpc": {
"rpc_url_template": "ws://localhost:{{.Ports.BackendRPC}}",
"rpc_user": "rpc",
"rpc_pass": "rpc",
"rpc_timeout": 25,
"parse": true,
"message_queue_binding_template": "",
"mempool_workers": 8,
"mempool_sub_workers": 2,
"block_addresses_to_keep": 300
},
"backend": {
"package_name": "backend-ethereum-testnet-ropsten",
"package_revision": "satoshilabs-1",
"package_maintainer": "Jakub Matys",
"package_maintainer_email": "jakub.matys@satoshilabs.com",
"system_user": "ethereum",
"version": "1.8.10-eae63c51",
"binary_url": "https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.8.10-eae63c51.tar.gz",
"verification_type": "gpg",
"verification_source": "https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.8.10-eae63c51.tar.gz.asc",
"extract_command": "tar -C backend --strip 1 -xf",
"exclude_files": [],
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/geth --testnet --ipcdisable --cache 1024 --nat none --datadir {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend --port 48336 --ws --wsaddr 0.0.0.0 --wsport {{.Ports.BackendRPC}} --wsorigins \"*\" 2>>{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
"postinst_script_template": "",
"service_type": "simple",
"protect_memory": true,
"mainnet": false,
"config_file": ""
},
"blockbook": {
"package_name": "blockbook-ethereum-testnet-ropsten",
"system_user": "blockbook-ethereum",
"explorer": "/explorer",
"additional_params": ""
}
}

View File

@ -0,0 +1,56 @@
{
"coin": {
"name": "Litecoin",
"shortcut": "LTC",
"label": "Litecoin",
"alias": "litecoin"
},
"ports": {
"backend_rpc": 8034,
"backend_message_queue": 38334,
"blockbook_internal": 9034,
"blockbook_public": 9134
},
"rpc": {
"rpc_url_template": "http://localhost:{{.Ports.BackendRPC}}",
"rpc_user": "rpc",
"rpc_pass": "rpc",
"rpc_timeout": 25,
"parse": true,
"message_queue_binding_template": "tcp://127.0.0.1:{{.Ports.BackendMessageQueue}}",
"mempool_workers": 8,
"mempool_sub_workers": 2,
"block_addresses_to_keep": 300
},
"backend": {
"package_name": "backend-litecoin",
"package_revision": "satoshilabs-1",
"package_maintainer": "Jakub Matys",
"package_maintainer_email": "jakub.matys@satoshilabs.com",
"system_user": "litecoin",
"version": "0.16.0",
"binary_url": "https://download.litecoin.org/litecoin-0.16.0/linux/litecoin-0.16.0-x86_64-linux-gnu.tar.gz",
"verification_type": "gpg-sha256",
"verification_source": "https://download.litecoin.org/litecoin-0.16.0/linux/litecoin-0.16.0-linux-signatures.asc",
"extract_command": "tar -C backend --strip 1 -xf",
"exclude_files": [
"bin/litecoin-qt"
],
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/litecoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/*.log",
"postinst_script_template": "",
"service_type": "forking",
"protect_memory": true,
"mainnet": true,
"config_file": "bitcoin.conf",
"additional_params": {
"whitelist": "127.0.0.1"
}
},
"blockbook": {
"package_name": "blockbook-litecoin",
"system_user": "blockbook-litecoin",
"explorer": "/explorer",
"additional_params": ""
}
}

View File

@ -0,0 +1,56 @@
{
"coin": {
"name": "Litecoin Testnet",
"shortcut": "TLTC",
"label": "Litecoin Testnet",
"alias": "litecoin_testnet"
},
"ports": {
"backend_rpc": 18034,
"backend_message_queue": 48334,
"blockbook_internal": 19034,
"blockbook_public": 19134
},
"rpc": {
"rpc_url_template": "http://localhost:{{.Ports.BackendRPC}}",
"rpc_user": "rpc",
"rpc_pass": "rpc",
"rpc_timeout": 25,
"parse": true,
"message_queue_binding_template": "tcp://127.0.0.1:{{.Ports.BackendMessageQueue}}",
"mempool_workers": 8,
"mempool_sub_workers": 2,
"block_addresses_to_keep": 300
},
"backend": {
"package_name": "backend-litecoin-testnet",
"package_revision": "satoshilabs-1",
"package_maintainer": "Jakub Matys",
"package_maintainer_email": "jakub.matys@satoshilabs.com",
"system_user": "litecoin",
"version": "0.16.0",
"binary_url": "https://download.litecoin.org/litecoin-0.16.0/linux/litecoin-0.16.0-x86_64-linux-gnu.tar.gz",
"verification_type": "gpg-sha256",
"verification_source": "https://download.litecoin.org/litecoin-0.16.0/linux/litecoin-0.16.0-linux-signatures.asc",
"extract_command": "tar -C backend --strip 1 -xf",
"exclude_files": [
"bin/litecoin-qt"
],
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/litecoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/testnet4/*.log",
"postinst_script_template": "",
"service_type": "forking",
"protect_memory": true,
"mainnet": false,
"config_file": "bitcoin.conf",
"additional_params": {
"whitelist": "127.0.0.1"
}
},
"blockbook": {
"package_name": "blockbook-litecoin-testnet",
"system_user": "blockbook-litecoin",
"explorer": "/explorer",
"additional_params": ""
}
}

View File

@ -0,0 +1,63 @@
{
"coin": {
"name": "Namecoin",
"shortcut": "NMC",
"label": "Namecoin",
"alias": "namecoin"
},
"ports": {
"backend_rpc": 8039,
"backend_message_queue": 38339,
"blockbook_internal": 9039,
"blockbook_public": 9139
},
"rpc": {
"rpc_url_template": "http://localhost:{{.Ports.BackendRPC}}",
"rpc_user": "rpc",
"rpc_pass": "rpc",
"rpc_timeout": 25,
"parse": true,
"message_queue_binding_template": "tcp://127.0.0.1:{{.Ports.BackendMessageQueue}}",
"mempool_workers": 8,
"mempool_sub_workers": 2,
"block_addresses_to_keep": 300
},
"backend": {
"package_name": "backend-namecoin",
"package_revision": "satoshilabs-1",
"package_maintainer": "Jakub Matys",
"package_maintainer_email": "jakub.matys@satoshilabs.com",
"system_user": "namecoin",
"version": "0.13.99",
"binary_url": "https://namecoin.org/files/namecoin-core-0.13.99-name-tab-beta1-notreproduced/namecoin-0.13.99-x86_64-linux-gnu.tar.gz",
"verification_type": "sha256",
"verification_source": "294b1106001d6ea2b9d9ee6a655021ef207a24e8f1dec8efd5899728b3849129",
"extract_command": "tar -C backend --strip 1 -xf",
"exclude_files": [
"bin/namecoin-qt"
],
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/namecoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/*.log",
"postinst_script_template": "",
"service_type": "forking",
"protect_memory": true,
"mainnet": true,
"config_file": "bitcoin.conf",
"additional_params": {
"whitelist": "127.0.0.1",
"upnp": 0,
"discover": 0,
"whitelistrelay": 1,
"listenonion": 0,
"addnode": [
"45.24.110.177:8334"
]
}
},
"blockbook": {
"package_name": "blockbook-namecoin",
"system_user": "blockbook-namecoin",
"explorer": "/explorer",
"additional_params": ""
}
}

View File

@ -0,0 +1,54 @@
{
"coin": {
"name": "Vertcoin",
"shortcut": "VTC",
"label": "Vertcoin",
"alias": "vertcoin"
},
"ports": {
"backend_rpc": 8040,
"backend_message_queue": 38340,
"blockbook_internal": 9040,
"blockbook_public": 9140
},
"rpc": {
"rpc_url_template": "http://localhost:{{.Ports.BackendRPC}}",
"rpc_user": "rpc",
"rpc_pass": "rpc",
"rpc_timeout": 25,
"parse": true,
"message_queue_binding_template": "tcp://127.0.0.1:{{.Ports.BackendMessageQueue}}",
"mempool_workers": 8,
"mempool_sub_workers": 2,
"block_addresses_to_keep": 300
},
"backend": {
"package_name": "backend-vertcoin",
"package_revision": "satoshilabs-1",
"package_maintainer": "Jakub Matys",
"package_maintainer_email": "jakub.matys@satoshilabs.com",
"system_user": "vertcoin",
"version": "0.13.2",
"binary_url": "https://github.com/vertcoin-project/vertcoin-core/releases/download/0.13.2/vertcoind-v0.13.2-linux-amd64.zip",
"verification_type": "gpg",
"verification_source": "https://github.com/vertcoin-project/vertcoin-core/releases/download/0.13.2/vertcoind-v0.13.2-linux-amd64.zip.sig",
"extract_command": "unzip -d backend",
"exclude_files": [],
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/vertcoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/*.log",
"postinst_script_template": "",
"service_type": "forking",
"protect_memory": true,
"mainnet": true,
"config_file": "bitcoin.conf",
"additional_params": {
"whitelist": "127.0.0.1"
}
},
"blockbook": {
"package_name": "blockbook-vertcoin",
"system_user": "blockbook-vertcoin",
"explorer": "/explorer",
"additional_params": ""
}
}

View File

@ -0,0 +1,54 @@
{
"coin": {
"name": "Vertcoin Testnet",
"shortcut": "TVTC",
"label": "Vertcoin Testnet",
"alias": "vertcoin_testnet"
},
"ports": {
"backend_rpc": 18040,
"backend_message_queue": 48340,
"blockbook_internal": 19040,
"blockbook_public": 19140
},
"rpc": {
"rpc_url_template": "http://localhost:{{.Ports.BackendRPC}}",
"rpc_user": "rpc",
"rpc_pass": "rpc",
"rpc_timeout": 25,
"parse": true,
"message_queue_binding_template": "tcp://127.0.0.1:{{.Ports.BackendMessageQueue}}",
"mempool_workers": 8,
"mempool_sub_workers": 2,
"block_addresses_to_keep": 300
},
"backend": {
"package_name": "backend-vertcoin-testnet",
"package_revision": "satoshilabs-1",
"package_maintainer": "Jakub Matys",
"package_maintainer_email": "jakub.matys@satoshilabs.com",
"system_user": "vertcoin",
"version": "0.13.2",
"binary_url": "https://github.com/vertcoin-project/vertcoin-core/releases/download/0.13.2/vertcoind-v0.13.2-linux-amd64.zip",
"verification_type": "gpg",
"verification_source": "https://github.com/vertcoin-project/vertcoin-core/releases/download/0.13.2/vertcoind-v0.13.2-linux-amd64.zip.sig",
"extract_command": "unzip -d backend",
"exclude_files": [],
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/vertcoind -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/testnet3/*.log",
"postinst_script_template": "",
"service_type": "forking",
"protect_memory": true,
"mainnet": false,
"config_file": "bitcoin.conf",
"additional_params": {
"whitelist": "127.0.0.1"
}
},
"blockbook": {
"package_name": "blockbook-vertcoin-testnet",
"system_user": "blockbook-vertcoin",
"explorer": "/explorer",
"additional_params": ""
}
}

56
configs/coins/zcash.json Normal file
View File

@ -0,0 +1,56 @@
{
"coin": {
"name": "Zcash",
"shortcut": "ZEC",
"label": "Zcash",
"alias": "zcash"
},
"ports": {
"backend_rpc": 8032,
"backend_message_queue": 38332,
"blockbook_internal": 9032,
"blockbook_public": 9132
},
"rpc": {
"rpc_url_template": "http://localhost:{{.Ports.BackendRPC}}",
"rpc_user": "rpc",
"rpc_pass": "rpc",
"rpc_timeout": 25,
"parse": true,
"message_queue_binding_template": "tcp://127.0.0.1:{{.Ports.BackendMessageQueue}}",
"mempool_workers": 4,
"mempool_sub_workers": 8,
"block_addresses_to_keep": 300
},
"backend": {
"package_name": "backend-zcash",
"package_revision": "satoshilabs-1",
"package_maintainer": "Jakub Matys",
"package_maintainer_email": "jakub.matys@satoshilabs.com",
"system_user": "zcash",
"version": "1.1.1",
"binary_url": "https://z.cash/downloads/zcash-1.1.1-linux64.tar.gz",
"verification_type": "gpg",
"verification_source": "https://z.cash/downloads/zcash-1.1.1-linux64.tar.gz.asc",
"extract_command": "tar -C backend --strip 1 -xf",
"exclude_files": [],
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/zcashd -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/*.log",
"postinst_script_template": "HOME={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend {{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/zcash-fetch-params",
"service_type": "forking",
"protect_memory": false,
"mainnet": true,
"config_file": "bitcoin.conf",
"additional_params": {
"addnode": [
"mainnet.z.cash"
]
}
},
"blockbook": {
"package_name": "blockbook-zcash",
"system_user": "blockbook-zcash",
"explorer": "/explorer",
"additional_params": ""
}
}

View File

@ -0,0 +1,56 @@
{
"coin": {
"name": "Zcash Testnet",
"shortcut": "TAZ",
"label": "Zcash Testnet",
"alias": "zcash_testnet"
},
"ports": {
"backend_rpc": 18032,
"backend_message_queue": 48332,
"blockbook_internal": 19032,
"blockbook_public": 19132
},
"rpc": {
"rpc_url_template": "http://localhost:{{.Ports.BackendRPC}}",
"rpc_user": "rpc",
"rpc_pass": "rpc",
"rpc_timeout": 25,
"parse": true,
"message_queue_binding_template": "tcp://127.0.0.1:{{.Ports.BackendMessageQueue}}",
"mempool_workers": 4,
"mempool_sub_workers": 8,
"block_addresses_to_keep": 300
},
"backend": {
"package_name": "backend-zcash-testnet",
"package_revision": "satoshilabs-1",
"package_maintainer": "Jakub Matys",
"package_maintainer_email": "jakub.matys@satoshilabs.com",
"system_user": "zcash",
"version": "1.1.1",
"binary_url": "https://z.cash/downloads/zcash-1.1.1-linux64.tar.gz",
"verification_type": "gpg",
"verification_source": "https://z.cash/downloads/zcash-1.1.1-linux64.tar.gz.asc",
"extract_command": "tar -C backend --strip 1 -xf",
"exclude_files": [],
"exec_command_template": "{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/zcashd -datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend -conf={{.Env.BackendInstallPath}}/{{.Coin.Alias}}/{{.Coin.Alias}}.conf -pid=/run/{{.Coin.Alias}}/{{.Coin.Alias}}.pid",
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/testnet3/*.log",
"postinst_script_template": "HOME={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend {{.Env.BackendInstallPath}}/{{.Coin.Alias}}/bin/zcash-fetch-params --testnet",
"service_type": "forking",
"protect_memory": false,
"mainnet": false,
"config_file": "bitcoin.conf",
"additional_params": {
"addnode": [
"testnet.z.cash"
]
}
},
"blockbook": {
"package_name": "blockbook-zcash-testnet",
"system_user": "blockbook-zcash",
"explorer": "/explorer",
"additional_params": ""
}
}

View File

@ -1,13 +0,0 @@
{
"coin_name": "Dash",
"rpcURL": "http://127.0.0.1:8033",
"rpcUser": "rpc",
"rpcPass": "rpc",
"rpcTimeout": 25,
"parse": true,
"zeroMQBinding": "tcp://127.0.0.1:38333",
"subversion": "/Dash Core:0.12.2.3/",
"mempoolWorkers": 8,
"mempoolSubWorkers": 2,
"blockAddressesToKeep": 300
}

View File

@ -1,13 +0,0 @@
{
"coin_name": "Dash Testnet",
"rpcURL": "http://localhost:18033",
"rpcUser": "rpc",
"rpcPass": "rpc",
"rpcTimeout": 25,
"parse": true,
"zeroMQBinding": "tcp://127.0.0.1:48333",
"subversion": "/Dash Core:0.12.2.3/",
"mempoolWorkers": 8,
"mempoolSubWorkers": 2,
"blockAddressesToKeep": 300
}

View File

@ -1,12 +0,0 @@
{
"coin_name": "Dogecoin",
"rpcURL": "http://127.0.0.1:8038",
"rpcUser": "rpc",
"rpcPass": "rpcp",
"rpcTimeout": 25,
"parse": true,
"zeroMQBinding": "tcp://127.0.0.1:38338",
"mempoolWorkers": 8,
"mempoolSubWorkers": 2,
"blockAddressesToKeep": 300
}

7
configs/environ.json Normal file
View File

@ -0,0 +1,7 @@
{
"version": "0.0.6",
"backend_install_path": "/opt/coins/nodes",
"backend_data_path": "/opt/coins/data",
"blockbook_install_path": "/opt/coins/blockbook",
"blockbook_data_path": "/opt/coins/data"
}

View File

@ -1,5 +0,0 @@
{
"coin_name": "Ethereum",
"rpcURL": "ws://localhost:8036",
"rpcTimeout": 25
}

View File

@ -1,5 +0,0 @@
{
"coin_name": "Ethereum Testnet Ropsten",
"rpcURL": "ws://localhost:18036",
"rpcTimeout": 25
}

View File

@ -1,12 +0,0 @@
{
"coin_name": "Litecoin",
"rpcURL": "http://localhost:8034",
"rpcUser": "rpc",
"rpcPass": "rpc",
"rpcTimeout": 25,
"parse": true,
"zeroMQBinding": "tcp://localhost:38334",
"mempoolWorkers": 8,
"mempoolSubWorkers": 2,
"blockAddressesToKeep": 300
}

View File

@ -1,12 +0,0 @@
{
"coin_name": "Litecoin Testnet",
"rpcURL": "http://localhost:18034",
"rpcUser": "rpc",
"rpcPass": "rpc",
"rpcTimeout": 25,
"parse": true,
"zeroMQBinding": "tcp://localhost:48334",
"mempoolWorkers": 8,
"mempoolSubWorkers": 2,
"blockAddressesToKeep": 300
}

View File

@ -1,12 +0,0 @@
{
"coin_name": "Namecoin",
"rpcURL": "http://127.0.0.1:8039",
"rpcUser": "rpc",
"rpcPass": "rpc",
"rpcTimeout": 25,
"parse": true,
"zeroMQBinding": "tcp://127.0.0.1:38339",
"mempoolWorkers": 8,
"mempoolSubWorkers": 2,
"blockAddressesToKeep": 300
}

View File

@ -1,12 +0,0 @@
{
"coin_name": "Vertcoin",
"rpcURL": "http://localhost:8040",
"rpcUser": "rpc",
"rpcPass": "rpc",
"rpcTimeout": 25,
"parse": true,
"zeroMQBinding": "tcp://localhost:38340",
"mempoolWorkers": 8,
"mempoolSubWorkers": 2,
"blockAddressesToKeep": 300
}

View File

@ -1,12 +0,0 @@
{
"coin_name": "Vertcoin Testnet",
"rpcURL": "http://localhost:18040",
"rpcUser": "rpc",
"rpcPass": "rpc",
"rpcTimeout": 25,
"parse": true,
"zeroMQBinding": "tcp://localhost:48340",
"mempoolWorkers": 8,
"mempoolSubWorkers": 2,
"blockAddressesToKeep": 300
}

View File

@ -1,12 +0,0 @@
{
"coin_name": "Zcash",
"rpcURL": "http://127.0.0.1:8032",
"rpcUser": "rpc",
"rpcPass": "rpc",
"rpcTimeout": 25,
"parse": true,
"zeroMQBinding": "tcp://127.0.0.1:38332",
"mempoolWorkers": 4,
"mempoolSubWorkers": 8,
"blockAddressesToKeep": 300
}

View File

@ -1,12 +0,0 @@
{
"coin_name": "Zcash Testnet",
"rpcURL": "http://127.0.0.1:18032",
"rpcUser": "rpc",
"rpcPass": "rpc",
"rpcTimeout": 25,
"parse": true,
"zeroMQBinding": "tcp://127.0.0.1:48332",
"mempoolWorkers": 4,
"mempoolSubWorkers": 8,
"blockAddressesToKeep": 300
}