Created by: dvbug
About P2PNetwork
libp2p is a networking stack and library modularized out of The IPFS Project, and bundled separately for other tools to use.
libp2p is the product of a long, and arduous quest of understanding -- a deep dive into the internet's network stack, and plentiful peer-to-peer protocols from the past. Building large-scale peer-to-peer systems has been complex and difficult in the last 15 years, and libp2p is a way to fix that. It is a "network stack" -- a protocol suite -- that cleanly separates concerns, and enables sophisticated applications to only use the protocols they absolutely need, without giving up interoperability and upgradeability. libp2p grew out of IPFS, but it is built so that lots of people can use it, for lots of different projects. More
About Multiaddr
Multiaddr aims to make network addresses future-proof, composable, and efficient.
Current addressing schemes have a number of problems.
They hinder protocol migrations and interoperability between protocols. They don't compose well. There are plenty of X-over-Y constructions, but only few of them can be addressed in a classic URI/URL or host:port scheme. They don't multiplex: they address ports, not processes. They're implicit, in that they presume out-of-band values and context. They don't have efficient machine-readable representations. Multiaddr solves these problems by modelling network addresses as arbitrary encapsulations of protocols.
Multiaddrs support addresses for any network protocol. Multiaddrs are self-describing. Multiaddrs conform to a simple syntax, making them trivial to parse and construct. Multiaddrs have human-readable and efficient machine-readable representations. Multiaddrs encapsulate well, allowing trivial wrapping and unwrapping of encapsulation layers. More
About Multihash
Multihash is a protocol for differentiating outputs from various well-established hash functions, addressing size + encoding considerations. It is useful to write applications that future-proof their use of hashes, and allow multiple hash functions to coexist.
Multihash is particularly important in systems which depend on cryptographically secure hash functions. Attacks may break the cryptographic properties of secure hash functions. These cryptographic breaks are particularly painful in large tool ecosystems, where tools may have made assumptions about hash values, such as function and digest size. Upgrading becomes a nightmare, as all tools which make those assumptions would have to be upgraded to use the new hash function and new hash digest length. Tools may face serious interoperability problems or error-prone special casing. More
--
Anyone who agrees with this pull request could submit an Approve review to it.