# ipfs/go-ipfs

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/ipfs-go-ipfs).**

17,059 stars · 3,164 forks · Go · NOASSERTION

## Links

- GitHub: https://github.com/ipfs/go-ipfs
- Homepage: https://docs.ipfs.tech/how-to/command-line-quick-start/
- awesome-repositories: https://awesome-repositories.com/repository/ipfs-go-ipfs.md

## Description

go-ipfs is an implementation of an IPFS node, providing a distributed filesystem and a content-addressable storage system. It enables the storage and retrieval of data based on unique cryptographic hashes rather than fixed network locations, allowing files to be shared across a peer-to-peer network without a central authority.

The system utilizes a distributed hash table and a peer-to-peer gossip protocol to route requests and propagate network state and metadata. It organizes data using a Merkle DAG structure to support efficient deduplication and versioning of content.

Capabilities include the ability to mount distributed storage as local directories through a virtual filesystem and the use of HTTP gateways to translate content identifiers into standard web requests for browser access. The node can be managed via a web interface or RPC, with supporting features for performance monitoring and content filtering.

## Tags

### Data & Databases

- [Content-Addressable Storage](https://awesome-repositories.com/f/data-databases/content-addressable-storage.md) — Implements a storage system where data is identified by unique cryptographic hashes of its content.
- [Distributed Filesystems](https://awesome-repositories.com/f/data-databases/distributed-filesystems.md) — Provides a decentralized storage system that spans multiple servers for unified data access.
- [Merkle DAG File Systems](https://awesome-repositories.com/f/data-databases/versioned-storage/merkle-dag-file-systems.md) — Organizes data as a Merkle DAG of blobs and trees to enable efficient deduplication and versioning.
- [Remote Storage Mounts](https://awesome-repositories.com/f/data-databases/data-engineering/cloud-native-storage-layers/remote-storage-mounts.md) — Mounts remote content-addressed storage as local directories for seamless file access. ([source](https://github.com/ipfs/go-ipfs#readme))
- [Network Namespace Mounting](https://awesome-repositories.com/f/data-databases/persistent-storage-volumes/filesystem-mounts/network-namespace-mounting.md) — Maps decentralized network namespaces as local directories for direct file access.
- [Content-Addressable Retrievals](https://awesome-repositories.com/f/data-databases/remote-data-retrieval/identifier-based-retrievals/content-addressable-retrievals.md) — Retrieves data from the network using unique content hashes rather than location-based addresses. ([source](https://github.com/ipfs/go-ipfs#readme))

### Networking & Communication

- [Decentralized Content Distribution](https://awesome-repositories.com/f/networking-communication/decentralized-content-distribution.md) — Serves files through a peer-to-peer network to ensure availability without a single point of failure.
- [Peer-to-Peer File Sharing](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/peer-to-peer-networking/peer-to-peer-file-sharing.md) — Stores and shares data across a decentralized network without relying on a central server. ([source](https://github.com/ipfs/go-ipfs#readme))
- [Peer-to-Peer Distribution Protocols](https://awesome-repositories.com/f/networking-communication/peer-to-peer-distribution-protocols.md) — Implements a peer-to-peer distribution protocol for sharing and acquiring digital content. ([source](https://github.com/ipfs/go-ipfs#readme))
- [Gossip Protocols](https://awesome-repositories.com/f/networking-communication/peer-to-peer-networking/gossip-protocols.md) — Uses an epidemic-style broadcasting mechanism to propagate network state and metadata updates.
- [Peer Discovery](https://awesome-repositories.com/f/networking-communication/peer-to-peer-networking/peer-discovery.md) — Locates and connects to other network nodes using peer discovery mechanisms across various network types.
- [IPFS HTTP Gateways](https://awesome-repositories.com/f/networking-communication/ipfs-http-gateways.md) — Includes HTTP servers that bridge peer-to-peer content to standard web browsers.
- [P2P Content Gateways](https://awesome-repositories.com/f/networking-communication/p2p-content-gateways.md) — Serves distributed files to web browsers through a gateway that maps standard paths to network content. ([source](https://github.com/ipfs/go-ipfs#readme))
- [Gossip-Based Discovery](https://awesome-repositories.com/f/networking-communication/peer-to-peer-networking/peer-discovery/peer-list-exchange/gossip-based-discovery.md) — Synchronizes network state and metadata through a gossip-based discovery and propagation protocol.
- [HTTP-to-P2P Translation](https://awesome-repositories.com/f/networking-communication/peer-to-peer-protocols/http-to-p2p-translation.md) — Translates standard web requests into peer-to-peer protocol calls to serve content-addressed data.

### Software Engineering & Architecture

- [Distributed Hash Tables](https://awesome-repositories.com/f/software-engineering-architecture/distributed-systems/distributed-data-management/distributed-hash-tables.md) — Uses a decentralized hash table to map content identifiers to peer network addresses for routing.
- [Kademlia Implementations](https://awesome-repositories.com/f/software-engineering-architecture/distributed-systems/distributed-data-management/distributed-hash-tables/kademlia-implementations.md) — Employs the Kademlia routing algorithm to locate nodes in the decentralized peer network.

### System Administration & Monitoring

- [IPFS Node Administration](https://awesome-repositories.com/f/system-administration-monitoring/ipfs-node-administration.md) — Implements the core daemon and tools for managing the lifecycle and configuration of an IPFS node.
- [P2P Network Administration](https://awesome-repositories.com/f/system-administration-monitoring/p2p-network-administration.md) — Provides tools for managing and monitoring the health and traffic of decentralized peer networks.

### Operating Systems & Systems Programming

- [Filesystem Mounting](https://awesome-repositories.com/f/operating-systems-systems-programming/filesystem-mounting.md) — Attaches distributed content and namespaces to a specific local directory in the system hierarchy. ([source](https://github.com/ipfs/go-ipfs#readme))
- [FUSE Virtual Filesystems](https://awesome-repositories.com/f/operating-systems-systems-programming/fuse-virtual-filesystems.md) — Provides a userspace filesystem that maps network content identifiers to a local directory hierarchy.

### Security & Cryptography

- [Content Filtering Policies](https://awesome-repositories.com/f/security-cryptography/application-and-system-security/browser-security/content-filtering-blocking/content-filtering-policies.md) — Enforces content policies by blocking specific data from being served by public nodes. ([source](https://github.com/ipfs/go-ipfs#readme))
- [Content Identifier Blocking](https://awesome-repositories.com/f/security-cryptography/application-and-system-security/browser-security/content-filtering-blocking/content-identifier-blocking.md) — Prevents the serving or routing of specific content based on unique content identifiers. ([source](https://github.com/ipfs/go-ipfs#readme))

### Part of an Awesome List

- [Blockchain Platforms](https://awesome-repositories.com/f/awesome-lists/devtools/blockchain-platforms.md) — Go implementation of the decentralized peer-to-peer storage network.
