@chainsafe/libp2p-noise
TypeScript icon, indicating that this package has built-in type declarations

15.0.0 • Public • Published

js-libp2p-noise

npm License Apache 2.0 License MIT Twitter Discord

Noise libp2p handshake for js-libp2p

This repository contains TypeScript implementation of noise protocol, an encryption protocol used in libp2p.

Warning: Even though this package works in browser, it will bundle around 600Kb (200Kb gzipped) of code

https://bundlephobia.com/result?p=@chainsafe/libp2p-noise@latest

Usage

Install with yarn add @chainsafe/libp2p-noise or npm i @chainsafe/libp2p-noise.

Example of using default noise configuration and passing it to the libp2p config:

import {createLibp2p} from "libp2p"
import {noise} from "@chainsafe/libp2p-noise"

//custom noise configuration, pass it instead of `noise()`
//x25519 private key
const n = noise({ staticNoiseKey });

const libp2p = await createLibp2p({
  connectionEncryption: [noise()],
  //... other options
})

See the NoiseInit interface for noise configuration options.

API

This module exposes an implementation of the ConnectionEncrypter interface.

Bring your own crypto

You can provide a custom crypto implementation (instead of the default, based on @noble) by adding a crypto field to the init argument passed to the Noise factory.

The implementation must conform to the ICryptoInterface, defined in https://github.com/ChainSafe/js-libp2p-noise/blob/master/src/crypto.ts

Contribute

Feel free to join in. All welcome. Open an issue!

License

Licensed under either of

Readme

Keywords

Package Sidebar

Install

npm i @chainsafe/libp2p-noise

Weekly Downloads

15,425

Version

15.0.0

License

Apache-2.0 OR MIT

Unpacked Size

360 kB

Total Files

95

Last publish

Collaborators

  • wemeetagain
  • mpetrunic