This is a convenience implementation of the protocol buffers for the dat protocol as defined in the dat white paper.
Although this package can be used to decode or encode any dat protocol buffers. It is particularly useful for decoding download events from dat-node or hyperdrive.
npm install dat-protocol-buffers
You can import all the message specification simple my importing the base module
var messages = require('dat-protocol-buffers')
or individually
var messages = require('dat-protocol-buffers/messages/{name-of-protocol}')
// e.g. var messages = require('dat-protocol-buffers/messages/node')
// e.g. var messages = require('dat-protocol-buffers/messages/handshake')
Listening to dat download events:
Dat(dir, { key: somekey, sparse: true }, function (err, dat) {
const stats = dat.trackStats();
dat.joinNetwork();
dat.network.once('connection', function () {
console.log('I connected to someone!')
dat.archive.metadata.on('download', (i, d) => {
if(i === 0) {
const header = messages.Header.decode(d);
console.log('HEADER', header);
} else {
const block = messages.Node.decode(d);
console.log('BLOCK', block);
}
})
})
})
- Cancel
- Data
- Handshake
- Have
- Header
- Register
- Request
- Node
- Stat
- Status
- Want
- Unhave
- Unwant