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

Continue reading

What Do We Actually Mean When We Talk About Privacy In Blockchain Networks (And Why Is It Hard To Achieve)?

An attempt to define what we mean by privacy, exploring how and why privacy in blockchain networks differs from web2, and why it's more difficult to achieve. We also provide a framework to evaluate different approaches for achieveing privacy in blockchain.

June 12, 2024

Will ZK Eat The Modular Stack?

Modularity enables faster experimentation along the tradeoff-frontier, wheras ZK provides stronger guarantees. While both of these are interesting to study on their own, this post explores the cross-over between the two.

April 9, 2024

Overview of Privacy Blockchains & Deep Dive Of Aleo

Programmable privacy in blockchains is an emergent theme. This post covers what privacy in blockchains entail, why most blockchains today are still transparent and more. We also provide a deepdive into Aleo - one of the pioneers of programmable privacy!

October 5, 2023

2022 Year In Review

If you’re reading this, you already know that 2022 was a tumultuous year for the blockchain industry, and we see little value in rehashing it. But you probably also agree with us that despite many challenges, there’s been a tremendous amount of progress.

March 12, 2023

Testing the Zcash Network

In early March of 2021, a small team from Equilibrium Labs applied for a grant to build a network test suite for Zcash nodes we named Ziggurat.

May 31, 2022

Rebranding Equilibrium

A look back at how we put together the Equilibrium 2.0 brand over four months in 2021 and found ourselves in brutalist digital zen gardens.

June 13, 2021

2021 Year In Review

It's been quite a year in the blockchain sphere. It's also been quite a year for Equilibrium and I thought I'd recap everything that has happened in the company with a "Year In Review" post.

January 20, 2021

Copyright © 2023 EQ LabsPress & Brand