peer-id
0.8.0

Introduction

Generate, import, and export PeerIDs, for use with IPFS.

A Peer ID is the SHA-256 multihash of a public key.

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.

Example

var PeerId = require('peer-id')

PeerId.create({ bits: 1024 }, (err, id) => {
  console.log(JSON.stringify(id.toJSON(), null, 2)
})
{
  "id": "Qma9T5YraSnpRDZqRR4krcSJabThc8nwZuJV3LercPHufi",
  "privKey": "CAAS4AQwggJcAgEAAoGBAMBgbIqyOL26oV3nGPBYrdpbv..",
  "pubKey": "CAASogEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMBgbIqyOL26oV3nGPBYrdpbvzCY..."
}

Installation

npm

> npm i peer-id

Setup

Node.js

var PeerId = require('peer-id')

Browser: Browserify, Webpack, other bundlers

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')

Browser: <script> Tag

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

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

PeerId

A Peer ID is the SHA-256 multihash of a public key.

static

PeerId.create

create(opts: Object?, callback: function (Error, PeerId))

Create a new PeerId by generating a new public/private keypair.

Parameters

NameDescription
opts: Object?Configuration object.
opts.bits: number? (=2048)How many bits to use for the RSA key generation.
callback: function (Error, PeerId)Node.js style callback.

Example

const PeerId = require('peer-id')

PeerId.create((err, id) => {
  if (err) {
    throw err
  }
  console.log('id', JSON.stringify(id))
})

PeerId.createFromHexString

createFromHexString(str: string): PeerId

Creates a Peer ID from hex string representing the key's multihash.

Parameters

NameDescription
str: stringHex encoded id

Returns

PeerId.createFromBytes

createFromBytes(buf: Buffer): PeerId

Creates a Peer ID from a buffer representing the key's multihash.

Parameters

NameDescription
buf: Buffer

Returns

PeerId.createFromB58String

createFromB58String(str: string): PeerId

Creates a Peer ID from a base58 string representing the key's multihash.

Parameters

NameDescription
str: stringbase58 encoded id

Returns

PeerId.createFromPubKey

createFromPubKey(key: (string | Buffer), callback: function (Error, PeerId))

Creates a Peer ID from a buffer containing a public key.

Parameters

NameDescription
key: (string | Buffer)
callback: function (Error, PeerId)

PeerId.createFromPrivKey

createFromPrivKey(key: (string | Buffer), callback: function (Error, PeerId))

Creates a Peer ID from a buffer containing a private key.

Parameters

NameDescription
key: (string | Buffer)The private key, if passed as string base64 encoding is assumed.
callback: function (Error, PeerId)

PeerId.createFromJSON

createFromJSON(obj: PeerIdJson, callback: function (Error, PeerId))

Import a PeerId from a serialized JSON object.

Parameters

NameDescription
obj: PeerIdJson
callback: function (Error, PeerId)

instance

PeerId.constructor

constructor(id: Buffer, privKey: RSAPrivateKey?, pubKey: RSAPublickKey?)

Parameters

NameDescription
id: Buffer
privKey: RSAPrivateKey?
pubKey: RSAPublickKey?

PeerId.id

id: Buffer

PeerId.privKey

privKey: (RSAPrivateKey | undefined)

The private key of this id, if it exists.

PeerId.pubKey

pubKey: (RSAPublicKey | undefined)

The private key of this id, if it exists.

PeerId.marshalPubKey

marshalPubKey(): Buffer

Create the protobuf version of the public key, matching go-ipfs formatting.

Returns

Buffer The marshalled public key

Throws

Error Failure

PeerId.marshalPrivKey

marshalPrivKey(): Buffer

Create the protobuf version of the private key, matching go-ipfs formatting.

Returns

PeerId.toPrint

toPrint(): PeerIdJson

Alias for toJSON.

Returns

PeerId.toJSON

toJSON(): PeerIdJson

Return the jsonified version of the key, matching the formatting of go-ipfs for its config file.

Returns

PeerId.toHexString

toHexString(): String

Returns the Peer ID's id as a hex string.

Returns

PeerId.toBytes

toBytes(): Buffer

Returns the Peer ID's id as a buffer.

Returns

PeerId.toB58String

toB58String(): String

Returns the Peer ID's id as a base58 string.

Returns

PeerIdJson