aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2018-02-13 19:35:40 -0800
committerAdam Soltys <[email protected]>2018-02-13 19:35:40 -0800
commit7e14da4e949a06da92b8b67024b2ef813512236f (patch)
tree93165fab7968197961bc77353ada789edbbdfc7c
parentd41cd218ff1ebab07f2bf8e84ffa0ca7deeb1a04 (diff)
downloadcoinos-server-7e14da4e949a06da92b8b67024b2ef813512236f.tar.gz
coinos-server-7e14da4e949a06da92b8b67024b2ef813512236f.zip
read from zmq and use socket.io instead of deepstream
-rw-r--r--index.js38
-rw-r--r--mutations.js2
-rw-r--r--package.json4
-rw-r--r--yarn.lock80
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 @@ [email protected]:
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 @@ [email protected]:
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"
-
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"