As mentioned previously Hypercore is an append-only data structure. Let's try to use it to store some data and read it out again.
What if we wanted to build a peer-to-peer chat app? We might want to know the text of the message, message type, nickname, and perhaps a timestamp. Let's store messages in a specific format -- using json
-- so we can identify them as chat messages, like
// Save this file as single-chat.js
var hypercore = require('hypercore')
var feed = hypercore('./single-chat-feed', {
valueEncoding: 'json'
})
feed.append({
type: 'chat-message',
nickname: 'cat-lover',
text: 'hello world',
timestamp: '2018-11-05T14:26:000Z' // new Date().toISOString()
}, function (err, seq) {
if (err) throw err
console.log('Data was appended as entry #' + seq)
})
Try running the above code a couple of times. You should see the entry sequence number increasing every time. The entry sequence number (or seq) is the "key" to this data entry and you can use it to retrieve the data again using the feed.get
api.
Try reading out the first entry (0
) using the feed.get
api and console.log it.
It should return a JSON object similar to the one you added.
Once you solve this exercise continue to exercise 4