-
Notifications
You must be signed in to change notification settings - Fork 1
/
peer1-writer.js
52 lines (46 loc) · 1.26 KB
/
peer1-writer.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
var hyperswarm = require('hyperswarm')
var hypercore = require('hypercore')
var crypto = require('crypto')
var pump = require('pump')
// Creating topic
const topicHex = crypto.createHash('sha256')
.update('imdb-feed')
.digest()
var feed = hypercore('./imdb', {valueEncoding: 'json'})
start()
async function start () {
feed.on('ready', function() {
feed.append({
tconst: 'tt0001287',
titleType: 'long',
primaryTitle: 'The Little Orphan',
originalTitle: 'The Little Prospector',
isAdult: '0',
startYear: '1910',
endYear: '\N',
runtimeMinutes: '\N',
genres: 'Short,Western'
})
startSwarm(topicHex)
})
}
function startSwarm(topic) {
var swarm = hyperswarm()
swarm.join(topic, {
lookup: true, // find & connect to peers
announce: true // optional- announce self as a connection target
})
swarm.on('connection', function(connection, info) {
console.log('(New peer connected!)')
pump(connection, feed.replicate(true, { live: true }), connection)
logFeed(feed)
})
}
function logFeed(feed) {
console.log('watching', feed.key.toString('hex'), feed.length)
console.log(feed)
feed.createReadStream({ live: true })
.on('data', function(data) {
console.log(data)
})
}