From 5ee1573637dcbe6c22620058584cdf3c8cc00354 Mon Sep 17 00:00:00 2001 From: David Dias Date: Sun, 7 Jan 2018 10:54:59 +0000 Subject: [PATCH] refactor: speed up benchmarks --- benchmarks/peer-a.json | 5 +++++ benchmarks/peer-b.json | 5 +++++ benchmarks/send.js | 45 ++++++++++++------------------------------ 3 files changed, 23 insertions(+), 32 deletions(-) create mode 100644 benchmarks/peer-a.json create mode 100644 benchmarks/peer-b.json diff --git a/benchmarks/peer-a.json b/benchmarks/peer-a.json new file mode 100644 index 0000000..b16e4f3 --- /dev/null +++ b/benchmarks/peer-a.json @@ -0,0 +1,5 @@ +{ + "id": "QmVbkvMswbUZbmRHbmBicg5sdzDYBnvGPC5PhZFnkozdoP", + "privKey": "CAASpgkwggSiAgEAAoIBAQCX1xFsZIszqLYXaJ7QZUbotUcWC6SB0CZGUamCPWD5Idfa+LiMByQKLxJrttNkcx+85NRIYPzlV6ToHz6OH/WzUCXEOFy0iKmq/Jz15KKuzzDuyzToqPI0EPRTKWoxI4rj7Ppx6wFQvancgLvxxmPslaqxST+9tsdDw5W2cQnRAIBPoJZtrS9AL9dya6bt6GiLQKKHox4jxVE0P/QYj6/LX7e5wjZMfeS6y4yIdfSiu9UueLI78pixRn5qXcn0zL0L/+xWNsZG2tSVG7BbHFGm4PjF/WdELSOHj9R2YWH+snzdkxPcX3zwle+JKJW/AJGjJGMIoNkIuDg/1uizSRzhAgMBAAECggEAa90gR3v1VzFWibKMf0Yy5UVBxmtm5cDUL8f7PsYTiWd9S9S8ZNz9wS5HS7WI3ibaOPnlw7UCcnmccDkh2xzhEgyxh37yfF1JCmqBpjxRRRVykXBRmaXKySnyJtGY2meBVwEVuK9VM+JINJhO6yYf/gUkSOTcHw0k6QKb7ArJCmrMVH/b/mjqbzQpUM74M6f/5DDU2IYCAaGu5QB7VZsAFSocb5aVvbW3uEAwJ9AmoqYOte6Jlsv07Rb+bENj6E7CeGsh4UPIqLv5ALaLF41U+JDSj/H9fegoxY4lUEEz0cGbgZLOcWUgYCQ3R+E2aBF+EpZ7ySuZjtfwWiXTUVqrQQKBgQD7TNc/kY3IRiMSGy7WJ60wqPc7+f2WnoJFMNPC0G9m0mWvB3jFwmM0lmx6LJ7zw6Xvxxt/LiFFA2dPzvXtxrj2yrKhIhB6fmVNj8VZibxTDGfONXEfc5IvqNQpv0ysCCmt9xlb2GzbJat7jasU8nzcOZED0FjbW8AXVTetXXwozQKBgQCargnkV2CzaKYHfxdJViplBEPaJtOBzcf7XtC62V5NPRruAdOEWvjO0HX9AGemss5F2hruWzAJ99drpbYeDoWPtkM6ui2WeatiOCuU9tom6OtvZ6JbCgDRnUgnvl6R1LhgYT0qm7zdz2CoTtlA9ll9CeqRs0fdrnTpJcxyCpEUZQKBgArh2vhfvzoK/33LO43+jdtrlbk9LCQXnSCN6r2m9QwI1Gpt8mbt8gnW8b+gqwl3UXo+rwwk3T/108V6+t9fGadmQ7ICnaAQVSa0sSEde9BE20HswodQI+Z4cyeTpyhT+ioUZz648o3S5cgl7GCt14ZZ39PAc/ib0oewIwcY40WJAoGAF7mCAuf0CRCQBq5ToAf7UKsqzRcPceViOwf78+zLLgWlT8Qv8SkS6IXI0xlwzHy4brZZUx3hbGX7QKOWH14S1kwaW7Oasm3O/62l4Z9LLpSjJ985Y8VRAtWg75efYbbC4OWJQDPK8CqSpL4TTId8ilUvCVH6P+I2RFxr00ITppECgYA8P3AOAxS/PhNoH02rLi6DHnfcotWGM9m5QkImyH7OL2Im1sKekVuF18iNamxk8HVTo0BMwda86Gdwhr7M0eh7cAuj9kHgYqPsgWKiHEHu2wq7jz85O4EKT96JI8QEphHEWDaBS1toSFnCxFYBsPtCoJO5KMAOLpda70VcRhY+/Q==", + "pubKey": "CAASpgIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCX1xFsZIszqLYXaJ7QZUbotUcWC6SB0CZGUamCPWD5Idfa+LiMByQKLxJrttNkcx+85NRIYPzlV6ToHz6OH/WzUCXEOFy0iKmq/Jz15KKuzzDuyzToqPI0EPRTKWoxI4rj7Ppx6wFQvancgLvxxmPslaqxST+9tsdDw5W2cQnRAIBPoJZtrS9AL9dya6bt6GiLQKKHox4jxVE0P/QYj6/LX7e5wjZMfeS6y4yIdfSiu9UueLI78pixRn5qXcn0zL0L/+xWNsZG2tSVG7BbHFGm4PjF/WdELSOHj9R2YWH+snzdkxPcX3zwle+JKJW/AJGjJGMIoNkIuDg/1uizSRzhAgMBAAE=" +} diff --git a/benchmarks/peer-b.json b/benchmarks/peer-b.json new file mode 100644 index 0000000..449f615 --- /dev/null +++ b/benchmarks/peer-b.json @@ -0,0 +1,5 @@ +{ + "id": "QmTY6txxqgf7E3ChpYEXqz6QSVa32qjDbyeKuiaPYT1vx9", + "privKey": "CAASqQkwggSlAgEAAoIBAQDLAL7+npPinALH9GE0SSSgi89fIWnbZXO1e94cdpJsR6WoZgGeHNZMTUew3x7TeJV1PoX7DFyM2ZxnclJx/C2DLQzQbRnmbMNqfq+3WfvRBk/e2D0UtwALSCPvM5qKBj7JWCAleAw7ypfJYXL1rSa5tYtLprQd6mt9IZsBCHLnfPibMM8X+8QOkw0Y40NONFaTRPN3PXznAmMekFkAMpSf1QyhNlS2WCX5+aARz8uEZYVdycjcA/ISq/WYxEeFCoyRVdEvjeq+NS5b6pFV5nZ4PnOJzFmvEyGBqndpNHEMgCWsvlspXN/jFMY1pTBds/35b4Vqd6ui7lZTiIEr/3nZAgMBAAECggEBALaLMTRc/Lale4q6oj4WF62Wix8MONhk3iuv+wa1SO29b6WCNKotXDa4t2LBAENBB4SqeGhLsV2mwRH0p1aAYZy3gfJaaRPfccntqazCacKIXoIRCLv74zpB4K5URP8gpoz/hcirrrSFdQBNdMaesVgFfADHIuhTx9x5v5yqMEkfaOe5SDxGLhYGEfBGm/+a3zJK9BXUkQ8gCiqRXlCYM2x9emzBBOKDRBUYTJeSStggHKMJwrCm+XYyAMeYf9CLGXa0ziG4QU7F/4QdqPGL6b4aUaT/hLW+SpQUFGsMsioO6k+HGqVEfSemBNteqohxK8ibcgeoZgpUCMXYgd+0DJECgYEA8e6Egshr7kx+O7Jy0C/tRx4+B8H0m9ZyWdKn1rVH9M41JmswDQlh3qY6q2pma35g0J0zqvIn4usGlFfanG3BpD/yiBDAd/75OxD25Jxk6wDXgOnoxFCDwBfi8IlYy8fGxSEizNZHS3oungyr402aMu9k+aTXtGJytp7RHQGCw98CgYEA1s64bTtBmSHtKovHHqlXn/fKBmldxRc68M1uP3TIGSKBeoo2pcS7T4tdXW55tyLVDtDJqe+WIRB8dsaCziI8gnypV4OXENIA09DUGRWlo0NBsd4JqgYe7ALMRLF1l1+DXvz/O33ikh2T7oAmrcOUDKSjcWYvgFGooalHBayxuUcCgYEAxuoRUWZwN1H1SCgEdl+xe5PF9KLn92luQ6QME2ChdQpGcPwYWd+o9GNAQcgNxbv25g8aeCb53HzYwAcr2wny+JULWAxN81tUl9fu5zAfWYkrpvarRx3b9YiuMo76zzHGoDYKYtibbddblN9eRFl9uvtRzmBWah23q6cQ0AR5+4kCgYBHHX8/YovQJ8Q9/rK4evXwlveCceXCd3Ni/5ANYBtS/vKA4DtBXEVrC0eoxAd10wlYc1UgdppsbenW5NevaPRBewYRXBZqUixF8/AUMe95gq3ANjNa39Xi6vY3k8zLhaqXiwjw6DdXioVMQ48KniJooSUfSOZXBDHg+4rw3QClxwKBgQCtlFXk2J0H4YoNrHxTupSui0xntwStQJEWd5Ze4uAK0Z82iJsahdqk6Wk3aqXZqYoXak5E88yzdGLjmqIb+qgzJVjtlHMRv6ETD+kY4ec8/IlTP7Lyxcx5odqi0ooTgUq4sRPWdiTjj4bZWdZS4gkwo12ZXqcyZe2qbuT+gYqrYQ==", + "pubKey": "CAASpgIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDLAL7+npPinALH9GE0SSSgi89fIWnbZXO1e94cdpJsR6WoZgGeHNZMTUew3x7TeJV1PoX7DFyM2ZxnclJx/C2DLQzQbRnmbMNqfq+3WfvRBk/e2D0UtwALSCPvM5qKBj7JWCAleAw7ypfJYXL1rSa5tYtLprQd6mt9IZsBCHLnfPibMM8X+8QOkw0Y40NONFaTRPN3PXznAmMekFkAMpSf1QyhNlS2WCX5+aARz8uEZYVdycjcA/ISq/WYxEeFCoyRVdEvjeq+NS5b6pFV5nZ4PnOJzFmvEyGBqndpNHEMgCWsvlspXN/jFMY1pTBds/35b4Vqd6ui7lZTiIEr/3nZAgMBAAE=" +} diff --git a/benchmarks/send.js b/benchmarks/send.js index e0350cb..3754110 100644 --- a/benchmarks/send.js +++ b/benchmarks/send.js @@ -2,49 +2,30 @@ const Benchmark = require('benchmark') const pull = require('pull-stream') +const parallel = require('async/parallel') const pair = require('pull-pair/duplex') const PeerId = require('peer-id') -const crypto = require('libp2p-crypto') const secio = require('../src') -function createSession (insecure, cb) { - crypto.keys.generateKeyPair('RSA', 2048, (err, key) => { - if (err) { return cb(err) } - - PeerId.createFromPrivKey(key.bytes, (err, id) => { - if (err) { return cb(err) } - - cb(null, secio.encrypt(id, key, insecure)) - }) - }) -} - const suite = new Benchmark.Suite('secio') -const ids = [] -suite.add('createKey', (d) => { - crypto.keys.generateKeyPair('RSA', 2048, (err, key) => { - if (err) { throw err } - PeerId.createFromPrivKey(key.bytes, (err, id) => { - if (err) { throw err } - - ids.push(id) - d.resolve() - }) - }) -}, { defer: true }) - -suite.add('send', (deferred) => { +suite.add('establish an encrypted channel', (deferred) => { const p = pair() - createSession(p[0], (err, local) => { + parallel([ + (cb) => PeerId.createFromJSON(require('./peer-a'), cb), + (cb) => PeerId.createFromJSON(require('./peer-b'), cb) + ], (err, peers) => { if (err) { throw err } - createSession(p[1], (err, remote) => { - if (err) { throw err } - sendMessages(local, remote) - }) + const peerA = peers[0] + const peerB = peers[1] + + const aToB = secio.encrypt(peerB, peerA.privKey, p[0], (err) => { throw err }) + const bToA = secio.encrypt(peerA, peerB.privKey, p[1], (err) => { throw err }) + + sendMessages(aToB, bToA) }) function sendMessages (local, remote) {