diff options
| author | Adam Soltys <[email protected]> | 2018-03-20 16:11:48 +0000 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2018-03-20 16:11:48 +0000 |
| commit | aca2da56939d6168bf8e02a9d112951abc3da927 (patch) | |
| tree | 7209924d5e08e0396cfc60f6041020206389024d | |
| parent | 3393eee9498fea178441f2d4783a5285914766ca (diff) | |
| download | coinos-server-aca2da56939d6168bf8e02a9d112951abc3da927.tar.gz coinos-server-aca2da56939d6168bf8e02a9d112951abc3da927.zip | |
mainnet params, improve tx monitoring perf
| -rw-r--r-- | index.js | 35 | ||||
| -rw-r--r-- | test.js | 31 |
2 files changed, 38 insertions, 28 deletions
@@ -107,34 +107,40 @@ const l = console.log invoicesb.on('data', handlePayment) const zmqSock = zmq.socket('sub') - zmqSock.connect('tcp://127.0.0.1:18503') + zmqSock.connect('tcp://127.0.0.1:18502') zmqSock.subscribe('rawblock') zmqSock.subscribe('rawtx') const channelpeers = [ - '02ece82b43452154392772d63c0a244f1592f0d29037c88020118889b76851173f', - '039cc950286a8fa99218283d1adc2456e0d5e81be558da77dd6e85ba9a1fff5ad3', - '02cac5ed1028d161cd01a9b39eddab672f047e965ea2a0fe031ca220be09c1bd31', + '024e37c9521a54e1095988ea459d39997dc5101c88f0b313cc29610a216733823d', + '021f2cbffc4045ca2d70678ecf8ed75e488290874c9da38074f6d378248337062b', + '02f6725f9c1c40333b67faea92fd211c183050f28df32cac3f9d69685fe9665432', + '02ad6fb8d693dc1e4569bcedefadf5f72a931ae027dc0f0c544b34c1c6f3b9a02b', + '023668a30d0a27304695df3fb1af55a4fb75153eac34840817cae0e6a57894fd51', ] - zmqSock.on('message', async (topic, message, sequence) => { - const addresses = {} - await db.User.findAll({ - attributes: ['username', 'address'], - }).map(u => { addresses[u.address] = u.username }) + const addresses = {} + await db.User.findAll({ + attributes: ['username', 'address'], + }).map(u => { addresses[u.address] = u.username }) + + const payments = (await db.Payment.findAll({ + attributes: ['hash'] + })).map(p => p.hash) + zmqSock.on('message', async (topic, message, sequence) => { topic = topic.toString('utf8') message = message.toString('hex') switch (topic) { case 'rawtx': { - let hash = (await bc.decodeRawTransaction(message)).hash - if (await db.Payment.findOne({ where: { hash } })) return let tx = bitcoin.Transaction.fromHex(message) + let hash = tx.getHash() + if (seen.includes(hash) || payments.includes(hash)) return let total = tx.outs.reduce((a, b) => a + b.value, 0) tx.outs.map(async o => { try { - let address = bitcoin.address.fromOutputScript(o.script, bitcoin.networks.testnet) + let address = bitcoin.address.fromOutputScript(o.script) if (Object.keys(addresses).includes(address)) { let user = await db.User.findOne({ where: { @@ -142,6 +148,9 @@ const l = console.log } }) + seen.push(hash) + while (seen.length > 1000) seen.shift() + user.balance += o.value await user.save() @@ -189,7 +198,7 @@ const l = console.log app.post('/openchannel', auth, async (req, res) => { let err = m => res.status(500).send(m) - if (req.user.balance < 200000) return err('Need at least 200000 satoshis for channel opening') + if (req.user.balance < 50000) return err('Need at least 50000 satoshis for channel opening') let pending = await lna.pendingChannels({}, meta) let busypeers = pending.pending_open_channels.map(c => c.channel.remote_node_pub) @@ -1,19 +1,20 @@ +import core from 'bitcoin-core' import fs from 'fs' import grpc from 'grpc' -try { - ;(async () => { - const lna = await require('lnrpc')({ server: 'localhost:10001', tls: '/home/adam/.lnd/tls.cert' }) - const maca = fs.readFileSync('/home/adam/.lnd/test.macaroon') - const meta = new grpc.Metadata() - meta.add('macaroon', maca.toString('hex')) - lna.meta = meta - console.log('meow') - try { - let i = await lna.getInfo({}, meta) - console.log('i', i) - } catch (e) { console.log(e) } - })() -} catch (e) { console.log(e) } +const bc = new core({ + username: 'adam', + password: 'hk79c7dI8ysAHY42eglqrJLo9A8CoyvWINMAcwuPzhQ=', + network: 'mainnet', +}) -console.log('done') +;(async () => { + const lna = await require('lnrpc')({ server: 'localhost:10001', tls: '/home/adam/.lnd/tls.cert' }) + const maca = fs.readFileSync('/home/adam/.lnd/test.macaroon') + const meta = new grpc.Metadata() + meta.add('macaroon', maca.toString('hex')) + lna.meta = meta + let i = await lna.getInfo({}, meta) + console.log(i) + console.log(await bc.getBalance()) +})() |
