Skip to content
This repository has been archived by the owner on Aug 23, 2019. It is now read-only.
/ js-libp2p-pnet Public archive

[DEPRECATED]: now part of the https://github.com/libp2p/js-libp2p repo

Notifications You must be signed in to change notification settings

libp2p/js-libp2p-pnet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⛔️ DEPRECATED: libp2p-pnet is now included in js-libp2p

js-libp2p-pnet

Discourse posts Dependency Status js-standard-style

Connection protection management for libp2p leveraging PSK encryption via XSalsa20.

Lead Maintainer

Jacob Heun

Table of Contents

Usage

const Protector = require('libp2p-pnet')
const protector = new Protector(swarmKeyBuffer)
const privateConnection = protector.protect(myPublicConnection, (err) => { })

Examples

Private Networks with IPFS

Private Shared Keys

Private Shared Keys are expected to be in the following format:

/key/swarm/psk/1.0.0/
/base16/
dffb7e3135399a8b1612b2aaca1c36a3a8ac2cd0cca51ceeb2ced87d308cac6d

PSK Generation

A utility method has been created to generate a key for your private network. You can use one of the methods below to generate your key.

From libp2p-pnet

If you have libp2p-pnet locally, you can run the following from the projects root.

node src/key-generator.js > swarm.key

From a module using libp2p

If you have a module locally that depends on libp2p-pnet, you can run the following from that project, assuming the node_modules are installed.

node -e "require('libp2p-pnet').generate(process.stdout)" > swarm.key

Programmatically

const writeKey = require('libp2p-pnet').generate
const swarmKey = Buffer.alloc(95)
writeKey(swarmKey)
fs.writeFileSync('swarm.key', swarmKey)

Contribute

There are some ways you can make this module better:

This repository falls under the IPFS Code of Conduct.

License

MIT