Writing

Connecting Rust and IPFS

Illustration image

Introduction

The InterPlanetary File System (IPFS) is a decentralized system for sharing data across the internet. IPFS allows its users to send and receive data directly with each other, similar to BitTorrent. Participants act as both servers and clients on the IPFS network, which implements a number of improvements to previous peer-to-peer sharing technologies, such as data de-duplication and replication.

IPFS is positioned to become the storage layer of the decentralized web, and is already in production use by industry leaders. Protocol Labs maintains a reference implementation of IPFS written in Go.

Opportunity

The goal of this project is to offer a full-featured, secure implementation of IPFS in Rust. We use the reference test suite1 as our success metric. This effort involves comprehensive project planning, open-source community engagement, and expert Rust development skills.

Timeline

Late 2019: Opportunity identified Equilibrium Labs identified community requests for a Rust implementation of IPFS in late 2019 and initiated a thorough review of the existing IPFS codebase and protocol specifications. This analysis informed the project roadmap: we outlined the required work phases and development milestones, prioritizing the early release of core features.

Early 2020: Phase 1 We released several core features, fostered community engagement and began outreach to Protocol Labs to explore grant opportunities.

Mid 2020: Phase 2 We completed additional networking security and performance improvements throughout 2020, enabled related technologies such as offchain::ipfs2, implemented UnixFS, and expanded conformance test coverage.

Late 2020 through 2021 Development continues on the remaining IPFS features, as well as exploring new opportunities, such as utilizing Tokio3 for improved networking capabilities.

Impact Review

Open-Source Project Guidance: We are fostering an active, mature GitHub community to support the Rust IPFS codebase, bringing together development resources from projects that had languished for years prior.

Vision: Equilibrium Labs recognizes IPFS as a key technology supporting the distributed web. We believe developing IPFS in Rust offers more robust security and higher performance, as well as bringing IPFS to more platforms, such as embedded systems, IoT and low-power devices. Rust's safety mechanisms reduce the occurrence of common errors and vulnerabilities, which allow developers to spend more time on features and performance.

Best Practices: Equilibrium Labs sets projects up for long-term success by applying industry best practices. Our comprehensive documentation efforts include not only technical reference materials for seasoned developers but also quick-start guides and tutorials for those who are new to the project. The codebase includes a comprehensive set of software tests to ensure code contributions meet the technical specifications.

About Rust

Rust is a modern open-source programming language providing memory safety and performance comparable to C++, making it a popular choice for developing robust, secure applications. Rust powers projects such as ZCash Zebra4, Holochain5, Lighthouse6, and many others in the blockchain space and beyond.

About Equilibrium Labs

Equilibrium Labs is an R&D company focused on the hardest engineering problems around security, privacy, and scaling of blockchain-based cloud infrastructure.

Footnotes:

  1. interface-ipfs-core: A test suite for IPFS core interface developers

  2. offchain::ipfs: Bringing rust-ipfs to Substrate

  3. Tokio: an asynchronous networking runtime for Rust

  4. ZCash Zebra: implementing the ZCash Protocol in Rust

  5. Holochain: a scalable framework for peer-to-peer applications

  6. Lighthouse: an open-source Ethereum 2.0 client

Copyright © 2023 EQ LabsPress & Brand