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)): undefined
Create a new PeerId
by generating a new public/private keypair.
Parameters
Returns
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
str: string
:Hex encoded id
Returns
PeerId.createFromBytes
createFromBytes(buf: Buffer): PeerId
Creates a Peer ID from a buffer representing the key's multihash.
Parameters
buf: Buffer
:
Returns
PeerId.createFromB58String
createFromB58String(str: string): PeerId
Creates a Peer ID from a base58
string representing the
key's multihash.
Parameters
str: string
:base58
encoded id
Returns
PeerId.createFromPubKey
createFromPubKey(key: (string | Buffer), callback: function (Error, PeerId)): undefined
Creates a Peer ID from a buffer containing a public key.
Returns
PeerId.createFromPrivKey
createFromPrivKey(key: (string | Buffer), callback: function (Error, PeerId)): undefined
Creates a Peer ID from a buffer containing a private key.
Parameters
Returns
PeerId.createFromJSON
createFromJSON(obj: PeerIdJson, callback: function (Error, PeerId)): undefined
Import a PeerId
from a serialized JSON object.
Parameters
obj: PeerIdJson
:
Returns
instance
constructor
constructor(id: Buffer, privKey: RSAPrivateKey?, pubKey: RSAPublickKey?)
Parameters
id: Buffer
:privKey: RSAPrivateKey?
:pubKey: RSAPublickKey?
:
PeerId.prototype.id
id: Buffer
PeerId.prototype.privKey
privKey: (RSAPrivateKey | undefined)
The private key of this id, if it exists.
PeerId.prototype.marshalPubKey
marshalPubKey(): Buffer
Create the protobuf version of the public key, matching go-ipfs formatting.
Returns
Buffer
The marshalled public key
PeerId.prototype.marshalPrivKey
marshalPrivKey(): Buffer
Create the protobuf version of the private key, matching go-ipfs formatting.
Returns
PeerId.prototype.toJSON
toJSON(): PeerIdJson
Return the jsonified version of the key, matching the formatting of go-ipfs for its config file.