From 7e14da4e949a06da92b8b67024b2ef813512236f Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Tue, 13 Feb 2018 19:35:40 -0800 Subject: read from zmq and use socket.io instead of deepstream --- index.js | 38 +++++++++++++++++++++++++---- mutations.js | 2 ++ package.json | 4 +-- yarn.lock | 80 ++++++++++-------------------------------------------------- 4 files changed, 50 insertions(+), 74 deletions(-) diff --git a/index.js b/index.js index 0aa5038e..cc40fe3a 100644 --- a/index.js +++ b/index.js @@ -12,8 +12,9 @@ import grpc from 'grpc' import passport from './passport' import jwt from 'jsonwebtoken' import bcrypt from 'bcrypt' -import deepstream from 'deepstream.io-client-js' import { graphqlExpress, graphiqlExpress } from 'apollo-server-express' +import zmq from 'zmq' + dotenv.config() const l = console.log @@ -28,6 +29,34 @@ const l = console.log app.use(compression()) app.use(passport.initialize()) + app.use((req, res, next) => { + res.header('Access-Control-Allow-Origin', 'http://localhost:8085') + res.header('Access-Control-Allow-Credentials', true) + res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS') + res.header('Access-Control-Allow-Headers', 'Origin,X-Requested-With,Content-Type,Accept,content-type,application/json,Authorization') + next() + }) + + const server = require('http').createServer(app) + const io = require('socket.io').listen(server) + io.origins('http://localhost:8085') + + let zmqSock = zmq.socket('sub') + zmqSock.connect('tcp://127.0.0.1:18503') + zmqSock.subscribe('rawblock') + zmqSock.subscribe('rawtx') + + zmqSock.on('message', (topic, message, sequence) => { + topic = topic.toString('utf8') + message = message.toString('hex') + + switch (topic) { + case 'rawtx': { + io.emit('tx', message) + } + } + }) + const restClient = ba.restfulClient(process.env.BITCOINAVERAGE_PUBLIC, process.env.BITCOINAVERAGE_SECRET) const lnrpc = await require('lnrpc')({ server: 'localhost:10001' }) const adminMacaroon = fs.readFileSync('/home/adam/.lnd.testa/admin.macaroon') @@ -37,9 +66,8 @@ const l = console.log const invoices = lnrpc.subscribeInvoices({}, meta) invoices.on('data', msg => { - const ds = deepstream('0.0.0.0:6020') - ds.login() - ds.event.emit('invoices', msg) + let io = socketio() + io.emit('invoices', msg) }) const db = await require('./db.js')(lnrpc) @@ -121,5 +149,5 @@ const l = console.log return res.end() }) - app.listen(3000) + server.listen(3000) })() diff --git a/mutations.js b/mutations.js index 57332b7d..1d716e78 100644 --- a/mutations.js +++ b/mutations.js @@ -1,3 +1,4 @@ +import bcrypt from 'bcrypt' import { resolver, defaultArgs, defaultListArgs, attributeFields } from 'graphql-sequelize' import { graphql, @@ -31,6 +32,7 @@ module.exports = (db, gqltypes, lnrpc) => { }, resolve: async (root, { user }) => { user.address = (await lnrpc.newAddress({ type: 1 }, lnrpc.meta)).address + user.password = await bcrypt.hash(user.password, 1) return db['User'].create(user) } }, diff --git a/package.json b/package.json index c4a0d2b6..507c68a6 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,6 @@ "consolidate": "0.14.1", "cookie-parser": "^1.3.2", "cors": "^2.8.4", - "deepstream.io-client-js": "^2.3.0", "dotenv": "^4.0.0", "express": "4.14.0", "express-session": "^1.6.5", @@ -58,7 +57,8 @@ "socket.io-client": "^2.0.3", "sql-template-strings": "^2.2.2", "twilio": "^2.11.1", - "zeromq": "^4.6.0" + "zeromq": "^4.6.0", + "zmq": "^2.15.3" }, "devDependencies": { "babel-preset-es2015": "^6.24.1" diff --git a/yarn.lock b/yarn.lock index 49ac8b49..655c7461 100644 --- a/yarn.lock +++ b/yarn.lock @@ -276,10 +276,6 @@ async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" -async-limiter@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" - async.ensureasync@^0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/async.ensureasync/-/async.ensureasync-0.5.2.tgz#c3c7e4a4e9b31d96875d56b8504598446e1e305d" @@ -1067,9 +1063,9 @@ binary-extensions@^1.0.0: version "1.8.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" -bindings@~1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.3.0.tgz#b346f6ecf6a95f5a815c5839fc7cdb22502f1ed7" +bindings@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.2.1.tgz#14ad6113812d2d37d72e67b4cacb4bb726505f11" bip39@^2.2.0: version "2.3.0" @@ -1363,14 +1359,6 @@ bufferhelper@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/bufferhelper/-/bufferhelper-0.2.0.tgz#ec2f38d92538769cea2901487935e9e21d8173b3" -bufferutil@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-3.0.3.tgz#ce67caefde2282591e399528467fe623f68f4bd5" - dependencies: - bindings "~1.3.0" - nan "~2.7.0" - prebuild-install "~2.3.0" - builtin-modules@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" @@ -1639,10 +1627,6 @@ component-bind@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" -component-emitter2@^1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/component-emitter2/-/component-emitter2-1.3.5.tgz#c1928a8439460ed370266ef5a98236450d7a83d2" - component-emitter@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3" @@ -1999,16 +1983,6 @@ deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" -deepstream.io-client-js@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/deepstream.io-client-js/-/deepstream.io-client-js-2.3.0.tgz#9be8b89a9c868624191aa45f444870192cc3feb7" - dependencies: - component-emitter2 "^1.3.5" - ws "^3.1.0" - optionalDependencies: - bufferutil "^3.0.2" - utf-8-validate "^3.0.3" - del@^2.0.2: version "2.2.2" resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" @@ -4262,9 +4236,9 @@ nan@^2.3.3, nan@^2.6.2, nan@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" -nan@~2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.7.0.tgz#d95bf721ec877e08db276ed3fc6eb78f9083ad46" +nan@~2.3.0: + version "2.3.5" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.3.5.tgz#822a0dc266290ce4cd3a12282ca3e7e364668a08" napa@^3.0.0: version "3.0.0" @@ -4795,25 +4769,6 @@ prebuild-install@^2.2.2: tunnel-agent "^0.6.0" xtend "4.0.1" -prebuild-install@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-2.3.0.tgz#19481247df728b854ab57b187ce234211311b485" - dependencies: - expand-template "^1.0.2" - github-from-package "0.0.0" - minimist "^1.2.0" - mkdirp "^0.5.1" - node-abi "^2.1.1" - noop-logger "^0.1.1" - npmlog "^4.0.1" - os-homedir "^1.0.1" - pump "^1.0.1" - rc "^1.1.6" - simple-get "^1.4.2" - tar-fs "^1.13.0" - tunnel-agent "^0.6.0" - xtend "4.0.1" - prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -6212,14 +6167,6 @@ user-home@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" -utf-8-validate@^3.0.3: - version "3.0.4" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-3.0.4.tgz#a79962cfa4142dda7050234e7e9b37b33907d2af" - dependencies: - bindings "~1.3.0" - nan "~2.7.0" - prebuild-install "~2.3.0" - util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -6401,14 +6348,6 @@ ws@^3.0.0: safe-buffer "~5.1.0" ultron "~1.1.0" -ws@^3.1.0: - version "3.3.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" - dependencies: - async-limiter "~1.0.0" - safe-buffer "~5.1.0" - ultron "~1.1.0" - ws@~2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/ws/-/ws-2.3.1.tgz#6b94b3e447cb6a363f785eaf94af6359e8e81c80" @@ -6538,3 +6477,10 @@ zeromq@^4.6.0: dependencies: nan "^2.6.2" prebuild-install "^2.2.2" + +zmq@^2.15.3: + version "2.15.3" + resolved "https://registry.yarnpkg.com/zmq/-/zmq-2.15.3.tgz#66c6de82cc36b09734b820703776490a6fbbe624" + dependencies: + bindings "~1.2.1" + nan "~2.3.0" -- cgit v1.2.3