npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@pointnetwork/kadence

v6.1.22

Published

extensible, hardened, and flexible distributed systems framework

Downloads

11

Readme


The Kadence Project is a complete implementation of the Kademlia distributed hash table that aims to effectively mitigate all vulnerabilities described in the S/Kademlia paper and then some! Kadence provides developers of distributed systems a complete framework for inventing new protocols on a rock solid base as well as providing a complete reference implementation of a Kadence network.

Ready to get started?

$ npm install -g @deadcanaries/kadence
$ kadence --help

If you're new to Kadence, check out our tutorial for {@tutorial quickstart}!

Features

Publish & Subscribe

Kadence implements a completely decentralized publish/subscribe protocol based on Quasar, allowing you to build anything from peer-to-peer social networks to real time sensor networks for the internet of things.

DDoS & Spam Protection

Kadence enforces a proof of work system called Hashcash for relaying messages to prevent abuse and make large scale denial of service and spam attacks cost prohibitive.

Churn Impact Reduction

Kadence proactively evicts offline or misbehaving peers from its routing table and uses an exponential cooldown time for allowing them back in to prevent unreliable contacts from propagating through the network.

Bandwidth Metering

Kadence monitors bandwidth and enables end users to configure their maximum bandwidth usage within a timeframe to suit their individual needs or prevent overages with internet services providers that enforce bandwidth caps.

End-to-End Encryption

Kadence can automatically generate SSL certificates and supports full end-to-end encryption via TLS using it's built in HTTPS transport adapter to prevent eavesdropping and man in the middle attacks.

Cryptographic Identities

Kadence extends Kademlia's node identity selection with the same cryptography bitcoin uses for securing funds. Node identities are derived from the hash of the public portion of an ECDSA key pair and each message is signed to ensure it hasn't been tampered with in transit.

Sybil & Eclipse Mitigation

Kadence employs a proof of work system using Equihash for generating valid node identities and subsequent acceptance into the overlay network. This forces nodes into sufficiently random sectors of the key space and makes Sybil and Eclipse attacks computationally very difficult and ultimately ineffective.

Automatic NAT Traversal

Kadence supports multiple strategies for punching through network address translation. This enables peers behind even the strictest of firewalls to become addressable and join the network. Fallback to secure reverse tunnels is supported through the use of Diglet servers.

Multiple Network Transports

Kadence supports the use of multiple transport adapters and is agnostic to the underlying network protocol. Support for UDP and HTTP/HTTPS ship by default. Plugin your own custom transport layer using using a simple interface.

Persistent Routing Tables

Kadence remembers peers between restarts so after you've joined the network once subsequent joins are fast and automatically select the best initial peers for bootstrapping.

Sender & Destination Anonymity

Kadence ships with full support for Tor Hidden Services out of the box with no additional software installation or configuration required. This enables fully anonymized structured networks and leverages the latest version 3 hidden services protocol.

Configurable Trust Policies

Kadence provides a flexible trust policy plugin allowing for fine-tuned, per-identity, per-method trust policies. Blacklist misbehaving nodes on an open network or whitelist identities on an explicit trust-based network.

Simple Plugin Interface

Kadence exposes a simple interface for extending the protocol with your own application logic. Users of Express will find it comfortable and familiar. If you are new to building distributed systems, you will find it easy to get started.

Research

Kadence is used in academic research on distributed systems. Here are some notable papers!

License

Kadence - Extensible, Hardened, and Secure Distributed Systems Framework
Copyright (C) 2019 Dead Canaries, Inc.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/.