js-peer-id/README.md
2016-04-12 09:07:59 -07:00

2.8 KiB

peer-id JavaScript implementation

Build Status Dependency Status js-standard-style

IPFS Peer Id implementation in JavaScript

Description

An IPFS Peer Id is based on a sha256 hash of the peer public key, using multihash

The public key is a base64 encoded string of a protobuf containing an RSA DER buffer. This uses a node buffer to pass the base64 encoded public key protobuf to the multihash for ID generation.

Installation

npm

> npm i peer-id

Use in Node.js

var PeerId = require('peer-id')

Use in a browser with browserify, webpack or any other bundler

The code published to npm that gets loaded on require is in fact a ES5 transpiled version with the right shims added. This means that you can require it and use with your favourite bundler without having to adjust asset management process.

var PeerId = require('peer-id')

Use in a browser Using a script tag

Loading this module through a script tag will make the PeerId obj available in the global namespace.

<script src="https://npmcdn.com/peer-id/dist/index.min.js"></script>
<!-- OR -->
<script src="https://npmcdn.com/peer-id/dist/index.js"></script>

Usage

Creating a new Id

const PeerId = require('ipfs-peer')

// Create a new Id
const id = PeerId.create()

// Recreate an Id from Hex string
const id = PeerId.createFromHexString(str)

// Recreate an Id from a Buffer
const id = PeerId.createFromBytes(buf)

// Recreate an B58 String
const id = PeerId.createFromB58String(str)

// Recreate from a Public Key
const id = PeerId.createFromPubKey(pubKey)

// Recreate from a Private Key
const id = PeerId.createFromPrivKey(privKey)

Exporting an Id

// Print friendly format
id.toPrint() // returns an object with id, privKey and pubKey in hex format

// Export to an hex string
id.toHexString()

// Export to Buffer
id.toBytes() (same as id.id)

// Export to a B58 string
id.toB58String()

Id format

id.pubKey   // Buffer containing the Public Key
id.privKey  // Buffer containing the Private Key
id.id       // Buffer containing the multihash