-
Notifications
You must be signed in to change notification settings - Fork 13
/
manifest.yaml
239 lines (238 loc) · 6.57 KB
/
manifest.yaml
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
# v0.3.0 and up Manifest example written in yaml (toml and json are also acceptable)
id: electrs
title: "electrs"
version: 0.9.7
release-notes: "Initial release for EmbassyOS"
license: mit
wrapper-repo: "https://github.com/Start9Labs/electrs-wrapper"
upstream-repo: "https://github.com/romanz/electrs"
support-site: "https://github.com/romanz/electrs/issues"
marketing-site: "https://github.com/romanz/electrs"
build: ["make"]
description:
short: An efficient re-implementation of Electrum Server in Rust
long: |
An efficient re-implementation of Electrum Server, inspired by ElectrumX, Electrum Personal Server and bitcoincore-indexd. The motivation behind this project is to enable a user to self host an Electrum server, with required hardware resources not much beyond those of a full node. The server indexes the entire Bitcoin blockchain, and the resulting index enables fast queries for any given user wallet, allowing the user to keep real-time track of balances and transaction history using the Electrum wallet. Since it runs on the users own machine, there is no need for the wallet to communicate with external Electrum servers, thus preserving the privacy of the users addresses and balances.
assets:
license: LICENSE
icon: icon.png
instructions: instructions.md
docker-images: image.tar
main:
type: docker
image: main
entrypoint: "docker_entrypoint.sh"
args: []
mounts:
main: /data
health-checks:
electrum:
name: Electrum RPC Interface
success-message: The electrum RPC interface is alive and responding to basic commands.
type: docker
image: main
entrypoint: "check-electrum.sh"
args: []
inject: true
system: false
io-format: json
synced:
name: Synced
success-message: The indexes are built and the electrum interface is fully operational. You may now connect a wallet.
type: docker
image: main
entrypoint: "check-synced.sh"
args: []
inject: true
system: false
io-format: json
config:
get:
type: docker
image: compat
system: true
entrypoint: compat
args:
- config
- get
- /root
- "/mnt/assets/config_spec.yaml"
mounts:
compat: /mnt/assets
main: /root
io-format: yaml
set:
type: docker
image: compat
system: true
entrypoint: compat
args:
- config
- set
- electrs
- /root
- "/mnt/assets/config_rules.yaml"
- "/mnt/assets/dependencies.yaml"
mounts:
compat: /mnt/assets
main: /root
io-format: yaml
properties:
type: docker
image: compat
system: true
entrypoint: compat
args:
- properties
- /root
mounts:
main: /root
compat: /mnt/assets
io-format: yaml
volumes:
main:
type: data
compat:
type: assets
interfaces:
electrum:
name: Electrum Interface
description: Serves an electrum API for use with compatible wallets
tor-config:
port-mapping:
50001: "50001"
# lan-config:
# 443:
# ssl: true
# internal: 50001
ui: false
protocols:
- tcp
- http
- electrum
alerts:
install: "INSTABILITY WARNING: Electrs uses up to 1GB of RAM when syncing. Please make sure you have at least this much free RAM before starting Electrs, or you will cause your system to become unresponsive! This is especially risky if running alongside Mastodon on a 4GB system!"
start: "INSTABILITY WARNING: Electrs uses up to 1GB of RAM when syncing. Please make sure you have at least this much free RAM before starting Electrs, or you will cause your system to become unresponsive! This is especially risky if running alongside Mastodon on a 4GB system!"
dependencies:
btc-rpc-proxy:
version: ">=0.3.2.1 <0.4.0"
requirement:
type: "opt-out"
how: Set "Bitcoin Core" to "Internal (Bitcoin Core)" or "External"
description: Provides bitcoin rpc interface needed for info about fees, blockchain, mempool, network, and transactions. Can also use bitcoind for rpc interface, or an external node for both.
config:
check:
type: docker
image: compat
system: true
entrypoint: compat
args:
- dependency
- check
- electrs
- "btc-rpc-proxy"
- /data
- "/mnt/assets/btc-rpc-proxy.rules.yaml"
mounts:
compat: /mnt/assets
main: /data
io-format: yaml
auto-configure:
type: docker
image: compat
system: true
entrypoint: compat
args:
- dependency
- "auto-configure"
- electrs
- "btc-rpc-proxy"
- /data
- "/mnt/assets/btc-rpc-proxy.rules.yaml"
mounts:
compat: /mnt/assets
main: /data
io-format: yaml
bitcoind:
version: ">=0.21.1.2 <23.0.0"
requirement:
type: "opt-out"
how: Set "Bitcoin Core" type to "External"
description: Needed for peer interface and rpc interface. Can also use btc-rpc-proxy for rpc interface, or an external node for both.
config:
check:
type: docker
image: compat
system: true
entrypoint: compat
args:
- dependency
- check
- electrs
- bitcoind
- /data
- "/mnt/assets/bitcoind.rules.yaml"
mounts:
compat: /mnt/assets
main: /data
io-format: yaml
auto-configure:
type: docker
image: compat
system: true
entrypoint: compat
args:
- dependency
- "auto-configure"
- electrs
- bitcoind
- /data
- "/mnt/assets/bitcoind.rules.yaml"
mounts:
compat: /mnt/assets
main: /data
io-format: yaml
backup:
create:
type: docker
image: compat
system: true
entrypoint: compat
args:
- duplicity
- create
- /mnt/backup
- /data
mounts:
BACKUP: /mnt/backup
main: /data
restore:
type: docker
image: compat
system: true
entrypoint: compat
args:
- duplicity
- restore
- /mnt/backup
- /data
mounts:
BACKUP: /mnt/backup
main: /data
migrations:
from:
"<=0.9.7":
type: docker
image: main
entrypoint: sh
args: ["-c", 'json=''{"configured": true }'' && echo "$json"']
io-format: json
inject: true
to:
"<=0.9.7":
type: docker
image: main
entrypoint: sh
args: ["-c", 'json=''{"configured": true }'' && echo "$json"']
io-format: json
inject: true