ln-docker-daemons 4.0.4 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/README.md +28 -0
- package/bitcoind/spawn_bitcoind_docker.js +29 -34
- package/index.js +2 -0
- package/lnd/index.js +2 -1
- package/lnd/spawn_lnd_docker.js +25 -12
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -191,3 +191,31 @@ Spawn an LND Docker
|
|
|
191
191
|
socket: <LND RPC Host:Port Network Address String>
|
|
192
192
|
tower_socket: <LND Tower Socket Host:Port Network Address String>
|
|
193
193
|
}
|
|
194
|
+
|
|
195
|
+
## `spawnLndDocker`
|
|
196
|
+
|
|
197
|
+
Spawn a new Docker image running LND
|
|
198
|
+
|
|
199
|
+
{
|
|
200
|
+
bitcoind_rpc_host: <Bitcoin Core RPC Host String>
|
|
201
|
+
bitcoind_rpc_pass: <Bitcoin Core RPC Password String>
|
|
202
|
+
bitcoind_rpc_port: <Bitcoin Core RPC Port Number>
|
|
203
|
+
bitcoind_rpc_user: <Bitcoin Core RPC Username String>
|
|
204
|
+
[bitcoind_zmq_block_port]: <Bitcoin Core ZMQ Block Port Number>
|
|
205
|
+
[bitcoind_zmq_tx_port]: <Bitcoin Core ZMQ Transaction Port Number>
|
|
206
|
+
[configuration]: [<LND Configuration Argument String>]
|
|
207
|
+
p2p_port: <LND Peer to Peer Listen Port Number>
|
|
208
|
+
rpc_port: <LND RPC Port Number>
|
|
209
|
+
tower_port: <LND Tower Port Number>
|
|
210
|
+
[seed]: <Mnemonic Seed String>
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
@returns via cbk or Promise
|
|
214
|
+
{
|
|
215
|
+
cert: <LND Base64 Serialized TLS Cert Base64 String>
|
|
216
|
+
kill: ({}, [cbk]) => <Kill LND Docker Promise>
|
|
217
|
+
macaroon: <LND Base64 Serialized Macaroon String>
|
|
218
|
+
public_key: <LND Public Key Hex String>
|
|
219
|
+
socket: <LND RPC Host:Port Network Address String>
|
|
220
|
+
tower_socket: <LND Tower Socket Host:Port Network Address String>
|
|
221
|
+
}
|
|
@@ -24,8 +24,8 @@ const trim = string => string.replace(/=+$/g, '');
|
|
|
24
24
|
{
|
|
25
25
|
p2p_port: <P2P Port Number>
|
|
26
26
|
rpc_port: <RPC Port Number>
|
|
27
|
-
zmq_block_port: <ZMQ Blocks Port Number>
|
|
28
|
-
zmq_tx_port: <ZMQ Transactions Port Number>
|
|
27
|
+
[zmq_block_port]: <ZMQ Blocks Port Number>
|
|
28
|
+
[zmq_tx_port]: <ZMQ Transactions Port Number>
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
@returns via cbk or Promise
|
|
@@ -49,14 +49,6 @@ module.exports = (args, cbk) => {
|
|
|
49
49
|
return cbk([400, 'ExpectedRpcListenPortToSpawnBitcoindDocker']);
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
if (!args.zmq_block_port) {
|
|
53
|
-
return cbk([400, 'ExpectedZmqBlocksPortToSpawnBitcoindDocker']);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
if (!args.zmq_tx_port) {
|
|
57
|
-
return cbk([400, 'ExpectedZmqTxPortToSpawnBitcoindDocker']);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
52
|
return cbk();
|
|
61
53
|
},
|
|
62
54
|
|
|
@@ -73,30 +65,33 @@ module.exports = (args, cbk) => {
|
|
|
73
65
|
|
|
74
66
|
// Spawn the docker image
|
|
75
67
|
spawnDocker: ['generateAuth', ({generateAuth}, cbk) => {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
68
|
+
const arguments = [
|
|
69
|
+
'--disablewallet',
|
|
70
|
+
'--listen=1',
|
|
71
|
+
'--persistmempool=false',
|
|
72
|
+
'--printtoconsole',
|
|
73
|
+
'--regtest',
|
|
74
|
+
'--rpcallowip=172.17.0.0/16',
|
|
75
|
+
`--rpcauth=${generateAuth.rpc_auth}`,
|
|
76
|
+
'--rpcbind=0.0.0.0',
|
|
77
|
+
'--server',
|
|
78
|
+
'--txindex',
|
|
79
|
+
];
|
|
80
|
+
|
|
81
|
+
const image = dockerBitcoindImage;
|
|
82
|
+
const ports = {'18443/tcp': args.rpc_port, '18444/tcp': args.p2p_port};
|
|
83
|
+
|
|
84
|
+
if (!!args.zmq_block_port) {
|
|
85
|
+
arguments.push('--zmqpubrawblock=tcp://*:' + args.zmq_block_port);
|
|
86
|
+
ports[`${args.zmq_block_port}/tcp`] = args.zmq_block_port;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
if (!!args.zmq_tx_port) {
|
|
90
|
+
arguments.push('--zmqpubrawtx=tcp://*:' + args.zmq_tx_port);
|
|
91
|
+
ports[`${args.zmq_tx_port}/tcp`] = args.zmq_tx_port;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
return spawnDockerImage({arguments, image, ports}, cbk);
|
|
100
95
|
}],
|
|
101
96
|
|
|
102
97
|
// Wait for the image to respond to a query
|
package/index.js
CHANGED
|
@@ -2,10 +2,12 @@ const {setupChannel} = require('./setup');
|
|
|
2
2
|
const {spawnBitcoindDocker} = require('./bitcoind');
|
|
3
3
|
const {spawnLightningCluster} = require('./cluster');
|
|
4
4
|
const {spawnLightningDocker} = require('./lnd');
|
|
5
|
+
const {spawnLndDocker} = require('./lnd');
|
|
5
6
|
|
|
6
7
|
module.exports = {
|
|
7
8
|
setupChannel,
|
|
8
9
|
spawnBitcoindDocker,
|
|
9
10
|
spawnLightningCluster,
|
|
10
11
|
spawnLightningDocker,
|
|
12
|
+
spawnLndDocker,
|
|
11
13
|
};
|
package/lnd/index.js
CHANGED
package/lnd/spawn_lnd_docker.js
CHANGED
|
@@ -10,6 +10,7 @@ const {spawnDockerImage} = require('./../docker');
|
|
|
10
10
|
|
|
11
11
|
const imageName = ver => !!ver ? `lightninglabs/lnd:${ver}` : dockerLndImage;
|
|
12
12
|
const interval = 100;
|
|
13
|
+
const join = n => n.join('');
|
|
13
14
|
const macaroonPath = '/root/.lnd/data/chain/bitcoin/regtest/admin.macaroon';
|
|
14
15
|
const times = 500;
|
|
15
16
|
const tlsCertPath = '/root/.lnd/tls.cert';
|
|
@@ -21,8 +22,8 @@ const tlsCertPath = '/root/.lnd/tls.cert';
|
|
|
21
22
|
bitcoind_rpc_pass: <Bitcoin Core RPC Password String>
|
|
22
23
|
bitcoind_rpc_port: <Bitcoin Core RPC Port Number>
|
|
23
24
|
bitcoind_rpc_user: <Bitcoin Core RPC Username String>
|
|
24
|
-
bitcoind_zmq_block_port: <Bitcoin Core ZMQ Block Port Number>
|
|
25
|
-
bitcoind_zmq_tx_port: <Bitcoin Core ZMQ Transaction Port Number>
|
|
25
|
+
[bitcoind_zmq_block_port]: <Bitcoin Core ZMQ Block Port Number>
|
|
26
|
+
[bitcoind_zmq_tx_port]: <Bitcoin Core ZMQ Transaction Port Number>
|
|
26
27
|
[configuration]: [<LND Configuration Argument String>]
|
|
27
28
|
p2p_port: <LND Peer to Peer Listen Port Number>
|
|
28
29
|
rpc_port: <LND RPC Port Number>
|
|
@@ -32,8 +33,8 @@ const tlsCertPath = '/root/.lnd/tls.cert';
|
|
|
32
33
|
|
|
33
34
|
@returns via cbk or Promise
|
|
34
35
|
{
|
|
35
|
-
cert: <LND Base64 Serialized TLS Cert>
|
|
36
|
-
kill: ({}, [cbk]) => <Kill LND
|
|
36
|
+
cert: <LND Base64 Serialized TLS Cert Base64 String>
|
|
37
|
+
kill: ({}, [cbk]) => <Kill LND Dockers Promise>
|
|
37
38
|
macaroon: <LND Base64 Serialized Macaroon String>
|
|
38
39
|
public_key: <LND Public Key Hex String>
|
|
39
40
|
socket: <LND RPC Host:Port Network Address String>
|
|
@@ -57,14 +58,6 @@ module.exports = (args, cbk) => {
|
|
|
57
58
|
return cbk([400, 'ExpectedBitcoinCoreRpcUserToSpawnLndDocker']);
|
|
58
59
|
}
|
|
59
60
|
|
|
60
|
-
if (!args.bitcoind_zmq_block_port) {
|
|
61
|
-
return cbk([400, 'ExpectedBitcoinCoreZmqBlockPortToSpawnLndDocker']);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
if (!args.bitcoind_zmq_tx_port) {
|
|
65
|
-
return cbk([400, 'ExpectedBitcoinCoreZmqTxPortToSpawnLndDocker']);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
61
|
if (!args.p2p_port) {
|
|
69
62
|
return cbk([400, 'ExpectedLndPeer2PeerNetworkPortToSpawnLndDocker']);
|
|
70
63
|
}
|
|
@@ -112,6 +105,26 @@ module.exports = (args, cbk) => {
|
|
|
112
105
|
'--watchtower.listen', `127.0.0.1:9911`,
|
|
113
106
|
];
|
|
114
107
|
|
|
108
|
+
if (!!zmqBlockPort) {
|
|
109
|
+
arguments.push(join([
|
|
110
|
+
'--bitcoind.zmqpubrawblock=tcp://',
|
|
111
|
+
chainHost,
|
|
112
|
+
':',
|
|
113
|
+
zmqBlockPort,
|
|
114
|
+
]));
|
|
115
|
+
|
|
116
|
+
arguments.push(join([
|
|
117
|
+
'--bitcoind.zmqpubrawtx=tcp://',
|
|
118
|
+
chainHost,
|
|
119
|
+
':',
|
|
120
|
+
zmqTxPort
|
|
121
|
+
]));
|
|
122
|
+
} else {
|
|
123
|
+
arguments.push('--bitcoind.rpcpolling');
|
|
124
|
+
arguments.push('--bitcoind.blockpollinginterval=1s');
|
|
125
|
+
arguments.push('--bitcoind.txpollinginterval=1s');
|
|
126
|
+
}
|
|
127
|
+
|
|
115
128
|
return spawnDockerImage({
|
|
116
129
|
arguments: arguments.concat(args.configuration || []),
|
|
117
130
|
image: imageName(process.env.DOCKER_LND_VERSION),
|
package/package.json
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"asyncjs-util": "1.2.11",
|
|
13
13
|
"dockerode": "3.3.4",
|
|
14
14
|
"find-free-ports": "3.0.0",
|
|
15
|
-
"lightning": "7.0.
|
|
15
|
+
"lightning": "7.0.6",
|
|
16
16
|
"tar-stream": "3.0.0"
|
|
17
17
|
},
|
|
18
18
|
"description": "Spawn and control LN Docker daemons",
|
|
@@ -35,5 +35,5 @@
|
|
|
35
35
|
"scripts": {
|
|
36
36
|
"test": "tap --branches=1 --functions=1 --lines=1 --statements=1 -j 1 test/bitcoind/*.js test/lnd/*.js"
|
|
37
37
|
},
|
|
38
|
-
"version": "4.0
|
|
38
|
+
"version": "4.1.0"
|
|
39
39
|
}
|