ArweaveTeam / Bounties

Arweave sponsored Gitcoin bounties.
146 stars 41 forks source link

SKALE Network - Arweave Bridge #27

Closed cedriking closed 4 years ago

cedriking commented 4 years ago

SKALE Network - Arweave Bridge

Interoperability Hack

Introduction

SKALE and Arweave are both at the forefront of the blockchain revolution, moving forward with solutions to utilise blockchain technology to benefit the masses. SKALE is built to handle a large volume of transactions, and therefore creates a large amount of data. In most cases, storing this data permanently is required. Arweave is a great complement to SKALE, as the Arweave network offers highly scalable and permanent data storage, so an Arweave-SKALE integration will provide a clear solution to SKALE’s data permanence needs.

Application requirements

The application shall facilitate a bridge to connect SKALE Chain data to Arweave permanent storage and must fulfill the following criteria:

SKALE

  1. Allow users to select the type of data to store from the SKALE Chains. Data may be one, or all of the following

    • Block Data
    • Transactions Data
    • Transaction Receipts
    • Event Data
    • Decentralized Storage
  2. Allow users to select the frequency of data transfer (hourly, daily, monthly, etc.)

  3. Allow users to dynamically enter SKALE Chain JSON-RPC endpoints. The SKALE Network is made up of multiple SKALE Chains that do not share storage space. To access data from different dApps, you will need to access different SKALE Chains that will each have a different endpoint to connect.

  4. Data should be retrieved from a SKALE Chain through a JSON-RPC endpoint. For a list of available JSON RPC methods within the SKALE Network please see the Github documentation on JSON-RPC Interface Compatibility.

  5. Data can also be retrieved via snapshot data. SKALE allows developers to download a "Snapshot" of the SKALE Chain data through the JSON RPC endpoint. SKALE periodically performs snapshots of the entire SKALE chain file system. Snapshot data is stored in BTRFS format, and needs to be converted into JSON when sent to Arweave. To learn more about Snapshot data please see the Github documentation on Snapshot Data.

Arweave

  1. Allow SKALE Chain owners to create and fund an Aweave account with Arweave tokens directly within the application.
  2. Allow users to optionally select a custom Arweave gateway address (default arweave.org).
  3. Generate an Arweave ANS-102 data bundle, containing data entries for each item retrieved from the SKALE validator node. Ensure that each data entry is tagged with the chain ID, data type, and unique identifier related to the item.
  4. Sign the data bundle when the transaction size limit is reached (12mb) (see note below) and distribute it to an Arweave gateway, chosen by the user.

Application Design

  1. Create a user interface that is user friendly.
  2. The entire system should be easily deployable.

Transaction size limit

With the recent release of Arweave 2.1, the previous 12MB transaction data size limit has been lifted, effectively removing the transaction size limit entirely. As part of this work, you will be required to use 2.1-style transactions as support lands in ArweaveJS, within the next few weeks.

Rules

Successful submissions will meet the following criteria:

  1. Submissions must be your own original work.
  2. We are happy to accept forks of other applications, but the feature-set must be substantially different or significantly expanded in the forked version.
  3. Apps must be open source, with the full source code available on Github or another open code hosting repository. Feel free to use whatever OSS license you prefer.
  4. Your submission must include a link to a live, functioning, and running instance of the app itself, as well as a link to the repository it is stored within.
  5. All submissions must include a brief description of the application and functionality in the GitHub repo
  6. All applicants must join the SKALE Discord server and share your submission in the #skale-arweave-bridge channel upon completion

SKALE Specific Rules

  1. Your app must provide support for dynamic endpoints

Arweave Specific Rules

  1. Your app must interact with Arweave using ArweaveJS.

Resources

Need to learn more about the SKALE or Arweave technology? Use the resources below, or reach out to the relative support teams on the shared discord channel:

SKALE Discord

Arweave Dev Discord

SKALE

Access SKALE Chain SDK

Get Access to a SKALE Chain

Developer Documentation & Getting Started Guides

Decentralized Storage on SKALE

Arweave

Get an Arweave Wallet & Free Tokens

Arweave Web Extension Wallet

Developer Documentation & Getting Started Guides

Submission Deadline

The hackathon will take place from June 23rd to July 28th. The submission deadline is July 28th @ 23:59 PM PST.

gitcoinbot commented 4 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


This issue now has a funding of 10000.0 DAI (10000.0 USD @ $1.0/DAI) attached to it as part of the arweaveteam fund.

gitcoinbot commented 4 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work has been started.

These users each claimed they can complete the work by 6 days, 18 hours ago. Please review their action plans below:

1) cirsteve has applied to start work _(Funders only: approve worker | reject worker)_.

I already have infrastructure for querying skale endpoints, i will clean that up and make it more configurable. Will need to build the arweave integration.

Question about Skale 3: does selecting the frequency of data transfer imply a server maintaining state running a chron job, or can it be a client side app (not sure exactly how to do it), or an input driven interface, i.e. users configure what period and frequency of data to store and manually trigger the saving 2) hellomalaysia has applied to start work _(Funders only: approve worker | reject worker)_.

I understand that this is an application and I should wait for approval from the funder before starting work. 3) jasoons has been approved to start work.

I already have experience with arweave from a previous hackathon project that my friend did, and I have lots of experience working with ethereum infrastructure - so I hope some of that knowledge will transfer to Skale (I'm also super fascinated by Skale, so motivation won't be an issue!).

Like any good software project I'll aim to work very iteratively, doing small experiments and asking questions to make sure I don't build something that isn't wanted by the Skale team.

I initially see a few different modules that I will build separately:

I'll be representing https://avolabs.io on this work :) 4) rekpero has applied to start work _(Funders only: approve worker | reject worker)_.

Hey guys! I'm interested in building out a bridge between Arweave and SKALE, I have built a couple of app on Arweave and am quite familiar with Arweave protocol and my friend is familiar with SKALE protocol.

We'll develop easy to use UI with nice UX design to migrate data from the SKALE to Arweave fulfilling the above requirements. And leaving the room to make it flexible for additional use cases like encryption, batch rollup, etc. We'll be giving updates on our progress and will also be taking feedback on our hack after we are done with the initial mockups. 5) pmprete has applied to start work _(Funders only: approve worker | reject worker)_.

We are planning on creating a Ux that allows you to set the parameters like Block, transactions, receipt, events, and decentralized storage and with that creates a Service that retrieves that information from SKALE and registers it in Arwave using the corresponding tags.

Learn more on the Gitcoin Issue Details page.

cedriking commented 4 years ago

Hello @cirsteve , please join SKALE discord server at http://skale.chat/ to receive help with your question 👍

iamonuwa commented 4 years ago

This should be a cooperative task.

gitcoinbot commented 4 years ago

@jasoons Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

gitcoinbot commented 4 years ago

@jasoons Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

JasoonS commented 4 years ago

Yes, I'm working on this. My github notifications must be off!

Here is the WIP: https://github.com/avolabs-io/arweave-skale-bridge

cedriking commented 4 years ago

Thanks for the update @JasoonS 👍

gitcoinbot commented 4 years ago

@jasoons Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

gitcoinbot commented 4 years ago

@jasoons Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

JasoonS commented 4 years ago

@gitcoinbot I'm working on it 🤺

gitcoinbot commented 4 years ago

@jasoons Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

gitcoinbot commented 4 years ago

@jasoons Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

gitcoinbot commented 4 years ago

@jasoons Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

gitcoinbot commented 4 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work for 10000.0 DAI (10000.0 USD @ $1.0/DAI) has been submitted by:

  1. @jasoons

@cedriking please take a look at the submitted work:


gitcoinbot commented 4 years ago
Arweave Badge ⚡️ A *Arweave Badge* Kudos has been sent to @jasoons for this issue from @cedriking. ⚡️ Nice work @jasoons! Your Kudos has automatically been sent in the ETH address we have on file.
gitcoinbot commented 4 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


The funding of 10000.0 DAI (10000.0 USD @ $1.0/DAI) attached to this issue has been approved & issued to @jasoons.