1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
_es_user=electrumx
_es_group=electrumx
post_install() {
mkdir -p /etc/electrumx
mkdir -p /srv/electrumx
_mkuser
_mkssl
chown -R $_es_user:$_es_group /etc/electrumx /srv/electrumx
printf "%b\n" "$ecsda"
}
post_upgrade() {
_mkuser
chown -R $_es_user:$_es_group /etc/electrumx /srv/electrumx
printf "%b\n" "$ecsda"
}
post_remove() {
_rmuser
rm -rf /etc/electrumx /srv/electrumx
}
_mkssl() {
echo -n "Enabling SSL..." # https://en.bitcoin.it/wiki/Enabling_SSL_on_original_client_daemon
openssl genrsa -out /etc/electrumx/server.pem 2048
expect <<EOF | perl -ne 'print if /-----BEGIN\sCERTIFICATE-----/../-----END\sCERTIFICATE-----/' > /etc/electrumx/server.cert
spawn openssl req -new -x509 -nodes -sha1 -days 3650 -key /etc/electrumx/server.pem
expect "Country*" {
send "\r"
}
expect "State*" {
send "\r"
}
expect "Locality*" {
send "\r"
}
expect "Organization*" {
send "\r"
}
expect "Organizational*" {
send "\r"
}
expect "Common*" {
send "\r"
}
expect "Email*" {
send "\r"
}
expect eof
EOF
echo "done"
}
_mkuser() {
getent passwd $_es_user &>/dev/null || {
echo -n "Creating electrumx user... "
grep -E "^$_es_group:" /etc/group >/dev/null || groupadd $_es_group
useradd -m -d /etc/electrumx -g $_es_group -s /usr/bin/nologin $_es_user
echo "done"
}
}
_rmuser() {
echo -n "Removing electrumx user... "
userdel -rf $_es_user 2>/dev/null
echo "done"
}
read -d '' ecdsa <<'EOF'
########################################################################
########################################################################
## ##
## ElectrumX Server ##
## ________________ ##
## ##
## To start electrumx: ##
## ##
## # systemctl start electrumx ##
## ##
## To communicate with electrumx as a normal user: ##
## ##
## $ electrumx-rpc -p 8000 <command> ##
## ##
## To connect to electrumx: ##
## ##
## $ electrum --server 127.0.0.1:50002:s --oneserver ##
## ##
## Config: /etc/electrumx/electrumx.conf ##
## Database: /srv/electrumx ##
## Documentation: /usr/share/doc/electrumx ##
## ##
## ##
## ';,;:. ##
## 'o' .;d. ##
## K. :l ##
## cl .O, ##
## .c:cclc. ##
## .;::;. .;ko,. ':::' .',,,. ##
## .OMMMMMWo ,d,. .oo cXMMMMMX: do. .:d. ##
## x MMMMMMMMxlX. kdoMMMMMMMMMoxl '0 ##
## oMMMMMMMN;'K, .Oc;NMMMMMMMX,ld ;k ##
## :0WMMNk. .cl;,;cl, 'kWMMMWx. :o:,';cc ##
## .. .'. .oWc. .''. ##
## 'oc;,;lo. ##
## ,O. .0. ##
## :k .0. ##
## cl,...:o, ##
## .,,,. ##
## ##
## ##
########################################################################
########################################################################
EOF
|