New: Introducing PHP and Composer Support.Read the Announcement
Socket
Book a DemoInstallSign in
Socket

@coboxcoop/log

Package Overview
Dependencies
Maintainers
2
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@coboxcoop/log

log for application layer messages

latest
Source
npmnpm
Version
1.0.6-alpha.1
Version published
Maintainers
2
Created
Source

log

standard-readme compliant

Table of Contents

About

CoBox is an encrypted p2p file system and distributed back-up tool. README provides a map of the project.

log provides a multifeed source for all cobox logs. Uses kappa-core@experimental and kappa-view-query to establish a queryable set of indices.

A cobox-log hypercore feed is initially appended with a hypertrie header, that simply gives the feed the name log. This allows other peers to identify what kind of content the feed holds and index the feed correctly, and vice-versa, allows you to index other peer's log feeds correctly.

A CoBox log can be identified with a header appended as the first entry to the feed.

Install

npm i -g @coboxcoop/log

Usage

const Kappa = require('kappa-core')
const multifeed = require('multifeed')
const { Header } = require('hypertrie/lib/messages')
const crypto = require('hypercore-crypto')
const mkdirp = require('mkdirp')
const tmpdir = require('tmpdir')
const level = require('level')

const tmp = tmpdir().name
mkdirp.sync(tmp)

// author is a global keypair used to sign all records
// it is more akin to an identity than a log's signing keypairs
// in cobox, this is derived from a parent key

// var author = crypto.keyPair().publicKey
var author = '5c448d8aecdc013d9145b6e936f9b255434e7f9e728213486f0b18f211512fb2'

const log = new Log({
  core: new Kappa(),
  feeds: multifeed(ram),
  keyPair: crypto.keyPair(),
  author,
  db: level(tmp)
})

log.get(0, (err, payload) => {
  Header.decode(payload)
  // { type: 'log', metadata: null }
})

var msg = {
  type: 'peer/about',
  version: '1.0.0',
  timestamp: 1580813687256,
  author,
  content: { name: 'magpie' }
}

log.publish(payload, { valueEncoding: PeerAbout }, (err, msg) => {
  // {
  //   key: '031fb3bd3c2571a7ca54a01a1021e374fd63d0b56b1a9ab142b9ae7a24287dc8@1',
  //   seq: 1,
  //   value: {
  //     type: 'peer/about',
  //     timestamp: 1580813687256,
  //     author: '5c448d8aecdc013d9145b6e936f9b255434e7f9e728213486f0b18f211512fb2',
  //     content: {
  //       name: 'magpie'
  //     }
  //   }
  // }
})

API

See swagger documentation... (we won't have this for a while).

Contributing

PRs accepted.

Small note: If editing the README, please conform to the standard-readme specification.

License

AGPL-3.0-or-later

Keywords

cobox

FAQs

Package last updated on 07 Apr 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts