mirror of
https://github.com/oceanprotocol/docs.git
synced 2024-11-26 19:49:26 +01:00
72 lines
3.7 KiB
Markdown
72 lines
3.7 KiB
Markdown
---
|
|
title: Set Up a Marketplace
|
|
description: Set up and run a data marketplace in the Ocean network.
|
|
---
|
|
|
|
## What Does it Mean to Set Up a Marketplace?
|
|
|
|
An Ocean marketplace app is one of the primary ways that end users use the Ocean network. For example, a data scientist could use a marketplace app to see what [assets](/concepts/terminology/#asset-or-data-asset) a marketplace has available. They can use the marketplace app to buy access to assets. Publishers make those assets available.
|
|
|
|
**Note: In the early days of the Ocean network, there won't be many marketplaces or publishers, so marketplaces will often also act as publishers.**
|
|
|
|
If you want to set up and run a marketplace in the Ocean network, then at a technical level, you must:
|
|
|
|
1. Have [assets](/concepts/terminology/#asset-or-data-asset) to offer in your marketplace.
|
|
1. Get those assets set up to work with Ocean Protocol.
|
|
1. Develop a marketplace application (app).
|
|
1. Run your marketplace app in production.
|
|
|
|
## Prepare Assets
|
|
|
|
At the time of writing, the following kinds of [assets](/concepts/terminology/#asset-or-data-asset) were supported:
|
|
|
|
- data sets stored in Azure Storage (i.e. with "core.windows.net" in their URL). See [the tutorial about setting up Azure Storage to work with Ocean Protocol](/tutorials/azure-for-brizo/).
|
|
- data sets stored in Amazon S3 storage (i.e. with "s3://" in their URL). See [the tutorial about setting up Amazon S3 storage to work with Ocean Protocol](/tutorials/amazon-s3-for-brizo/).
|
|
- data sets stored in on-premise storage. See [the tutorial about setting up on-premise storage to work with Ocean Protocol](/tutorials/on-premise-for-brizo/).
|
|
|
|
Note: You can use _all_ of the above. You aren't restricted to using only one storage provider.
|
|
|
|
Support for other kinds of assets (e.g. computing in Azure) is coming.
|
|
|
|
## Develop a Marketplace App
|
|
|
|
At the time of writing, we recommend the following steps to develop a marketplace app:
|
|
|
|
1. Do the [React App Tutorial](/tutorials/react-setup/).
|
|
1. Grow your app from there.
|
|
|
|
For inspiration, check out [the source code for Pleuston](https://github.com/oceanprotocol/pleuston), a demo marketplace app (also written using React). It has an Apache v2 open source license.
|
|
|
|
<repo name="pleuston"></repo>
|
|
|
|
Note that Pleuston is a "serverless" app: it runs entirely in the browser and has no server-side component.
|
|
|
|
### Other Options for Developing a Marketplace App
|
|
|
|
There are many ways to create an Ocean marketplace app. For example, you could use one of the existing e-commerce platforms and frameworks (e.g. WooCommerce, Magento, Shopify). Or you could use a lower-level framework like Django or Vue.js. The main consideration is that you should probably use a programming language with an existing Squid library.
|
|
|
|
<repo name="squid-js"></repo>
|
|
<repo name="squid-py"></repo>
|
|
<repo name="squid-java"></repo>
|
|
|
|
Note: There are examples of how to use squid-py in the [Tutorials](/tutorials/introduction/). squid-py is to Ocean like boto3 is to AWS.
|
|
|
|
Of course, you could always write your own Squid library in the language of your choice.
|
|
|
|
## Run Your Marketplace App in Production
|
|
|
|
The Ocean Mainnet is slated to go live in March 2019.
|
|
|
|
Before running your marketplace app in production with the Ocean Mainnet, you may want to test it with an [Ocean testnet](/concepts/testnets/).
|
|
The Ocean testnets are similar to the Ocean Mainnet.
|
|
The main difference is that there is less risk on the Ocean testnets.
|
|
|
|
Of course, there are many other things that must be handled for live production apps:
|
|
|
|
- Security of the infrastructure where the software is running
|
|
- Monitoring
|
|
- Log aggregation, storage and search
|
|
- Handling crashes or other faults
|
|
|
|
Each of those is a big topic beyond the scope of these docs.
|