SKALE Network - Arweave Bridge
ArweaveTeam
arweave, skale, permaweb, permanent, storage
# **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
2. - Block Data
- Transactions Data
- Transaction Receipts
- Event Data
- Decentralized Storage
3. Allow users to select the frequency of data transfer (hourly, daily, monthly, etc.)
4. 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.
5. 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](https://github.com/skalenetwork/skaled/blob/develop/docs/json-rpc-interface.md).
6. 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](https://github.com/skalenetwork/skaled/blob/a7d54ed7658609ad96f30eaf33af6e31442e7905/docs/snapshots.md).
**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**](http://skale.chat) 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](https://github.com/ArweaveTeam/arweave-js).
## **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**](http://skale.chat)
[**Arweave Dev Discord**](https://discord.gg/XzW3cpv)
**SKALE**
[Access SKALE Chain SDK](https://github.com/skalenetwork/skale-dev-env)
[Get Access to a SKALE Chain](https://skale.network/innovators-signup)
[Developer Documentation & Getting Started Guides](https://skale.network/docs/developers/getting-started/beginner)
[Decentralized Storage on SKALE](https://skale.network/docs/developers/products/file-storage)
**Arweave**
[Get an Arweave Wallet & Free Tokens](https://www.arweave.org/wallet#/wallet)
[Arweave Web Extension Wallet](https://docs.arweave.org/info/wallets/arweave-web-extension-wallet)
[Developer Documentation & Getting Started Guides](https://docs.arweave.org/developers/tools/arweave-deploy)
## **Submission Deadline**
The hackathon will take place from **June 23rd** to **July 28th**. The submission deadline is **July 28th @ 23:59 PM PST**.