Mantis Data Solutions | Arweave Integration - Milestone 1: Publish using Arweave Transaction ID - Finish Backend, Progress on Frontend | Round 22

Project Name

Mantis Data Solutions


Project Category

Core Software


Proposal Earmark

General


Proposal Description

Retroactive Funding Request

This is a retroactive funding request for 47 hours of work on the Ocean Protocol (backend and frontend) towards Arweave Integration Milestone 1: Publish using Arweave Transaction ID. The goal of this work is to enable publishing assets stored in Arweave using only the Arweave transaction ID.

Status Update

The backend is very close to fully supporting publishing with Arweave transaction ID.

  • My provider PR was merged :tada:
  • My ocean.py PR has been through 2 reviews.
  • My ocean.js PR updates the Provider API to take file objects like UrlFile and ArweaveFile instead of a URL string. It is ready for review.

Additional work is still required on the frontend:

  • I submitted two PRs to the market.
  • My first market PR upgrades the provider API to take UrlFile objects instead of strings. It is ready for review.
  • My second market PR adds the Storage Type and Transaction ID fields to the publish screen. I still need to develop a React component that handles the interactions between the storage type selector, the file URL field, and the Arweave transaction ID field.
  • I submitted two PRs to the docs:
  • My first docs PR was eventually abandoned because it predated the transition to Gitbook.
  • My second docs PR adds instructions to upload files to Arweave. I still need to update several screenshots once the market PRs are merged and deployed.

Request Scope

The 47 hours included in this request can be seen in the following image, outlined in red.

Hour breakdown:

This work does NOT include the ability to upload to Arweave from within the Ocean Market.

Hourly Rate

The requested $8000 is based on an hourly rate is $170/hr. This rate is in line with my R19 and R20 proposals which were fully funded.

Effort Scaling

Given that this is a retroactive funding request, there is no way for me to scale my effort down based on the actual amount of funding received. Nonetheless, I will respect the decision of the DAO, and I will not re-request funding for these 47 hours in future rounds. Nor will I seek funding from the Shipyard program for this same work.

No Overlap with Shipyard Proposal

I recently signed a contract with the Ocean Shipyard program. The scope of the contract does not overlap with the scope of this proposal.


Grant Deliverables

Arweave Integration Milestone 1: Publish using transaction ID by MantisClone · Pull Request #485 · oceanprotocol/provider · GitHub (merged) :tada:

Arweave Integration Milestone 1: Publish using transaction ID by MantisClone · Pull Request #860 · oceanprotocol/ocean.py · GitHub (reviewed x2)

Update Provider.checkFileUrl to allow non-URL file types (like Arweave) by MantisClone · Pull Request #1627 · oceanprotocol/ocean.js · GitHub (ready for review)

Pass UrlFile object to Provider.checkFileUrl instead of string by MantisClone · Pull Request #1732 · oceanprotocol/market · GitHub (depends on ocean.js PR 1627, otherwise ready for review)

Arweave Integration Milestone 1: Publish using transaction ID by MantisClone · Pull Request #1527 · oceanprotocol/market · GitHub (in progress)

Add `arweave` file type to DDO spec by MantisClone · Pull Request #1019 · oceanprotocol/docs · GitHub (abandoned)

Add optional userdata to url storage type, add arweave storage type. by MantisClone · Pull Request #1082 · oceanprotocol/docs · GitHub (depends on market PR 1527, in progress)


Project Description

Mantis Data Solutions

Mantis Data Solutions is the legal entity wrapper around me, David Hunt-Mateo, also known as “MantisClone” online. I’m a full-stack web3 developer and I love building open-source software that runs on decentralized, permissionless networks.

Past work for OceanDAO:

Current Project: First-class Arweave Integration

Problem

Arweave’s unique value proposition of “permanent storage for a one-time fee” makes it an attractive storage medium for data publishers. By storing in Arweave, they can be certain their data will always be available for consumption without worrying about recurring storage costs that exist in other decentralized options like Filecoin or cloud options like AWS, Azure, or GCP.

Today, it is possible to publish an asset on Ocean Protocol that is stored in Arweave using an Arweave gateway URL. But there are problems with this approach:

  • FIXED :tada: The download endpoint leaks the Arweave transaction ID as the filename, which uniquely identifies the document and allows the downloader to bypass Ocean Protocol altogether.
  • By specifying the Arweave gateway URL, the asset is now dependent on a single Arweave gateway when in truth, any Arweave gateway would work.
  • The Ocean Market doesn’t make it clear that storing data in Arweave is an option.
  • The data publisher cannot upload their data to Arweave via the Ocean Market and must use a 3rd party interface instead.

Opportunity

Today, Arweave stores 95 TB of data. Arweave has over 70k followers on Twitter and over 15k members across its Discord servers.


Final Product

Solution

I propose a “first-class” integration between the Ocean Protocol and Arweave to be implemented in three phases:

Milestone 1: Publish using Arweave transaction ID

Once complete, data publishers can use a 3rd party interface to upload their data to Arweave, and then publish it in the Ocean Market by providing the Arweave transaction ID instead of a URL.

Milestone 2: Upload to Arweave - Backend

Once complete, data publishers can use ocean.py and ocean.js to upload their data to Arweave and publish it as an asset on the Ocean market in a few programmatic steps.

Milestone 3: Upload to Arweave from the Ocean Market

Once complete, data publishers can copy/paste or drag/drop their data into the Ocean market. The market will upload the file to Arweave and use the resulting transaction ID to publish the asset.


Value Add Criteria

Usage of Ocean

First-class integration with Arweave will drive data publish volume. Data publishers want to use Arweave because it eliminates ongoing storage costs. Instead, there's a single upfront cost to store the data, permanently.


Viability

Chances of success are high - I can leverage my existing knowledge of the Ocean Protocol core tech stack and relationships with the core team to push this project to completion.


Community Engagement

I am deeply engaged with the Ocean Protocol community:

  • I worked at the Ocean Protocol Foundation from April 2021 to June 2022
  • I have attended the core tech working group meetings since June 2022
  • I frequently provide dev support on Discord


Community Value

I believe my project helped galvanize the rising tide of ocean community builders to pursue core tech improvements.


Core Team

David Hunt-Mateo (aka. MantisClone)

Role: Full-stack Web3 Software Developer

Relevant Credentials (e. g):

  • B.S. double major in Computer Engineering and Computer Science from the University of Wisconsin - Madison,
  • CompTIA Security+ ce Certification, Credential ID BP4DZZ1NKK1EYNSP

Github: https://github.com/MantisClone

Linkedin: https://www.linkedin.com/in/david-hunt-mateo/

Background/Experience:

  • Developed Snapshot voting strategies for Arrakis, H2O, and Rari Fuse
  • 1 year at Ocean Protocol Foundation maintaining the ocean.py SDK, aquarius event cache, and provider access proxy. Developed features and tests for Ocean ONDA V4.
  • 3 years at Think-A-Move building a cross-platform, on-device, noise-robust speech recognition system along with desktop and native Android apps showcasing its capabilities.
  • 4 years at Northrop Grumman working on a variety of projects including GUI integration testing, experimental low-latency networking, hardware emulation, and embedded image processing.

Advisors

N/A


Funding Requested
8000


Minimum Funding Requested

Wallet Address
0x1EC1CcEF3e1735bdA3F4BA698e8a524AA7c93274


Project submitted deliverables:

Arweave Integration Milestone 1: Publish using transaction ID by MantisClone · Pull Request #485 · oceanprotocol/provider · GitHub (merged)

Arweave Integration Milestone 1: Publish using transaction ID by MantisClone · Pull Request #860 · oceanprotocol/ocean.py · GitHub (reviewed x2)

Update Provider.checkFileUrl to allow non-URL file types (like Arweave) by MantisClone · Pull Request #1627 · oceanprotocol/ocean.js · GitHub (merged)

Pass UrlFile object to Provider.checkFileUrl instead of string by MantisClone · Pull Request #1732 · oceanprotocol/market · GitHub (abandoned in favor of adding ipfs / arweave support by EnzoVezzaro · Pull Request #1765 · oceanprotocol/market · GitHub)

Arweave Integration Milestone 1: Publish using transaction ID by MantisClone · Pull Request #1527 · oceanprotocol/market · GitHub (abandoned, OPF said won’t merge)

Add `arweave` file type to DDO spec by MantisClone · Pull Request #1019 · oceanprotocol/docs · GitHub (abandoned)

Add optional userdata to url storage type, add arweave storage type. by MantisClone · Pull Request #1082 · oceanprotocol/docs · GitHub (in progress)