Fork of js-peer-id using Ethereum addresses.
npm install eth-peer-id> Fork of peer-id where id is a sha3 hash of an Ethereum address.
- eth-peer-id
- Lead Maintainer
- Table of Contents
- Description
- Example
- Installation
- npm
- Setup
- Node.js
- Browser: Browserify, Webpack, other bundlers
- Browser: Tag
- API
- Create
- [new PeerId(id[, privKey, pubKey])](#new-peeridid-privkey-pubkey)
- [create([opts], callback)](#createopts-callback)
- Import
- createFromHexString(str)
- createFromBytes(buf)
- createFromB58String(str)
- createFromPubKey(pubKey)
- createFromPrivKey(privKey)
- createFromJSON(obj)
- createFromAddress(address)
- Export
- toHexString()
- toBytes()
- toB58String()
- toJSON()
- toPrint()
- isEqual(id)
- License
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.
``JavaScript
const PeerId = require('peer-id')
PeerId.create({ bits: 1024 }, (err, id) => {
if (err) { throw err }
console.log(JSON.stringify(id.toJSON(), null, 2))
})
``bash`
{
"id": "Qma9T5YraSnpRDZqRR4krcSJabThc8nwZuJV3LercPHufi",
"privKey": "CAAS4AQwggJcAgEAAoGBAMBgbIqyOL26oV3nGPBYrdpbv..",
"pubKey": "CAASogEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMBgbIqyOL26oV3nGPBYrdpbvzCY..."
}
`sh`
> npm i peer-id
`js`
const PeerId = require('peer-id')
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.
`js`
const PeerId = require('peer-id')
API
`js
const PeerId = require('peer-id')
`Create
$3
-
id: Buffer - The multihash of the publick key as Buffer
- privKey: RsaPrivateKey - The private key
- pubKey: RsaPublicKey - The public keyThe key format is detailed in libp2p-crypto.
$3
Generates a new Peer ID, complete with public/private keypair.
-
opts: Object: Default: {bits: 2048}
- callback: FunctionCalls back
callback with err, id.Import
$3
Creates a Peer ID from hex string representing the key's multihash.
$3
Creates a Peer ID from a buffer representing the key's multihash.
$3
Creates a Peer ID from a Base58 string representing the key's multihash.
$3
-
publicKey: BufferCreates a Peer ID from a buffer containing a public key.
$3
-
privKey: BufferCreates a Peer ID from a buffer containing a private key.
$3
-
obj.id: String - The multihash encoded in base58
- obj.pubKey: String - The public key in protobuf format, encoded in base64
- obj.privKey: String - The private key in protobuf format, encoded in base64$3
-
address: String | Buffer - The Ethereum address.
Export
$3
Returns the Peer ID's
id as a hex string.`
1220d6243998f2fc56343ad7ed0342ab7886a4eb18d736f1b67d44b37fcc81e0f39f
`$3
Returns the Peer ID's
id as a buffer.`
`$3
Returns the Peer ID's
id as a base58 string.`
QmckZzdVd72h9QUFuJJpQqhsZqGLwjhh81qSvZ9BhB2FQi
`$3
Returns an
obj of the form-
obj.id: String - The multihash encoded in base58
- obj.pubKey: String - The public key in protobuf format, encoded in 'base64'
- obj.privKey: String - The private key in protobuf format, encoded in 'base 64'$3
Returns the Peer ID as a printable string without the
Qm prefix.Example:
$3
-
id` can be a PeerId or a Buffer containing the idMIT