Skip to content

Commit 42dda83

Browse files
committed
refactor
1 parent 930625e commit 42dda83

22 files changed

+89
-84
lines changed

README.md

+10-13
Original file line numberDiff line numberDiff line change
@@ -63,24 +63,21 @@ See https://ipfs.github.io/js-ipfs-bitswap
6363
```sh
6464
» tree src
6565
src
66-
├── components
67-
│   ├── decision
68-
│   │   ├── engine.js
69-
│   │   ├── index.js
70-
│   │   └── ledger.js
71-
│   ├── network # Handles peerSet and open new conns
72-
│   │   └── index.js
73-
│   └── want-manager # Keeps track of all blocks the peer wants (not the others which it is connected)
74-
│   ├── index.js
75-
│   └── msg-queue.js # Messages to send queue, one per peer
7666
├── constants.js
67+
├── decision-engine
68+
│   ├── index.js
69+
│   └── ledger.js
7770
├── index.js
78-
└── types
79-
├── message # (Type) message that is put in the wire
71+
├── network.js # Handles peerSet and open new conns
72+
├─── want-manager # Keeps track of all blocks the peer (self) wants
73+
│   ├── index.js
74+
│   └── msg-queue.js # Messages to send queue, one per peer
75+
└─── types
76+
├── message # (Type) message that is put in the wire
8077
│   ├── entry.js
8178
│   ├── index.js
8279
│   └── message.proto.js
83-
└── wantlist # (Type) track wanted blocks
80+
└── wantlist # (Type) track wanted blocks
8481
├── entry.js
8582
└── index.js
8683
```

package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"description": "Node.js implementation of the Bitswap data exchange protocol used by IPFS",
55
"main": "src/index.js",
66
"browser": {
7-
"./test/libp2p-bundle": false
7+
"./test/utils/libp2p-bundle": false
88
},
99
"scripts": {
1010
"test": "aegir-test --dom",
@@ -75,6 +75,7 @@
7575
"pull-length-prefixed": "^1.3.0",
7676
"pull-pushable": "^2.1.1",
7777
"pull-stream": "^3.6.0",
78+
"safe-buffer": "^5.1.1",
7879
"varint-decoder": "^0.1.1"
7980
},
8081
"contributors": [

src/components/decision-engine/index.js renamed to src/decision-engine/index.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ const pullAllWith = require('lodash.pullallwith')
1515
const log = debug('bitswap:engine')
1616
log.error = debug('bitswap:engine:error')
1717

18-
const Message = require('../../types/message')
19-
const Wantlist = require('../../types/wantlist')
18+
const Message = require('../types/message')
19+
const Wantlist = require('../types/wantlist')
2020
const Ledger = require('./ledger')
2121

2222
const MAX_MESSAGE_SIZE = 512 * 1024

src/components/decision-engine/ledger.js renamed to src/decision-engine/ledger.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict'
22

3-
const Wantlist = require('../../types/wantlist')
3+
const Wantlist = require('../types/wantlist')
44

55
class Ledger {
66
constructor (peerId) {

src/index.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ const map = require('async/map')
1010
const once = require('once')
1111

1212
const CONSTANTS = require('./constants')
13-
const WantManager = require('./components/want-manager')
14-
const Network = require('./components/network')
15-
const DecisionEngine = require('./components/decision-engine')
13+
const WantManager = require('./want-manager')
14+
const Network = require('./network')
15+
const DecisionEngine = require('./decision-engine')
1616

1717
const log = debug('bitswap')
1818
log.error = debug('bitswap:error')

src/components/network.js renamed to src/network.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ const pull = require('pull-stream')
55
const waterfall = require('async/waterfall')
66
const each = require('async/each')
77

8-
const Message = require('../types/message')
9-
const CONSTANTS = require('../constants')
8+
const Message = require('./types/message')
9+
const CONSTANTS = require('./constants')
1010
const debug = require('debug')
1111
const log = debug('bitswap:network')
1212
log.error = debug('bitswap:network:error')

src/components/want-manager/index.js renamed to src/want-manager/index.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
const debug = require('debug')
44

5-
const Message = require('../../types/message')
6-
const Wantlist = require('../../types/wantlist')
7-
const CONSTANTS = require('../../constants')
5+
const Message = require('../types/message')
6+
const Wantlist = require('../types/wantlist')
7+
const CONSTANTS = require('../constants')
88
const MsgQueue = require('./msg-queue')
99

1010
const log = debug('bitswap:wantmanager')

src/components/want-manager/msg-queue.js renamed to src/want-manager/msg-queue.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
const debug = require('debug')
44
const debounce = require('lodash.debounce')
5-
const Message = require('../../types/message')
5+
const Message = require('../types/message')
66

77
const log = debug('bitswap:wantmanager:queue')
88
log.error = debug('bitswap:wantmanager:queue:error')

test/index-test.js renamed to test/bitswap.js

+7-5
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,10 @@ const PeerBook = require('peer-book')
1818
const Message = require('../src/types/message')
1919
const Bitswap = require('../src')
2020

21-
const utils = require('./utils')
22-
const makeBlock = utils.makeBlock
21+
const mockNetwork = require('./utils/mock-network').mockNetwork
22+
const applyNetwork = require('./utils/mock-network').applyNetwork
23+
24+
const makeBlock = require('./utils/make-block')
2325

2426
function hasBlocks (msg, store, cb) {
2527
each(msg.blocks.values(), (b, cb) => {
@@ -256,7 +258,7 @@ module.exports = (repo) => {
256258
it('block is added locally afterwards', (done) => {
257259
const block = blocks[9]
258260
const bs = new Bitswap(createLibp2pMock(), store)
259-
const net = utils.mockNetwork()
261+
const net = mockNetwork()
260262

261263
bs.network = net
262264
bs.wm.network = net
@@ -328,7 +330,7 @@ module.exports = (repo) => {
328330
}
329331
}
330332
bs1 = new Bitswap(libp2pMock, store)
331-
utils.applyNetwork(bs1, n1)
333+
applyNetwork(bs1, n1)
332334
bs1.start()
333335

334336
let store2
@@ -338,7 +340,7 @@ module.exports = (repo) => {
338340
(repo, cb) => {
339341
store2 = repo.blocks
340342
bs2 = new Bitswap(createLibp2pMock(), store2)
341-
utils.applyNetwork(bs2, n2)
343+
applyNetwork(bs2, n2)
342344
bs2.start()
343345
bs1._onPeerConnected(other)
344346
bs2._onPeerConnected(me)

test/browser.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,5 +41,5 @@ const repo = {
4141
remove: removeRepos
4242
}
4343

44-
require('./index-test')(repo)
45-
require('./components/decision-engine/index-test')(repo)
44+
require('./bitswap.js')(repo)
45+
require('./decision-engine/decision-engine')(repo)

test/components/decision-engine/index-test.js renamed to test/decision-engine/decision-engine.js

+10-9
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,12 @@ const waterfall = require('async/waterfall')
1616
const eachSeries = require('async/eachSeries')
1717
const CID = require('cids')
1818
const multihashing = require('multihashing-async')
19+
const Buffer = require('safe-buffer').Buffer
1920

20-
const Message = require('../../../src/types/message')
21-
const DecisionEngine = require('../../../src/components/decision-engine')
21+
const Message = require('../../src/types/message')
22+
const DecisionEngine = require('../../src/decision-engine')
2223

23-
const mockNetwork = require('../../utils').mockNetwork
24+
const mockNetwork = require('../utils/mock-network').mockNetwork
2425

2526
function messageToString (m) {
2627
return Array.from(m[1].blocks.values())
@@ -64,7 +65,7 @@ module.exports = (repo) => {
6465
const receiver = res[1]
6566

6667
map(_.range(1000), (i, cb) => {
67-
const data = new Buffer(`this is message ${i}`)
68+
const data = Buffer.from(`this is message ${i}`)
6869
multihashing(data, 'sha2-256', (err, hash) => {
6970
expect(err).to.not.exist()
7071

@@ -132,7 +133,7 @@ module.exports = (repo) => {
132133
function partnerWants (dEngine, values, partner, cb) {
133134
const message = new Message(false)
134135

135-
map(values, (v, cb) => multihashing(new Buffer(v), 'sha2-256', cb), (err, hashes) => {
136+
map(values, (v, cb) => multihashing(Buffer.from(v), 'sha2-256', cb), (err, hashes) => {
136137
expect(err).to.not.exist()
137138
hashes.forEach((hash, i) => {
138139
message.addEntry(new CID(hash), Math.pow(2, 32) - 1 - i)
@@ -145,7 +146,7 @@ module.exports = (repo) => {
145146
function partnerCancels (dEngine, values, partner, cb) {
146147
const message = new Message(false)
147148

148-
map(values, (v, cb) => multihashing(new Buffer(v), 'sha2-256', cb), (err, hashes) => {
149+
map(values, (v, cb) => multihashing(Buffer.from(v), 'sha2-256', cb), (err, hashes) => {
149150
expect(err).to.not.exist()
150151
hashes.forEach((hash) => {
151152
message.cancel(new CID(hash))
@@ -160,12 +161,12 @@ module.exports = (repo) => {
160161
waterfall([
161162
(cb) => map(
162163
alphabet,
163-
(v, cb) => multihashing(new Buffer(v), 'sha2-256', cb),
164+
(v, cb) => multihashing(Buffer.from(v), 'sha2-256', cb),
164165
cb
165166
),
166167
(hashes, cb) => each(
167168
hashes.map((h, i) => {
168-
return new Block(new Buffer(alphabet[i]), new CID(h))
169+
return new Block(Buffer.from(alphabet[i]), new CID(h))
169170
}),
170171
(b, cb) => repo.blocks.put(b, cb),
171172
cb
@@ -211,7 +212,7 @@ module.exports = (repo) => {
211212

212213
it('splits large block messages', (done) => {
213214
const data = _.range(10).map((i) => {
214-
const b = new Buffer(1024 * 256)
215+
const b = Buffer.alloc(1024 * 256)
215216
b.fill(i)
216217
return b
217218
})

test/components/decision-engine/ledger.spec.js renamed to test/decision-engine/ledger.spec.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ chai.use(require('dirty-chai'))
66
const expect = chai.expect
77
const PeerId = require('peer-id')
88

9-
const Ledger = require('../../../src/components/decision-engine/ledger')
9+
const Ledger = require('../../src/decision-engine/ledger')
1010

1111
describe('Ledger', () => {
1212
let peerId

test/components/network/gen-bitswap-network.node.js renamed to test/network/gen-bitswap-network.node.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ const crypto = require('crypto')
1616
const CID = require('cids')
1717
const multihashing = require('multihashing-async')
1818

19-
const utils = require('../../utils')
19+
const genBitswapNetwork = require('../utils/mock-network').genBitswapNetwork
2020

2121
describe('gen Bitswap network', function () {
2222
// CI is very slow
2323
this.timeout(300 * 1000)
2424

2525
it('retrieves local blocks', (done) => {
26-
utils.genBitswapNetwork(1, (err, nodes) => {
26+
genBitswapNetwork(1, (err, nodes) => {
2727
expect(err).to.not.exist()
2828

2929
const node = nodes[0]
@@ -66,7 +66,7 @@ describe('gen Bitswap network', function () {
6666
describe('distributed blocks', () => {
6767
it('with 2 nodes', (done) => {
6868
const n = 2
69-
utils.genBitswapNetwork(n, (err, nodeArr) => {
69+
genBitswapNetwork(n, (err, nodeArr) => {
7070
expect(err).to.not.exist()
7171
nodeArr.forEach((node) => {
7272
expect(

test/components/network/network.node.js renamed to test/network/network.node.js

+6-5
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
const chai = require('chai')
55
chai.use(require('dirty-chai'))
66
const expect = chai.expect
7-
const Node = require('../../libp2p-bundle')
7+
const Node = require('../utils/libp2p-bundle')
88
const PeerInfo = require('peer-info')
99
const PeerId = require('peer-id')
1010
const lp = require('pull-length-prefixed')
@@ -13,11 +13,12 @@ const parallel = require('async/parallel')
1313
const waterfall = require('async/waterfall')
1414
const map = require('async/map')
1515
const _ = require('lodash')
16-
const utils = require('../../utils')
16+
const makeBlock = require('../utils/make-block')
1717

18-
const Network = require('../../../src/components/network')
19-
const Message = require('../../../src/types/message')
18+
const Network = require('../../src/network')
19+
const Message = require('../../src/types/message')
2020

21+
// TODO send this to utils
2122
function createP2PNode (multiaddrs, options, callback) {
2223
if (typeof options === 'function') {
2324
callback = options
@@ -59,7 +60,7 @@ describe('network', () => {
5960
(cb) => createP2PNode('/ip4/127.0.0.1/tcp/0', { bits: 1024 }, cb),
6061
(cb) => createP2PNode('/ip4/127.0.0.1/tcp/0', { bits: 1024 }, cb),
6162
(cb) => createP2PNode('/ip4/127.0.0.1/tcp/0', { bits: 1024 }, cb),
62-
(cb) => map(_.range(2), (i, cb) => utils.makeBlock(cb), cb)
63+
(cb) => map(_.range(2), (i, cb) => makeBlock(cb), cb)
6364
], (err, results) => {
6465
expect(err).to.not.exist()
6566

test/node.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ const repo = {
4141
remove: removeRepos
4242
}
4343

44-
require('./index-test')(repo)
45-
require('./components/decision-engine/index-test')(repo)
46-
require('./components/network/network.node.js')
47-
require('./components/network/gen-bitswap-network.node.js')
44+
require('./bitswap.js')(repo)
45+
require('./decision-engine/decision-engine')(repo)
46+
require('./network/network.node.js')
47+
require('./network/gen-bitswap-network.node.js')

test/types/message.spec.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const map = require('async/map')
1010
const CID = require('cids')
1111
const isNode = require('detect-node')
1212
const _ = require('lodash')
13-
13+
const Buffer = require('safe-buffer').Buffer
1414
const loadFixture = require('aegir/fixtures')
1515
const testDataPath = (isNode ? '../' : '') + 'test-data/serialized-from-go'
1616
const rawMessageFullWantlist = loadFixture(__dirname, testDataPath + '/bitswap110-message-full-wantlist')
@@ -19,14 +19,14 @@ const rawMessageOneBlock = loadFixture(__dirname, testDataPath + '/bitswap110-me
1919
const pbm = protobuf(require('../../src/types/message/message.proto'))
2020

2121
const BitswapMessage = require('../../src/types/message')
22-
const utils = require('../utils')
22+
const makeBlock = require('../utils/make-block')
2323

2424
describe('BitswapMessage', () => {
2525
let blocks
2626
let cids
2727

2828
before((done) => {
29-
map(_.range(3), (i, cb) => utils.makeBlock(cb), (err, res) => {
29+
map(_.range(3), (i, cb) => makeBlock(cb), (err, res) => {
3030
expect(err).to.not.exist()
3131
blocks = res
3232
cids = blocks.map((b) => b.cid)
@@ -243,7 +243,7 @@ describe('BitswapMessage', () => {
243243

244244
describe('go interop', () => {
245245
it('bitswap 1.0.0 message', (done) => {
246-
const goEncoded = new Buffer('CioKKAoiEiAs8k26X7CjDiboOyrFueKeGxYeXB+nQl5zBDNik4uYJBAKGAA=', 'base64')
246+
const goEncoded = Buffer.from('CioKKAoiEiAs8k26X7CjDiboOyrFueKeGxYeXB+nQl5zBDNik4uYJBAKGAA=', 'base64')
247247

248248
const msg = new BitswapMessage(false)
249249
const cid = new CID('QmRN6wdp1S2A5EtjW9A3M1vKSBuQQGcgvuhoMUoEz4iiT5')

test/types/wantlist.spec.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@ const _ = require('lodash')
1010
const multihashing = require('multihashing-async')
1111

1212
const Wantlist = require('../../src/types/wantlist')
13-
const utils = require('../utils')
13+
const makeBlock = require('../utils/make-block')
1414

1515
describe('Wantlist', () => {
1616
let wm
1717
let blocks
1818

1919
before((done) => {
20-
map(_.range(2), (i, cb) => utils.makeBlock(cb), (err, res) => {
20+
map(_.range(2), (i, cb) => makeBlock(cb), (err, res) => {
2121
expect(err).to.not.exist()
2222
blocks = res
2323
done()
File renamed without changes.

test/utils/make-block.js

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
'use strict'
2+
3+
const multihashing = require('multihashing-async')
4+
const CID = require('cids')
5+
const Block = require('ipfs-block')
6+
const Buffer = require('safe-buffer').Buffer
7+
8+
module.exports = (callback) => {
9+
const data = Buffer.from(`hello world ${Math.random()}`)
10+
11+
multihashing(data, 'sha2-256', (err, hash) => {
12+
if (err) { return callback(err) }
13+
callback(null, new Block(data, new CID(hash)))
14+
})
15+
}

0 commit comments

Comments
 (0)