diff --git a/README.md b/README.md index ead41c9d..8e33bc61 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,6 @@ - [Linting & Formatting](#linting--formatting) - [Editor Setup: VS Code](#editor-setup-vs-code) - [Deployment](#deployment) -- [Authors](#authors) - [License](#license) ## Content @@ -115,11 +114,6 @@ Requires authorization against AWS with [one of the various ways](https://docs.a - `AWS_SECRET_ACCESS_KEY` - `AWS_DEFAULT_REGION` -## Authors - -- Troy McConaghy ([@ttmc](https://github.com/ttmc)) - [Ocean Protocol](https://oceanprotocol.com) -- Matthias Kretschmann ([@kremalicious](https://github.com/kremalicious)) - [Ocean Protocol](https://oceanprotocol.com) - ## License ```text diff --git a/config.js b/config.js index cc6f683a..c705f807 100644 --- a/config.js +++ b/config.js @@ -1,8 +1,7 @@ module.exports = { - siteTitle: 'Ocean Protocol Documentation', + siteTitle: 'Ocean Developer Documentation', siteShortTitle: 'Docs', - siteDescription: - 'Learn about the components of the Ocean Protocol software stack, and how to run or use the components relevant to you.', + siteDescription: 'Tools to Build Data Markets, and Manage ERC20 Data Assets', siteUrl: process.env.SITE_URL || 'https://docs.oceanprotocol.com', siteIcon: 'node_modules/@oceanprotocol/art/logo/favicon-black.png', siteCompany: 'Ocean Protocol Foundation Ltd.', @@ -25,10 +24,6 @@ module.exports = { from: '/concepts/', to: '/concepts/introduction/' }, - { - from: '/setup/', - to: '/setup/quickstart/' - }, { from: '/tutorials/', to: '/tutorials/introduction/' @@ -42,20 +37,28 @@ module.exports = { to: '/concepts/wallets/' }, { - from: '/concepts/production-network/', - to: '/concepts/pacific-network/' + from: '/references/ocean.js/', + to: 'https://github.com/oceanprotocol/ocean.js' }, { - from: '/references/squid-py/', - to: 'https://squid-py.readthedocs.io/en/latest/' + from: '/references/react/', + to: 'https://github.com/oceanprotocol/react' }, { - from: '/references/squid-java/', - to: 'https://www.javadoc.io/doc/com.oceanprotocol/squid/' + from: '/references/ocean.py/', + to: 'https://github.com/oceanprotocol/ocean.py' }, { - from: '/tutorials/token-bridge/', - to: '/tutorials/' + from: '/references/ocean-contracts/', + to: 'https://github.com/oceanprotocol/ocean-contracts' + }, + { + from: '/references/aquarius/', + to: 'https://github.com/oceanprotocol/aquarius' + }, + { + from: '/references/provider-py/', + to: 'https://github.com/oceanprotocol/provider-py' } ] } diff --git a/content/concepts/architecture.md b/content/concepts/architecture.md new file mode 100644 index 00000000..f3a9a3dc --- /dev/null +++ b/content/concepts/architecture.md @@ -0,0 +1,67 @@ +--- +title: Architecture Overview +description: Simplicity and Interoperability via a Datatokens Core +--- + +## Overview + +Here is the Ocean architecture. + +![Ocean Protocol tools architecture](images/architecture.png) + +Here’s an overview of the figure. + +- The top layer is **applications** like Ocean Market. With these apps, users can onboard data services into crypto (publish and mint datatokens), hold datatokens as assets (data wallets), discover data assets and buy / sell datatokens for fixed or auto-determined price (data marketplaces), and consume data services (consume datatokens). +- Below that are **libraries** used by the applications: Ocean React hooks, JavaScript library, and Python library. This also includes middleware to assist discovery: Aquarius and (3rd party tool) TheGraph. +- The lowest level has the **smart contracts** used by the libraries. They’re deployed on Ethereum mainnet to start, and other networks later. + +Left to right are groupings of functionality: tools for datatokens, tools for markets (including pools), tools to consume data services and for metadata, and external ERC20 tools. + +The rest of this page elaborates. + +## Datatokens & Access Control Tools + +The publisher actor holds the dataset in Google Drive, Dropbox, AWS S3, on their phone, on their home server, etc. The dataset has a URL. The publisher can optionally use IPFS for a content-addressable URL. Or instead of a file, the publisher may run a compute-to-data service. + +In the **publish** step, the publisher invokes **Ocean Datatoken Factory** to deploy a new datatoken to the chain. To save gas fees, it uses [ERC1167](https://eips.ethereum.org/EIPS/eip-1167) proxy approach on the **ERC20 datatoken template**. The publisher then mints datatokens. + +The publisher runs **Ocean Provider**. In the **consume** step, Provider software needs to retrieve the data service URL given a datatoken address. One approach would be for the publisher to run a database; however this adds another dependency. To avoid this, it stores the URL on-chain. So that others don’t see that URL, it encrypts it. + +To initiate the **consume** step, the data consumer sends 1.0 datatokens to the Provider wallet. Then they make a service request to the Provider. The Provider loads the encrypted URL, decrypts it, and provisions the requested service (send static data, or enable a compute-to-data job). + +Instead of running a Provider themselves, the publisher can have a 3rd party like Ocean Market run it. While more convenient, it means that the 3rd party has custody of the private encryption/decryption key (more centralized). Ocean will support more service types and url custody options in the future. + +**Ocean JavaScript and Python libraries** act as drivers for the lower-level contracts. Each library integrates with Ocean Provider to provision & consume data services, and Ocean Aquarius for metadata. **Ocean React hooks** use the JavaScript library, to help build webapps & React Native apps with Ocean. + +## Market Tools + +Once someone has generated datatokens, they can be used in any ERC20 exchange, centralized or decentralized. In addition, Ocean provides a convenient default marketplace that is tuned for data: **Ocean Market**. It’s a vendor-neutral reference data marketplace for use by the Ocean community. + +The marketplaces are decentralized (no single owner or controller), and non-custodial (only the data owner holds the keys for the datatokens). + +Ocean Market supports fixed pricing and automatic price discovery. + +- For **fixed pricing**, there’s a simple contract for users to buy/sell datatokens for OCEAN, while avoiding custodianship during value transfer. +- For **automatic price discovery**, Ocean Market uses automated market makers (AMMs) powered by [Balancer](https://www.balancer.finance). Each pool is a datatoken-OCEAN pair. In the Ocean Market GUI, the user adds liquidity then invokes pool creation; the GUI’s React code calls the Ocean JavaScript library, which calls the **Pool Factory** to deploy a **Pool** contract. (The Python library also does this.) Deploying a datatoken pool can be viewed as an “Initial Data Offering” (IDO). + +Complementary to Ocean Market, Ocean has reference code to ease building **third-party data marketplaces**, such as for logistics ([dexFreight data marketplace](https://blog.oceanprotocol.com/dexfreight-ocean-protocol-partner-to-enable-transportation-logistics-companies-to-monetize-data-7aa839195ac)) or mobility ([Daimler](https://blog.oceanprotocol.com/ocean-protocol-delivers-proof-of-concept-for-daimler-ag-in-collaboration-with-daimler-south-east-564aa7d959ca)). + +[This post](https://blog.oceanprotocol.com/ocean-market-an-open-source-community-marketplace-for-data-4b99bedacdc3) elaborates on Ocean marketplace tools. + +## Metadata Tools + +Metadata (name of dataset, date created etc.) is used by marketplaces for data asset discovery. Each data asset can have a [decentralized identifier](https://w3c-ccg.github.io/did-spec/) (DID) that resolves to a DID document (DDO) for associated metadata. The DDO is essentially [JSON](https://www.json.org/) filling in metadata fields. [OEP7](https://github.com/oceanprotocol/OEPs/tree/master/7) formalizes Ocean DID usage. + +[OEP8](https://github.com/oceanprotocol/OEPs/tree/master/8) specifies Ocean metadata schema, including fields that must be filled. It’s based on the public [DataSet schema from schema.org](https://schema.org/Dataset). + +Ocean uses the Ethereum mainnet as an **on-chain metadata store**, i.e. to store both DID and DDO. This means that once the write fee is paid, there are no further expenses or dev-ops work needed to ensure metadata availability into the future, aiding in the discoverability of data assets. It also simplifies integration with the rest of the Ocean system, which is Ethereum-based. Storage cost on Ethereum mainnet is not negligible, but not prohibitive and the other benefits are currently worth the tradeoff compared to alternatives. + +Due to the permissionless, decentralized nature of data on Ethereum mainnet, any last-mile tool can access metadata. **Ocean Aquarius** supports different metadata fields for each different Ocean-based marketplace. Developers could also use [TheGraph](https://www.thegraph.com) to see metadata fields that are common across all marketplaces. + +## Third-Party ERC20 Apps & Tools + +The ERC20 nature of datatokens eases composability with other Ethereum tools and apps, including **MetaMask** and **Trezor** as data wallets, DEXes as data exchanges, and more. [This post](https://blog.oceanprotocol.com/ocean-datatokens-from-money-legos-to-data-legos-4f867cec1837) has details. + +## Actor Identities + +Actors like data providers and consumers have Ethereum addresses, aka web3 accounts. These are managed by crypto wallets, as one would expect. For most use cases, this is all that’s needed. There are cases where the Ocean community could layer on protocols like [Verifiable Credentials](https://www.w3.org/TR/vc-data-model/) or tools like [3Box](https://3box.io/). diff --git a/content/concepts/bounties.md b/content/concepts/bounties.md deleted file mode 100644 index 18dba022..00000000 --- a/content/concepts/bounties.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Bounties -description: Help with Ocean Protocol development and have Ocean Tokens rain on you. ---- - -Check out the: - -- [Ocean Protocol Bounties on Gitcoin](https://gitcoin.co/explorer?network=mainnet&idx_status=open&keywords=oceanprotocol&order_by=-web3_created&org=oceanprotocol) - - diff --git a/content/concepts/components.md b/content/concepts/components.md deleted file mode 100644 index 86f83843..00000000 --- a/content/concepts/components.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: Software Components -description: Every Ocean network is brought to life by many interacting symbiotic software components. ---- - -Before reading this page, you should understand some [Ocean-specific terminology](/concepts/terminology/). - -## Keeper - -A computer running an EVM-compatible blockchain client -(such as [Parity Ethereum](https://www.parity.io/ethereum/)) -where the associated blockchain network is running the Ocean Protocol -[keeper-contracts](https://github.com/oceanprotocol/keeper-contracts) -(smart contracts). - - - -See also: [Run a Keeper](/setup/keeper/) - -## Secret Store - -A [Parity Secret Store](https://wiki.parity.io/Secret-Store): software for distributed key pair generation, distributed key storage, and threshold retrieval. It's used to store [asset](/concepts/terminology/#asset-or-data-asset) access-control keys. - - - -There are several clients for integrating the Parity Secret Store into Ocean: - - - - - -## Aquarius - -Marketplaces run Aquarius to store and manage metadata about the [assets](/concepts/terminology/#asset-or-data-asset) available in their marketplace. It provides an HTTP API for interacting with an off-chain database (sometimes called "OceanDB"). - - - -### OceanDB Drivers - -Aquarius supports several options for the off-chain database (OceanDB), including Elasticsearch and MongoDB. One can add support for another off-chain database by creating a new driver similar to the existing OceanDB drivers. - - - - -> There is also a [BigchainDB driver](https://github.com/oceanprotocol/oceandb-bigchaindb-driver) but it hasn't been maintained. - -You can create your own OceanDB drivers by extending on the `oceandb-driver-interface`. - - - -## Brizo - -Publishers run Brizo to manage interactions with marketplaces and consumers. -It interacts with the publisher's cloud and/or on-premise infrastructure. - -The most basic scenario for a publisher is to provide access to the [assets](/concepts/terminology/#asset-or-data-asset) the publisher owns or manages, but [Brizo can do much more](/concepts/architecture/#brizo). - - - -### Events Handler - -Brizo communicates with the Events Handler to deal with Keeper Contracts events. - -The Events Handler monitors Service Execution Agreement (SEA) events and acts as a provider agent to grant access and release rewards for the publisher/provider. This is a critical part in the process of consuming data sets in the Ocean Protocol network. - -Every provider in the network must run some sort of an events handler to be able to fulfill the access condition of an `Access` service in a Service Execution Agreement. - - - -### Osmosis Drivers - -Brizo supports several options for file storage, including Azure Storage, Amazon S3 and on-premise storage. One can add support for another file storage option by creating a new driver similar to one of the existing Osmosis drivers. - - - - - - -You can create your own Osmosis drivers by extending on the `osmosis-driver-interface`. - - - -## Squid Libraries - -Client libraries used by applications (such as Pleuston or Jupyter notebooks) to interact with Ocean components, including Keepers, Aquarius nodes, Brizo nodes, etc. - -![How Squid is Used](images/ocean-squid-ecosystem.png) - - - - - -## Commons Marketplace - -An online example marketplace/publisher for consumers to explore, download, and publish open data sets in the [Pacific Network](/concepts/pacific-network/). Implemented using [React](https://reactjs.org/) and [squid-js](https://github.com/oceanprotocol/squid-js). - -For more information, see [the blog post about Commons Marketplace](https://blog.oceanprotocol.com/the-commons-data-marketplace-c57a44288314). - - - -The Commons Marketplace is also the default frontend when running a full Ocean network locally with [Barge](/setup/quickstart/). - -## Pleuston (deprecated) - -An example marketplace/publisher front-end for developers to explore, download, and publish [assets](/concepts/terminology/#asset-or-data-asset) in an Ocean Protocol network. Implemented using [React](https://reactjs.org/) and [squid-js](https://github.com/oceanprotocol/squid-js). - - diff --git a/content/concepts/compute-to-data.md b/content/concepts/compute-to-data.md index 5f769165..1bdda340 100644 --- a/content/concepts/compute-to-data.md +++ b/content/concepts/compute-to-data.md @@ -1,22 +1,23 @@ --- title: Compute-to-Data -description: How Ocean Protocol enables Publishers to provide computing services and related services. +description: Providing access to data in a privacy-preserving fashion slug: /concepts/compute-to-data/ section: concepts --- ## Motivation -The most basic scenario for a Publisher is to provide access to the datasets they own or manage. -In addition to that, a Publisher could offer a service to execute some computation on top of their data. This has some benefits: +The most basic scenario for a Publisher is to provide access to the datasets they own or manage. However, a Publisher may offer a service to execute some computation on top of their data. This has some benefits: - The data **never** leaves the Publisher enclave. - It's not necessary to move the data; the algorithm is sent to the data. - Having only one copy of the data and not moving it makes it easier to be compliant with data protection regulations. +[This page](https://oceanprotocol.com/technology/compute-to-data) elaborates on the benefits. + ## Architecture -### Enabling Publisher Services (Brizo) +### Enabling Publisher Services, using Ocean Provider The direct interaction with the infrastructure where the data resides requires the execution of a component handled by Publishers. @@ -24,26 +25,16 @@ This component will be in charge of interacting with users and managing the basi The business logic supporting these additional Publisher capabilities is the responsibility of this new technical component. -The main and new key component introduced to support these additional Publisher services is named **Brizo**. +The main and new key component introduced to support these additional Publisher services is named **Ocean Provider**. -> Brizo is an ancient Greek goddess who was known as the protector of mariners, sailors, and fishermen. She was worshipped primarily by the women of Delos, who set out food offerings in small boats. Brizo was also known as a prophet specializing in the interpretation of dreams. - -In the Ocean ecosystem, Brizo is the technical component executed by the **Publishers**, which provides extended data services. Brizo, as part of the Publisher ecosystem, includes the credentials to interact with the infrastructure (initially in cloud providers, but it could be on-premise). - -Because of these credentials, the execution of Brizo **SHOULD NOT** be delegated to a third-party. - - - -![Brizo High-Level Architecture](images/brizo-hl-arch.png) +Ocean Provider is the technical component executed by the **Publishers**, which provides extended data services. Ocean Provider includes the credentials to interact with the infrastructure (initially in cloud providers, but it could be on-premise). ### Compute-to-Data Enviroment (Operator-Service) -The Operator Service is a micro-service implementing part of the Ocean Protocol -[Compute to the Data OEP-12](https://github.com/oceanprotocol/OEPs/tree/master/12), +The Operator Service is a micro-service that implements part of the Compute-to-Data spec [OEP-12](https://github.com/oceanprotocol/OEPs/tree/master/12), in charge of managing the workflow executing requests. -Typically the Operator Service is integrated from the [Brizo proxy](https://github.com/oceanprotocol/brizo), -but can be called independently if it. +Typically the Operator Service is integrated from Ocean Provider, but can be called independently if it. The Operator Service is in charge of stablishing the communication with the K8s cluster, allowing to: @@ -81,5 +72,5 @@ In the above diagram you can see the initial integration supported. It involves Before the flow can begin, the following pre-conditions must be met: - The Asset DDO has a compute service. -- The Asset DDO must specify the Brizo endpoint exposed by the Publisher. +- The Asset DDO must specify the Ocean Provider endpoint exposed by the Publisher. - The Service Agreement template must already be predefined and whitelisted `on-chain`. diff --git a/content/concepts/contributing.md b/content/concepts/contributing.md index f7607d65..92d90a3f 100644 --- a/content/concepts/contributing.md +++ b/content/concepts/contributing.md @@ -1,57 +1,34 @@ --- title: Ways to Contribute -description: There are many ways you could contribute to Ocean Protocol. +description: Help develop Ocean core software, more --- -All contributions to Ocean Protocol are governed by our [Contributor Code of Conduct](/concepts/code-of-conduct/). -Code development follows the [Ocean Engineering Principles](/concepts/principles/). +### Help develop Ocean core software -## Help Develop Core Ocean Software +We'd love to have you help contribute to the Ocean core software! Here are ways to get going: -- Read and understand the [legal requirements when contributing code](/concepts/legal-reqs/). -- Look through the [dev-ocean repository on GitHub](https://github.com/oceanprotocol/dev-ocean). It summarizes Ocean Protocol software development practices and policies. -- Ask technical questions in the [Ocean Protocol chatroom on Discord](https://discord.gg/TnXjkR5). -- Find repository-specific development notes in each repository (usually in the root `README.md` file). +- _Just do it:)_ Branch from the code, improve it, submit a Pull Request. +- Chat with other Ocean developers in [Discord](https://discord.gg/TnXjkR5). +- Because of the weird world of intellectual property, before it can go through, we need to follow the [legal requirements](/concepts/legal-reqs/). Please be aware of this. +- Finally, here's the [Contributor Code of Conduct](/concepts/code-of-conduct/). -## Report a Vulnerability +### Develop an app or integration, using Ocean as a tool -See the page about [reporting vulnerabilities](/concepts/vulnerabilities/). +Integrate Ocean at one of its interface points: React hooks, Javascript library, Python library, smart contracts, etc. -## Report a Bug or Make a Feature Request +Ocean documentation will help. And... you're here:) -To report a bug that isn't a vulnerability, or to make a feature request, go to the relevant GitHub repository, click on the Issues tab, click on the New issue button, and read the instructions. +### Report a bug -## Suggest a Change to the Protocol Itself +To report a vulnerability, [go here](/concepts/vulnerabilities/). -To suggest a change to the Ocean Protocol itself (which is actually a set of protocols), go to the [Ocean Protocol Enhancement Proposals (OEPs)](https://github.com/oceanprotocol/OEPs/) repository and write a proposal, either as an issue or as a pull request. +To report a bug that isn't a vulnerability, go to the relevant GitHub repository, click on the Issues tab, click on the New issue button, and read the instructions. -## Write! - -You could write articles or blog posts related to Ocean Protocol. Possible topics include: - -- a story about how you used Ocean Protocol or an Ocean network -- news from a recent event -- tutorials for beginners -- a deep dive into some specific aspect of Ocean Protocol -- a blog post about a particular component in the Ocean Protocol stack - -For instructions on how to contribute to our main documentation site, check out the docs repo. +### Improve these docs +These docs can always be improved. Here's the repo. -## Participate in a Bounty +### Other ways to get involved -See the page about [bounties](/concepts/bounties/). - -## Become an Ocean Protocol Ambassador - -- [Read the announcement of the Ocean Protocol Ambassador Program](https://blog.oceanprotocol.com/envoys-of-the-new-data-economy-ocean-protocol-ambassadors-3816a0e63611) -- [Read about some ambassadors](https://blog.oceanprotocol.com/an-ambassadors-tale-531401d4452f) -- [Apply to become an ambassador](https://oceanprotocol.com/#ambassadors) - -## Develop a Service Integration Driver or Plugin - -- Aquarius currently supports storing metadata in Elasticsearch or MongoDB. Each option is supported by its own "OceanDB driver." You could write a new OceanDB driver to support another database. See [the existing OceanDB repositories for examples](https://github.com/oceanprotocol?utf8=%E2%9C%93&q=oceandb&type=&language=). -- Brizo currently supports storing data sets in Azure Storage, Amazon S3 or on-premise. Each option is supported by its own "Osmosis driver." You could write a new Osmosis driver to support another storage provider. See [the existing Osmosis repositories for examples](https://github.com/oceanprotocol?utf8=%E2%9C%93&q=osmosis&type=&language=). -- [OEP-11 lists the supported encryption and decryption options](https://github.com/oceanprotocol/OEPs/tree/master/11#encryption-and-decryption) (for encrypting URLs before putting them in the metadata, not data sets themselves). You could add support for another option. -- Other kinds of services could also be integrated. If you need help or advice, then email info@oceanprotocol.com. +Please go to the [Ocean Community Page](www.oceanprotocol.com/community) for more ideas on how to get involved. diff --git a/content/concepts/development.md b/content/concepts/development.md deleted file mode 100644 index 5c6a9efc..00000000 --- a/content/concepts/development.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: Development & Governance -description: Learn about the engineering process behind Ocean Protocol and how you can influence its further development. ---- - -## Collective Code Construction Contract (C4) - -Ocean Protocol uses [C4 Standard process](https://github.com/unprotocols/rfc/blob/master/1/README.md) to manage changes in the source code. Find more details in the respective [OEP-01](https://github.com/oceanprotocol/OEPs/tree/master/1). - - - -## Project management - -We use GitHub as a means for maintaining and tracking issues, roadmap and source code development. - -- [Ocean Protocol on GitHub](https://github.com/oceanprotocol) -- [Business Board (Ocean Roadmap)](https://github.com/oceanprotocol/ocean/projects/1) -- [Milestones](https://github.com/oceanprotocol/ocean/milestones?direction=asc&sort=due_date&state=open) - -We use the _dev-ocean_ repository for internal documentation of most of our engineering processes. - - diff --git a/content/concepts/get-funding.md b/content/concepts/get-funding.md new file mode 100644 index 00000000..4c0e7188 --- /dev/null +++ b/content/concepts/get-funding.md @@ -0,0 +1,8 @@ +--- +title: Funding +description: +--- + +Funding can be for contributing to the core software, building apps, doing integrations, fixing bugs, community outreach, and more. + +**[This page](https://www.oceanprotocol.com/fund)** has more information. diff --git a/content/concepts/images/architecture.png b/content/concepts/images/architecture.png new file mode 100644 index 00000000..f479632e Binary files /dev/null and b/content/concepts/images/architecture.png differ diff --git a/content/concepts/images/brizo-hl-arch.png b/content/concepts/images/brizo-hl-arch.png deleted file mode 100644 index 08c9bf2a..00000000 Binary files a/content/concepts/images/brizo-hl-arch.png and /dev/null differ diff --git a/content/concepts/images/components.png b/content/concepts/images/components.png deleted file mode 100644 index a23edb59..00000000 Binary files a/content/concepts/images/components.png and /dev/null differ diff --git a/content/concepts/images/ocean-squid-ecosystem.png b/content/concepts/images/ocean-squid-ecosystem.png deleted file mode 100644 index 03ff5224..00000000 Binary files a/content/concepts/images/ocean-squid-ecosystem.png and /dev/null differ diff --git a/content/concepts/introduction.md b/content/concepts/introduction.md index e7cd20b8..deafbbeb 100644 --- a/content/concepts/introduction.md +++ b/content/concepts/introduction.md @@ -1,24 +1,22 @@ --- title: Introduction -description: Get up to speed with Ocean Protocol. +description: Ocean Protocol - Tools for the Web3 Data Economy --- -## What is Ocean Protocol? +In Ocean Protocol, each data service gets its own ERC20 **datatoken**. This enables data wallets, data exchanges, and data co-ops by directly leveraging crypto wallets, exchanges, and more. -Ocean Protocol is an ecosystem for the data economy and associated services. It provides a tokenized service layer that exposes data, storage, compute and algorithms for consumption with a set of deterministic proofs on availability and integrity that serve as verifiable service agreements. There is staking on services to signal quality, reputation and ward against Sybil Attacks. +OCEAN token is used for staking, and more. [Here](https://oceanprotocol.com/token) are details. -Ocean helps to unlock data, particularly for AI. It is designed for scale and uses blockchain technology that allows data to be shared and sold in a safe, secure and transparent manner. +Ocean Protocol provides tools for developers to _build data markets_, and to _manage datatokens_ for use in DeFi. -While vast amounts of data are generated each year, data exchange and analysis have been hampered due largely to concerns over trust and security. Currently, many organizations have data but do not have the trusted and secure means to share it. Without data, AI cannot advance and be applied to solve problems and ultimately improve lives. More pressing is the fact that today, only a handful of companies have both AI and data capacities, and if data remains locked up, these companies could very well govern the development of AI and thereby our future. +**Build Data Markets.** Use Ocean Protocol software tools to build your own data marketplace, by either forking [Ocean Market](https://market.oceanprotocol.com/) code or building up with Ocean components. -Through blockchain technology and tokens, Ocean Protocol connects data providers and consumers, allowing data to be shared while guaranteeing traceability, transparency, and trust for all stakeholders involved. Ocean Protocol is designed to give data owners control over their data assets and prevent them from being locked in to any single marketplace. +**Manage Datatokens for use in DeFi.** Use Ocean [JavaScript](https://github.com/oceanprotocol/ocean-lib-js) or [Python](https://github.com/oceanprotocol/squid-py) drivers to manage datatokens: -By bringing together decentralized blockchain technology, a data sharing framework, and an ecosystem for data and related services, Ocean Protocol is committed to kick-starting a new Data Economy that touches every single person, company and device, giving power back to data owners, enabling people to reap value from data to better our world. +- _Publish and consume data services:_ downloadable files or compute-to-data. Use Ocean to deploy a new [ERC20](https://github.com/ethereum/EIPs/blob/7f4f0377730f5fc266824084188cc17cf246932e/EIPS/eip-20.md) datatoken contract for each data service, then mint datatokens. -## Mission Statement +- _Transfer datatokens_ to another owner (or approve & transferFrom). -Society is becoming increasingly reliant on data, especially with the advent of AI. However, a small handful of organizations with both massive data assets and AI capabilities attained worrying levels of control which is a danger to a free and open society. +- _Manage pools._ Deploy OCEAN-datatoken [Balancer](https://www.balancer.finance/) pools, buy & sell datatokens (swap), and add & remove liquidity. -Ocean Protocol aims to unlock data, for more equitable outcomes for users of data, using a thoughtful application of both technology and governance. - -For more details, see the blog post "[Mission & Values for Ocean Protocol](https://blog.oceanprotocol.com/mission-values-for-ocean-protocol-aba998e95b8)". +- _And more._ Use ERC20 support in [web3.js](https://web3js.readthedocs.io/), [web3.py](https://web3py.readthedocs.io/en/stable/examples.html#working-with-an-erc20-token-contract) and Solidity to connect datatokens with crypto wallets and other DeFi services. diff --git a/content/concepts/legal-reqs.md b/content/concepts/legal-reqs.md index 7c078446..ca4be357 100644 --- a/content/concepts/legal-reqs.md +++ b/content/concepts/legal-reqs.md @@ -9,9 +9,8 @@ All Ocean Protocol code (software) is licensed under an [Apache 2.0 license](htt If you are: -- contributing code to complete a _currently-open_ [Ocean Protocol bounty](/concepts/bounties/) or -- a _current_ employee of BigchainDB GmbH or -- a _current_ employee of DEX Pte Ltd +- contributing code to complete a _currently-open_ [Ocean Protocol bounty](https://gitcoin.co/explorer?network=mainnet&idx_status=open&keywords=oceanprotocol&order_by=-web3_created&org=oceanprotocol) or +- a _current_ employee of BigchainDB GmbH then there is nothing extra for you to do: licensing is already handled. diff --git a/content/concepts/network-ethmainnet.md b/content/concepts/network-ethmainnet.md new file mode 100644 index 00000000..aa938789 --- /dev/null +++ b/content/concepts/network-ethmainnet.md @@ -0,0 +1,14 @@ +--- +title: Network - Ethereum Mainnet +description: Tools for development on Ethereum Mainnet +--- + +Ocean is deployed to Ethereum mainnet. This network is for your app's production deployment. Here are tools related to this deployment. + +| What | URL | +| ----------------------- | ---------------------- | +| Etherscan explorer | https://etherscan.io/ | +| Ocean Market main | https://oceanmarket.io | +| Ocean Market - Provider | https://provider.mainnet.oceanprotocol.com | +| Ocean Market - Aquarius | https://aquarius.mainnet.oceanprotocol.com | + diff --git a/content/concepts/network-local.md b/content/concepts/network-local.md new file mode 100644 index 00000000..dd00e497 --- /dev/null +++ b/content/concepts/network-local.md @@ -0,0 +1,12 @@ +--- +title: Network - Local / Barge +description: Tools for development on a local Ethereum network +--- + +You can deploy Ocean onto Ganache - a local Ethereum "network" that you run on your machine for fast iterations while developing your app. + +Barge is a shell script to help with Ocean Ganache deployments. It launches Docker and Docker Compose, to run Ganache with Ocean smart contracts on top, along with Provider and Aquarius metadata cache. It's used extensively by the Ocean core devs. + +The [Connect-to-Networks](/tutorials/connect-to-networks/) tutorial has more information about connecting your wallet or app to Ganache / Barge. + + diff --git a/content/concepts/network-rinkeby.md b/content/concepts/network-rinkeby.md new file mode 100644 index 00000000..349bdf63 --- /dev/null +++ b/content/concepts/network-rinkeby.md @@ -0,0 +1,13 @@ +--- +title: Network - Rinkeby Testnet +description: Tools for development on Ethereum Rinkeby testnet +--- + +Ocean is deployed to Rinkeby network. This network is for testing your app's deployment before final production deployment. Here are tools related to this deployment. + +| What | URL | +| ----------------------- | ----------------------------- | +| Etherscan explorer | https://rinkeby.etherscan.io/ | +| Ocean Market | Point wallet to Rinkeby network, at usual Ocean Market url https://market.oceanprotocol.com | +| Ocean Market - Provider | https://provider.rinkeby.oceanprotocol.com | +| Ocean Market - Aquarius | https://aquarius.rinkeby.oceanprotocol.com | diff --git a/content/concepts/ocean-tokens.md b/content/concepts/ocean-tokens.md index 30e8a037..9f19c3a7 100644 --- a/content/concepts/ocean-tokens.md +++ b/content/concepts/ocean-tokens.md @@ -1,102 +1,6 @@ --- title: Ocean Tokens -description: The technical basics and most important infos about Ocean Tokens in different networks. +description: Information about OCEAN --- -## Basics - -**Ocean Tokens** are the [cryptocurrency](https://en.wikipedia.org/wiki/Cryptocurrency) associated with Ocean Protocol. They are standards-compliant [ERC-20 tokens](https://en.wikipedia.org/wiki/ERC-20). - -Ocean Tokens can, in principle, live in any EVM-compatible network. The Ocean Token contract is deployed in the Ethereum Mainnet, Pacific Mainnet, and the Nile Testnet. - -Only OCEAN within the Ethereum Mainnet carry any value, reflected [on our token page](https://oceanprotocol.com/token). - -| Property | Value | -| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Token Contract Addresses | _Ethereum Mainnet_
[`0x967da4048cD07aB37855c090aAF366e4ce1b9F48`](https://etherscan.io/token/0x967da4048cD07aB37855c090aAF366e4ce1b9F48)

_Pacific Mainnet_
[`0x012578f9381e876A9E2a9111Dfd436FF91A451ae`](https://submarine.oceanprotocol.com/address/0x012578f9381e876a9e2a9111dfd436ff91a451ae/transactions)

_Nile Testnet_
[`0x9861Da395d7da984D5E8C712c2EDE44b41F777Ad`](https://submarine.nile.dev-ocean.com/address/0x9861Da395d7da984D5E8C712c2EDE44b41F777Ad) | -| Token Symbol | OCEAN | -| Decimals of Precision | 18 | - -## Ethereum Mainnet Ocean Tokens - -There were several ways to acquire some of the Ethereum Mainnet Ocean Tokens in the initial circulating supply, including: - -- participation in the seed round -- participation in the pre-sale -- participation in the token sale -- participation in the initial exchange offering (IEO) -- completion of a [bounty](/concepts/bounties/) - -After [the initial exchange offering on Bittrex International](https://blog.oceanprotocol.com/initial-exchange-offering-of-ocean-protocol-on-bittrex-international-a454688f466a), Ethereum Mainnet Ocean Tokens became available in the Ethereum Mainnet (and not in any other network). - -The initial circulating supply of Ethereum Mainnet Ocean Tokens became available on the Ethereum Mainnet in May 2019. If you acquired Ocean Tokens in the initial circulating supply, they should have been, or will be, sent to the address you provided, in the Ethereum Mainnet. - -At the time of writing, you could use Ethereum Mainnet Ocean Tokens to do various things in the Ethereum Mainnet, including but not limited to: - -- buy other cryptocurrencies -- provide liquidity in decentralized exchanges like Uniswap or Balancer - -### Check Your Ethereum Mainnet Ocean Token Balance - -There are many ways to check your Ethereum Mainnet Ocean Token balance. Starting with the easiest, here are some ways: - -#### Ocean Token Tool - -Enter your account address into the form on the [Ocean Token page on our website](https://oceanprotocol.com/token#balance). - -[![Ocean Token Tool](images/token-tool.png)](https://oceanprotocol.com/token#balance) - -#### Blowfish - -Download and use [Blowfish](https://github.com/kremalicious/blowfish), a desktop app that tells you your Ocean Token balance (and other things). - -[![Blowfish](images/blowfish.png)](https://github.com/kremalicious/blowfish) - -#### MetaMask - -Use MetaMask or other ERC-20-compatible wallet software. See the page about [using wallet software to manage Ocean Tokens](/tutorials/wallets-and-ocean-tokens/). You can also use wallet software to send Ocean Tokens to some other account. - -#### Etherscan - -Go to [Etherscan](https://etherscan.io/), enter your account address into the search field, click **Search**, click on **Erc20 Token Txns**, look for an _OceanToken_ transaction in the _Token_ colum, and click on **OceanToken** there. - -### Buy or Sell Ethereum Mainnet Ocean Tokens - -You can buy or sell Ethereum Mainnet Ocean Tokens (OCEAN) via any exchange that lists them. An always up-to-date _official list_ of exchanges can be found on the [Ocean Token page on our website](https://oceanprotocol.com/token#balance). - -## Pacific Network Ocean Tokens - -Ocean Tokens in Ocean's Mainnet, [Pacific](/concepts/pacific-network/), represent the same value as in the Ethereum Mainnet. The only way to get Ocean Tokens in Pacific is to transfer them from the Ethereum Mainnet. - -## Testnet Ocean Tokens - -There are Ocean Tokens in several testnets, including the Nile testnet. They are just testnet Ocean Tokens (i.e. for testing purposes only) and they aren't interchangeable with Ethereum Mainnet Ocean Tokens. For more details, see the the [page about Testnets](/concepts/testnets/) and the [tutorials](/tutorials/introduction/). - -Once you have some Testnet Ocean Tokens, you can use them for all currently-implemented Ocean Protocol tasks _in that testnet_ (e.g. buying assets). - -### Get Testnet Ocean Tokens - -All Squid libraries have methods to request Ocean Tokens. They work by calling the _Dispenser_ keeper contract, a contract which is only deployed to testnets. Therefore they will only work in testnets. - -They're documented in the following places: - -- The squid-js docs for: - - [`OceanAccounts.requestTokens()`](/references/squid-js/#OceanAccounts-requestTokens) - - [`Account.requestTokens()`](/references/squid-js/#Account-requestTokens) -- The squid-py docs for: - - [the `squid_py.ocean.ocean_tokens` module](https://squid-py.readthedocs.io/en/develop/api/squid_py.ocean.ocean_tokens.html): see the `request()` method. - - [the `squid_py.ocean.ocean_accounts` module](https://squid-py.readthedocs.io/en/develop/api/squid_py.ocean.ocean_accounts.html): see the `request_tokens()` method. -- [The squid-java docs](https://www.javadoc.io/doc/com.oceanprotocol/squid/): click _All Classes_ then _AccountsManager_ then scroll to the bottom of the Class _AccountsManager_ page where you'll find the `requestTokens()` method. - -The [Example Code page](/tutorials/example-code/) has links to example Squid code (in all of the languages), including examples of using the above methods. - -## Further Reading about Ocean Tokens - -- [Ocean Token page](https://oceanprotocol.com/token) -- [Tutorial: Use Your Wallet to Manage Ocean Tokens](/tutorials/wallets-and-ocean-tokens/) -- [Blog: Ocean Tokenomics](https://blog.oceanprotocol.com/ocean-tokenomics-d34f28c480a8) -- [Blog: Ocean Tokenomics II](https://blog.oceanprotocol.com/https-blog-oceanprotocol-com-ocean-tokenomics-ii-faf05854314b) -- [Ocean Protocol Technical Whitepaper](https://oceanprotocol.com/tech-whitepaper.pdf) -- [Blog: What Happened with the IEO?](https://blog.oceanprotocol.com/what-happened-with-the-ieo-54cc5c6c3db9) -- [Blog: Ocean Protocol — Token Sale](https://blog.oceanprotocol.com/ocean-protocol-token-sale-96d03f968e22) -- [Blog: Ocean Protocol Pre-Launch is Target Reached](https://blog.oceanprotocol.com/ocean-protocol-pre-launch-is-target-reached-d10e53272a2e) +Please go to https://oceanprotocol.com/token. diff --git a/content/concepts/pacific-network.md b/content/concepts/pacific-network.md deleted file mode 100644 index a2198389..00000000 --- a/content/concepts/pacific-network.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: The Pacific Network -description: An introduction to Ocean Protocol's main network, named Pacific. ---- - -## Overview - -The _Pacific Network_[^1] is an EVM-compatible [Proof of Authority (POA) network](https://github.com/poanetwork/wiki/wiki/What-is-POA) of nodes ("keepers") running [Parity Ethereum](https://www.parity.io/ethereum/) software. Various Ocean Protocol smart contracts ("keeper contracts") are deployed to it. - -Initially, all the nodes in the Pacific Network were operated solely by BigchainDB GmbH (i.e. one company), but the goal was for the nodes to be operated by many independent operators in the future. - -We expect vulnerabilities to be discovered and will conduct security audits over time, but the Ocean Protocol smart contracts will be in the wild for all intents and purposes. -Over time, the Pacific Network will be upgraded and improved. -There is no intent to shut it down. -Eventually, the goal is for it to be used in production by many projects. - -[^1]: The Pacific Network is (or was) also known by other names, including _Pacific_, _Main Ocean Network_, _Ocean Mainnet_, _Ocean Live Network_. - -## Ocean Tokens in Pacific - -To be able to use [Ocean Tokens](/concepts/ocean-tokens/) in Pacific, they need to be transferred from the Ethereum Mainnet with a token bridge. - -For more information, see [Pacific Network Ocean Tokens](/concepts/ocean-tokens/#pacific-network-ocean-tokens). - -## Connect to the Pacific Network - -To connect to Pacific in your browser with MetaMask, see [Tutorial: Connect to the Pacific Network](/tutorials/connect-to-networks/#connect-to-the-pacific-network). - -## Pacific Blockchain Explorers - -There is a Pacific blockchain explorer at [submarine.oceanprotocol.com](https://submarine.oceanprotocol.com/). You can use it to check the status of a transaction, the balance of an account, and more. - -It uses the following symbols for Pacific Ether and Pacific Ocean Tokens: - -| Cryptocurrency | Symbol used | -| -------------------- | ---------------- | -| Pacific Ether | POA | -| Pacific Ocean Tokens | OCEAN or SBT-OCN | - -## Ocean Components Connected to Pacific - -There are several Ocean Protocol software components that are live, connected to the Pacific Network, and operated by BigchainDB GmbH: - -| Component | URL | -| ---------------------- | -------------------------------------------- | -| Node | `https://pacific.oceanprotocol.com` | -| Secret Store | `https://secret-store.oceanprotocol.com` | -| Aquarius Test instance | `https://aquarius.test.oceanprotocol.com` | -| Brizo Test instance | `https://brizo.test.oceanprotocol.com` | -| Aquarius for Commons | `https://aquarius.commons.oceanprotocol.com` | -| Brizo for Commons | `https://brizo.commons.oceanprotocol.com` | -| Commons Marketplace | `https://commons.oceanprotocol.com` | -| Faucet Server | `https://faucet.oceanprotocol.com` | -| Token Bridge Frontend | `https://bridge.oceanprotocol.com` | - -> Internal note: The private "atlantic" repo documents the internal details of the Pacific Network in `networks/pacific/deployment.md`. - -## Using Barge with Pacific - -If you run [Barge](https://github.com/oceanprotocol/barge) with the `--local-pacific-node` option, then Barge will run a Pacific node on your local machine (along with everything else Barge runs). - -There might be many blocks in the Pacific Network's blockchain, so it might take a long time for your local Pacific node to sync, i.e. to download a local copy of all the blocks. **In the meantime, the local Pacific node won't be able to do certain things.** diff --git a/content/concepts/quickstart.md b/content/concepts/quickstart.md new file mode 100644 index 00000000..88dfdeec --- /dev/null +++ b/content/concepts/quickstart.md @@ -0,0 +1,10 @@ +--- +title: Quickstart +description: +--- + +These drivers each have their own quickstart. Pick your favorite and have fun! + +- [ocean.js](/references/ocean.js/) +- [ocean.py](/references/ocean.py/) +- [Ocean React](/references/react/) diff --git a/content/concepts/resources.md b/content/concepts/resources.md index 4104b117..80e80871 100644 --- a/content/concepts/resources.md +++ b/content/concepts/resources.md @@ -1,88 +1,10 @@ --- title: Resources -description: More places where you can learn about Ocean Protocol. +description: --- -## Papers +Here are a few places for more information. -All papers can be retrieved from the [Papers section](https://oceanprotocol.com/protocol/#papers) on our home page: - -- **Technical Whitepaper** - This paper presents Ocean Protocol. Ocean is a decentralized protocol and network of artificial intelligence (AI) data/services. It incentivizes for a vast supply of relevant AI data/services. -- **Business Strategy** - This document presents a summary of the business model and ecosystem of Ocean Protocol. It is complementary to the technical whitepaper for Ocean Protocol. -- **Marketplace Framework** - This document presents a summary of the core marketplace attributes and components required to facilitate the successful deployment of the decentralized data exchange protocol and network called Ocean Protocol. - -## Roadmap - -[Ocean Protocol roadmap](https://oceanprotocol.com/protocol/#roadmap) outlining our plans and achievements in creating Ocean Protocol and building a community and ecosystem around it. - -## Blog - -Follow our [blog](https://blog.oceanprotocol.com/) to keep up-to-date with news about our community, tech progress, new use-cases, integrations and everything around Ocean. - -In March 2019, we launched [an international version](https://medium.com/ocean-protocol-international) -of our blog for our non-english speaking communities. You can find blog posts in various languages such as Chinese, Russian, Korean, Spanish, Japanese and many more. - -Below we have listed the most important blog posts that you should not miss. - -### Diving into Ocean - -The blog posts are easily-digestible introductions into Ocean Protocol. We address the “data problem” and explore real world uses cases involving our partners and collaborators. - -- [4 Reasons to Dive into Ocean Protocol (and change the World)](https://blog.oceanprotocol.com/4-reasons-to-dive-into-ocean-protocol-and-change-the-world-b18cc8d53235) -- [4 Ways We’re Unlocking the Value of Data through Partnerships](https://blog.oceanprotocol.com/4-ways-were-unlocking-the-value-of-data-through-partnerships-9ee468e38265) -- [Building a better world with safe sharing of data](https://blog.oceanprotocol.com/building-a-better-world-with-safe-sharing-of-data-d448ec2472b0) - -### Product - -Already familiar with Ocean and want to jump into the tech? These blog posts explore product developments, updates and integrations. - -#### Privacy - -- [Blockchains for Artificial Intelligence](https://blog.oceanprotocol.com/blockchains-for-artificial-intelligence-ec63b0284984) -- [From AI to Blockchain to Data: Meet Ocean](https://blog.oceanprotocol.com/from-ai-to-blockchain-to-data-meet-ocean-f210ff460465) -- [Ocean’s Top-Level Goals](https://blog.oceanprotocol.com/oceans-top-level-goals-3dd75907187) - -#### Control - -- [Exploring the SEA: Service Execution Agreements](https://blog.oceanprotocol.com/exploring-the-sea-service-execution-agreements-65f7523d85e2) -- [Introducing the Ocean Protocol Service Agreements](https://blog.oceanprotocol.com/oep-11-service-agreements-63421ca76d9f) - -#### Security - -- [Secure On-Chain Access Control for Ocean Protocol](https://blog.oceanprotocol.com/secure-on-chain-access-control-for-ocean-protocol-38dca0af820c) -- [Ocean Integration: fitchain — Providing Secure On-Premise Compute](https://blog.oceanprotocol.com/ocean-integration-fitchain-secure-on-premises-compute-59f43a944266) -- [Smart Contracts Security Audit](https://blog.oceanprotocol.com/smart-contracts-security-audit-6672de695b5b) - -#### Incentives - -- [Curated Proofs Markets: A Walk-Through of Ocean’s Core Token Mechanics](https://blog.oceanprotocol.com/curated-proofs-markets-a-walk-through-of-oceans-core-token-mechanics-3d50851a8005) -- [The Layered TCR](https://blog.oceanprotocol.com/the-layered-tcr-56cc5b4cdc45)- [Introducing the equilibrium bonding market](https://blog.oceanprotocol.com/introducing-the-equilibrium-bonding-market-e7db528e0eff) -- [How Ocean can benefit data scientists](https://blog.oceanprotocol.com/how-ocean-can-benefit-data-scientists-7e502e5f1a5f) - -#### Other worthwhile reading about product and deep tech - -- [Project Manta Ray — Data Science powered by Ocean Protocol](https://blog.oceanprotocol.com/project-manta-ray-data-science-powered-by-ocean-protocol-535c54089b0f) -- [Ocean ♥ Docker](https://blog.oceanprotocol.com/ocean-docker-d43d992d8ecf) -- [How to Swim in the Ocean: Introducing Squid Libraries](https://blog.oceanprotocol.com/ocean-protocol-squid-library-java-c92a6035ce39) -- [The Commons Marketplace](https://blog.oceanprotocol.com/the-commons-data-marketplace-c57a44288314) -- [The Commons Marketplace in Pacific Network](https://blog.oceanprotocol.com/the-commons-marketplace-in-pacific-network-4bcf2f595721) - -## Videos - -Follow [our YouTube channel](https://www.youtube.com/oceanprotocol) not to miss any of our video content that includes meetup recordings, tech tutorials, use-case presentations and much more. Here is a selection of our most important playlists: - -- [Ocean Partners and Collaborators](https://www.youtube.com/playlist?list=PL_dn0wVs9kWohtVtZZlj9AR5gcMj0s15h) - This series introduces our partners and collaborators and explores the possible way how Ocean Protocol can help their use-cases. - We have translated this series into several languages. Just add the subtitles of your choice while watching. -- [Manta Ray Tutorials](https://www.youtube.com/playlist?list=PL_dn0wVs9kWqSO2iCXvrWuxKFSgVr0Jrw) - Introducing Manta Ray - Ocean Protocol for Data Scientists, Data Engineers, and Python developers! - Manta Ray is designed to leverage the underlying Ocean API (oceanically named squid-py) which provides surface level methods for searching, publishing, and consuming assets in the deeper Ocean Protocol network. -- [Meet the Fleet](https://www.youtube.com/playlist?list=PL_dn0wVs9kWrgEGk0cd52qO6w3FiuY65G) - Ocean Protocol is being built by a diverse ecosystem of contributors who share a common vision of unlocking data for AI. Our core team has converged from many different countries, industries, and backgrounds to collaborate on kickstarting a New Data Economy. Check this mini series to find out who helps developing Ocean Protocol. - -## Events - -Our team members travel the world to present about Ocean Protocol and meet with local communities. Please, check [our website](https://oceanprotocol.com/#events) for events in your area. - -We also often host and co-organize meetups all around the globe. Check the different meetup groups to find a group in your city and attend our meetup: - -- [Data Economy](https://www.meetup.com/de-DE/pro/data-economy) - Estimates show that a \$2-5 Trillion Data Economy could be created if organizations and people would have the tools to guarantee control, privacy, security, compliance and pricing of data. Our target is bringing together curious minds with a background in Data Science, Blockchain, Artificial Intelligence, Robotics, Business Innovation and Blockchain. We started this initiative to build a community of enthusiasts around Data Economy including the following core topic areas: (1) Data Exchanges & Marketplaces, (2) Data Security, Privacy, Ethics, (3) Decentralised Systems & Blockchain, (4) Artificial Intelligence & Machine Learning, (5) Data Curation & Interoperability, and (6) New Business Models and Tangible Use Cases. - -- [Token Engineering](https://www.meetup.com/pro/tokenengineering/) - Our mission is to see token ecosystem design become a new engineering discipline. This implies a body of theory, practice, tools and a sense of responsibility. We aim to do this collectively as a community in a decentralized, permissionless, open-source fashion that all can contribute to and all can use. +- [Ocean homepage](https://www.oceanprotocol.com) +- [Ocean blog](https://blog.oceanprotocol.com) +- [Ocean whitepaper](https://oceanprotocol.com/tech-whitepaper.pdf) diff --git a/content/concepts/terminology.md b/content/concepts/terminology.md deleted file mode 100644 index c952c500..00000000 --- a/content/concepts/terminology.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: Terminology -description: Terminology specific to Ocean Protocol. ---- - -## Ocean Network - -Any EVM-compatible network where all[^1] the Ocean Protocol smart contracts ([keeper contracts](https://github.com/oceanprotocol/keeper-contracts)) are deployed. There can be many Ocean networks and you can use the Ocean Protocol in several EVM-compatible networks, including: - -- the Ethereum Mainnet (also called the Main Ethereum Network) -- the Ocean [Pacific Main Network](/concepts/pacific-network/) -- various Ocean [test networks](/concepts/testnets/) - -## Asset or Data Asset - -Anything that can be registered with and made available via an Ocean Network. Examples include data sets, trained model parameters, pipelines, and data-cleaning services. - -## Data Owner or Data Service Provider - -Someone who has assets that they want to sell (or give away freely). An example is an almond distributor with 30 years of data about almond sales. - -> Initially, most data owners or data service providers will also be the publishers of their own assets. - -## Publisher - -A service which mediates access to assets on behalf of data owners or data service providers. - -> Initially, most publishers will also be the owners of the assets they publish. - -## Consumer - -Someone who wants assets. An example is a data scientist working at an economic think tank. - -## Marketplace - -A service where publishers can list what assets they have, and consumers can see what's available then buy it (or get it for free). Every marketplace has a database where they store metadata about the assets they know about (but not the assets themselves). An Ocean network can support many marketplaces. - -## Verifier - -A person or a software service that checks some steps in transactions. For example, a verifier might check to see if a cryptographic signature is valid and then get rewarded for doing so. - -## Service Execution Agreement (SEA) or Service Agreement - -A contract-like agreement between a publisher, a consumer, and a verifier, specifying what assets are to be delivered (from publisher to consumer), the conditions that must be met, and the rewards for fulfilling the conditions. - -We published a blog post that explains SEAs in more detail: - -- [Blog: Exploring the SEA: Service Execution Agreements](https://blog.oceanprotocol.com/exploring-the-sea-service-execution-agreements-65f7523d85e2) - -## More Terminology - -- See the page about Ocean's [Software Components](/concepts/components/). -- See the page about [wallets (and other Ethereum terminology)](/concepts/wallets/). - -[^1]: The _Dispenser_ smart contract should only be deployed to testnets. diff --git a/content/concepts/testnets.md b/content/concepts/testnets.md deleted file mode 100644 index f36ccf2f..00000000 --- a/content/concepts/testnets.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: Testnets -description: An overview of public test networks that you can test Ocean Protocol applications against. ---- - -This page is a brief overview of available testnets. The [tutorials](/tutorials/) cover more details (e.g. how to connect to specific ones). - -## A Spree Testnet (for Local Development) - -By default, [Barge](https://github.com/oceanprotocol/barge) will deploy a local _Spree Testnet_[^1] on your machine: a local testnet not connected to any external public testnet. - -When running a Spree Testnet, you can connect to a node at RPC URL [http://localhost:8545](http://localhost:8545) (called "Localhost 8545" in MetaMask). - -Spree Testnet details can be found in the [Barge README.md file](https://github.com/oceanprotocol/barge#spree-network). You can configure the Spree nodes by editing the files in the `barge/networks/spree/` directory. - -> Spree testnets are named after the Spree River, the main river flowing through Berlin, Germany, where many Ocean Protocol developers are located. - -## The Nile Testnet - -In the _Nile Testnet_[^2] all nodes are operated by BigchainDB GmbH. - -> For developers building on Ocean Protocol, we recommend starting with a [Spree Testnet](#a-spree-testnet-for-local-development). - -### Connect to the Nile Testnet - -See [Tutorial: Connect to the Nile Testnet](/tutorials/connect-to-networks/#connect-to-the-nile-testnet). - -### Nile Blockchain Explorers - -There is a Nile blockchain explorer at [https://submarine.nile.dev-ocean.com/](https://submarine.nile.dev-ocean.com/). You can use it to check the status of a transaction, the balance of an account, and more. It uses the following symbols for Nile Ether and Nile Ocean Tokens: - -| Cryptocurrency | Symbol used | -| ----------------- | ---------------- | -| Nile Ether | POA | -| Nile Ocean Tokens | OCEAN or SBT-OCN | - -### Ocean Components Connected to Nile - -There are several Ocean Protocol software components that are live, connected to the Nile Testnet, and operated by BigchainDB GmbH: - -| Component | URL | -| ---------------------- | -------------------------------------------- | -| Node | `https://nile.dev-ocean.com` | -| Secret Store | `https://secret-store.nile.dev-ocean.com` | -| Aquarius Test instance | `https://aquarius.nile.dev-ocean.com` | -| Brizo Test instance | `https://brizo.nile.dev-ocean.com` | -| Aquarius for Commons | `https://aquarius.marketplace.dev-ocean.com` | -| Brizo for Commons | `https://brizo.marketplace.dev-ocean.com` | -| Commons Marketplace | `https://commons.nile.dev-ocean.com` | -| Jupyter Hub | `https://mantaray.dev-ocean.com` | -| Faucet Server | `https://faucet.nile.dev-ocean.com` | - -> Internal note: The private "atlantic" repo documents the internal details of the Nile Testnet in `networks/nile/README.md`. - -### Using Barge with Nile - -If you run [Barge](https://github.com/oceanprotocol/barge) with the `--local-nile-node` option, then Barge will run a Nile node on your local machine (along with everything else Barge runs). - -There might be many blocks in the Nile Testnet's blockchain, so it might take a long time for your local Nile node to sync, i.e. to download a local copy of all the blocks. **In the meantime, the local Nile node won't be able to do certain things.** - -## A Ganache-Based Testnet (for Local Development) - -A local testnet similar to Spree but launched by using the `--local-ganache-node` option with Barge. - -> You shouldn't use a Ganache-Based Testnet unless you know why you're doing so. For example, a Ganache-based testnet can be used to test some smart contracts, but it can't be used with a Secret Store. - -[^1]: Formerly called Ocean Protocol Testnet v0.1, it was announced as part of the Plankton milestone. -[^2]: Also known as the Nile Beta Network. Formerly called the Ocean POA Testnet. diff --git a/content/concepts/tools.md b/content/concepts/tools.md deleted file mode 100644 index bf9572b4..00000000 --- a/content/concepts/tools.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Tools -description: Some tools that can be useful when working with Ocean Protocol. ---- - -## Barge - -Barge is a shell script allowing you to run an Ocean network by orchestrating all [core components](/components) locally with Docker and Docker Compose. Extensively used by Ocean developers to develop and test Ocean core components locally, and the [quickest way](/setup/quickstart/) to get a full Ocean network up and running. - - - -## Tuna - -Tuna is a showcase and provides cross environment examples & tests for the Squid client libraries. - - - -## Plecos - -Plecos is a Python tool to check metadata (a JSON file) to see if it conforms to the [OEP-8 schema](https://github.com/oceanprotocol/OEPs/tree/master/8). It wraps the [jsonschema](https://github.com/Julian/jsonschema) validator. Aquarius uses Plecos for checking metadata and other Ocean Protocol software will probably use it in the future. - - - -## Faucet Server - -The [Ocean Protocol Faucet Server](https://github.com/oceanprotocol/faucet) is a microservice that allows users to request Ether for a particular Ethereum network (e.g. the Nile Testnet). It is [deployed in multiple networks](/tutorials/get-ether-and-ocean-tokens/#get-ether), and started by default when using [Barge](#barge). - - - -## Submarine Blockchain Explorer - -Submarine is based on [BlockScout](https://github.com/poanetwork/blockscout) (by [POA](https://poa.network/)), an open source blockchain explorer for EVM-based blockchain networks. We use our own [fork of BlockScout](https://github.com/oceanprotocol/blockscout). - -Instances are deployed for: - -- **Pacific Network: [submarine.oceanprotocol.com](https://submarine.oceanprotocol.com/)** -- **Nile Testnet: [submarine.dev-ocean.com](https://submarine.dev-ocean.com/)** - - - -## Ocean Network Status - -The Ocean status page checks all Ocean network connections from your browser. - -- [**Ocean Network Status**](https://status.oceanprotocol.com) - - - -## Command-Line Interfaces - -There are a few Ocean Protocol command-line interfaces (CLIs). All of them were under development at the time of writing, so you may have issues with using them. - -- [ocean-cli](https://github.com/bigchaindb-gmbh/ocean-cli) was built using squid-java -- [ocean-cli-py](https://github.com/bigchaindb-gmbh/ocean-cli-py) was built using squid-py - -## IPFS - -The IPFS protocol is integrated into the Ocean Protocol stack in various places. For this, we run and maintain our own IPFS node and gateway with a custom frontpage for simple adding of files to that IPFS node. - -- [**Ocean Protocol 💖 IPFS**](https://ipfs.oceanprotocol.com) - - - -To learn more about how IPFS is used, have a look at OEP-15 and the respective blog post: - -- [OEP-15: Distributed Asset File Storage with IPFS](https://github.com/oceanprotocol/OEPs/tree/master/15) -- [Ocean Protocol and IPFS, Sitting In The Merkle Tree](https://blog.oceanprotocol.com/ocean-ipfs-integration-store-asset-files-43c623c356d7) diff --git a/content/references/introduction.md b/content/references/introduction.md index 75dcc85d..c2c2398e 100644 --- a/content/references/introduction.md +++ b/content/references/introduction.md @@ -1,18 +1,19 @@ --- title: API References -description: All the API reference docs for Ocean Protocol components and libraries. +description: --- This section has API reference docs (or links to external ones) for the following Ocean Protocol components and libraries: + + + + - - - - + -The API references for Aquarius and Brizo are auto-generated from the Swagger specs (JSON files) of the live Aquarius and Brizo instances attached to the Nile Testnet. On this site you can't execute the documented API calls yet. If you need that, you can run a component's local Swagger UI as outlined in the repository instructions on GitHub. -Additionally, if you need API docs for a past version of Aquarius or Brizo, check out their specs on SwaggerHub: +The API references for Aquarius and Provider-py are auto-generated from the Swagger specs (JSON files) of the live instances. On this site you can't execute the documented API calls yet. If you need that, you can run a component's local Swagger UI as outlined in the repository instructions on GitHub. +Additionally, if you need API docs for a past version of Aquarius or Provider-py, check out their specs on SwaggerHub: - [SwaggerHub: Aquarius](https://app.swaggerhub.com/apis/Ocean-Protocol/aquarius) -- [SwaggerHub: Brizo](https://app.swaggerhub.com/apis/Ocean-Protocol/brizo) +- [SwaggerHub: Provider-py](https://app.swaggerhub.com/apis/Ocean-Protocol/provider-py) diff --git a/content/setup/marketplace.md b/content/setup/marketplace.md deleted file mode 100644 index ae668daf..00000000 --- a/content/setup/marketplace.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: Set Up a Marketplace -description: Set up and run a data marketplace in an Ocean network. ---- - -In Ocean Protocol, marketplaces and publishers play different roles (outlined in the [Terminology page](/concepts/terminology/)), but both roles can be played by the same person or organization. Initially, we anticipate that will be the most common setup. As a result, this guide explains how to set up and run a combined marketplace/publisher (for now). - -## An Outline of the Steps - -1. Have [assets](/concepts/terminology/#asset-or-data-asset) to offer in your marketplace. -1. Prepare those assets to work with Ocean Protocol. -1. Develop a marketplace/publisher app. -1. Run everything you need to run 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/). - -> 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/Publisher App - -At the time of writing, we recommend the following steps to develop a marketplace/publisher app: - -1. Do the [React App Tutorial](/tutorials/react-setup/). -2. Grow your app from there. - -For more examples and inspiration, check out the [source code for the Commons Marketplace](https://github.com/oceanprotocol/commons) and the [source code for Pleuston](https://github.com/oceanprotocol/pleuston). Both have an Apache v2 open source license. Both use React and squid-js. Both are "serverless" apps: they run entirely in the browser and have no server-side component. - - - - -### Other Options - -A marketplace/publisher app could have both a back-end component and a front-end component. The main consideration is that you should probably use a programming language with an existing Squid library: - - - - - -> 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 Everything You Need to Run in Production - -When developing your marketplace/publisher app, you will probably use Barge to run all the Ocean Protocol components on your local machine. When it comes time to go to production, you will have to run some of those components in production: - -- Your marketplace/publisher app -- [Aquarius](/concepts/components/#aquarius) -- A database to go with Aquarius, e.g. Elasticsearch or MongoDB -- [Brizo](/concepts/components/#brizo) -- Recommended: a [keeper](/concepts/components/#keeper) node with the keeper contracts deployed to it, connected to an Ocean network -- Optional: your own [Secret Store](/concepts/components/#secret-store) nodes (for a more advanced setup) - -Before running all of that in production, you will want to test it with an [Ocean Protocol testnet](/concepts/testnets/). - -Of course, there are many other things that must be handled in production: - -- 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. diff --git a/content/setup/publisher.md b/content/setup/publisher.md deleted file mode 100644 index 3b0c3e23..00000000 --- a/content/setup/publisher.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Set Up a Publisher -description: Set up and run a publisher in an Ocean network. ---- - -Initially, there won't be many Ocean marketplaces or publishers, so most marketplaces will also act as publishers, and most publishers will also act as marketplaces. Therefore, for now, see [the docs for marketplaces](/setup/marketplace/). diff --git a/content/setup/quickstart.md b/content/setup/quickstart.md deleted file mode 100644 index 3d262cd9..00000000 --- a/content/setup/quickstart.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Quickstart -description: Do a quick test drive of Ocean Protocol components or interact with the network by using Jupyter notebooks. ---- - -## 🐳 Developers: Barge - -Developers can run and try every [Ocean software component](/concepts/components/) on their local machine, all at once, using Docker Compose. Ocean Protocol software developers do this often, to test their code against all the other Ocean components. - -```bash -git clone https://github.com/oceanprotocol/barge.git -cd barge/ -./start_ocean.sh -``` - -Seeing the dolphin means it's working: - -![Output of start_ocean.sh](images/dolphin.png) - -Once everything is up and running, you can interact with the components. E.g. once [Commons](/concepts/components/#commons) is running, you can interact with it at: - -- [http://localhost:3000/](http://localhost:3000/) - -For the details of what components are running, see the [`barge` repository](https://github.com/oceanprotocol/barge). - - - -## 👩‍🔬 Data Science: Jupyter notebooks - -You can try some free, online Jupyter notebooks that connect to a live Ocean test network. - -- [Tutorial: Jupyter Notebooks](/tutorials/jupyter-notebooks/) diff --git a/content/tutorials/amazon-s3-for-brizo.md b/content/tutorials/amazon-s3-for-brizo.md index 62b4574a..13f2d9e7 100644 --- a/content/tutorials/amazon-s3-for-brizo.md +++ b/content/tutorials/amazon-s3-for-brizo.md @@ -3,6 +3,8 @@ title: Set Up Amazon S3 Storage description: Tutorial about how to set up Amazon S3 storage for use with Ocean Protocol. --- +*Note: This needs updating for Ocean V3. As a workaround: Brizo has been renamed to provider-py; it should work similarly.* + To enable Brizo to use files stored in Amazon S3 (i.e. files with an URL containing `s3://`), you must: 1. have an Amazon AWS user account (IAM account) with permission to read those files from S3, and diff --git a/content/setup/compute-to-data.md b/content/tutorials/compute-to-data.md similarity index 100% rename from content/setup/compute-to-data.md rename to content/tutorials/compute-to-data.md diff --git a/content/tutorials/connect-to-networks.md b/content/tutorials/connect-to-networks.md index 1fdc1948..4f787824 100644 --- a/content/tutorials/connect-to-networks.md +++ b/content/tutorials/connect-to-networks.md @@ -1,38 +1,30 @@ --- title: Connect to Ocean-Related Networks -description: Learn how to connect to the Pacific network, Nile testnet and other Ocean-related networks in your browser with MetaMask. +description: On connecting to Ethereum, Rinkeby and Your Local Network. --- -## Connect to the Pacific Network +## Connect to Ethereum mainnet -Here are the parameters you might need to connect to the [Pacific Network](/concepts/pacific-network/): +Metamask and other ERC20 wallets default to Ethereum mainnet. Therefore your wallet is almost certainly pointing to Ethereum by default. -| Parameter | Value | -| ------------------ | ---------------------------------------------------------- | -| RPC URL (required) | `https://pacific.oceanprotocol.com` | -| ChainID | `846353` (decimal for MetaMask) or `0xcea11` (hexadecimal) | -| Symbol | Whatever you like, e.g. `PACIFIC ETH` | -| Nickname | Whatever you like, e.g. `Pacific` | +Some apps may need `network_id` and `chain_id`. The values are both `1` for Ethereum mainnet. `Symbol` and `nickname` can be whatever value you like. -In MetaMask, click on the network name then click on `Custom RPC` in the drop-down list. Scroll down to the `New Network` section. Enter the above RPC URL. You don't need to add a port number to the end of the RPC URL. Enter the ChainID, Symbol and Nickname if you like. See the [MetaMask docs about how it uses the ChainID](https://metamask.github.io/metamask-docs/Main_Concepts/Sending_Transactions). +## Connect to Rinkeby testnet -If you're using [Barge](https://github.com/oceanprotocol/barge) to run a local Pacific node, you can connect to that local Pacific node at RPC URL [http://localhost:8545](http://localhost:8545) (called "Localhost 8545" in MetaMask). You can configure that local Pacific node by editing the files in the `barge/networks/pacific/config/` directory. +In MetaMask, click on the network name dropdown, then select `Rinkeby`. -## Connect to the Nile Testnet +Its `network_id` is 3 and `chain_id` is 3. -Here are the parameters you might need to connect to the [Nile Testnet](/concepts/testnets/#the-nile-testnet): +## Connect to local Ganache network -| Parameter | Value | -| ------------------ | ------------------------------------------------------- | -| RPC URL (required) | `https://nile.dev-ocean.com` | -| ChainID | `8995` (decimal for MetaMask) or `0x2323` (hexadecimal) | -| Symbol | Whatever you like, e.g. `NILE ETH` | -| Nickname | Whatever you like, e.g. `Nile Testnet` | +**Metamask.** In MetaMask, click on the network name then click on `Custom RPC` in the drop-down list. Scroll down to the `New Network` section. Enter the above RPC URL. You don't need to add a port number to the end of the RPC URL. Enter the ChainID, Symbol and Nickname if you like. See the [MetaMask docs about how it uses the ChainID](https://metamask.github.io/metamask-docs/Main_Concepts/Sending_Transactions). -In MetaMask, click on the network name then click on `Custom RPC` in the drop-down list. Scroll down to the `New Network` section. Enter the above RPC URL. You don't need to add a port number to the end of the RPC URL. Enter the ChainID, Symbol and Nickname if you like. See the [MetaMask docs about how it uses the ChainID](https://metamask.github.io/metamask-docs/Main_Concepts/Sending_Transactions). +**Barge.** If you're using Ocean [Barge](https://github.com/oceanprotocol/barge) to help run a local network, you can connect to that local node at RPC URL [http://localhost:8545](http://localhost:8545) (called "Localhost 8545" in MetaMask). You can configure that local node by editing the files in the `barge/networks/pacific/config/` directory. -If you're using [Barge](https://github.com/oceanprotocol/barge) to run a local Nile node, you can connect to that local Nile node at RPC URL [http://localhost:8545](http://localhost:8545) (called "Localhost 8545" in MetaMask). You can configure that local Nile node by editing the files in the `barge/networks/nile/config/` directory. +## More info + +- [List of Ethereum's Major Networks and Chain ids](https://medium.com/@piyopiyo/list-of-ethereums-major-network-and-chain-ids-2bc58e928508). + +- [Ganache documentation](https://www.trufflesuite.com/ganache) -## Connect to a Local Spree Testnet or Ganache-Based Testnet -When using [Barge](https://github.com/oceanprotocol/barge) to run a purely-local testnet (Spree or Ganache-based), you can connect to a local node at RPC URL [http://localhost:8545](http://localhost:8545) (called _Localhost 8545_ in MetaMask). diff --git a/content/tutorials/get-ether-and-ocean-tokens.md b/content/tutorials/get-ether-and-ocean-tokens.md index a714ea9b..7f13b404 100644 --- a/content/tutorials/get-ether-and-ocean-tokens.md +++ b/content/tutorials/get-ether-and-ocean-tokens.md @@ -1,82 +1,33 @@ --- -title: Get Ether and Ocean Tokens -description: A tutorial about how to get Ether and Ocean Tokens. +title: Get ETH and OCEAN Tokens +description: How to get tokens for each network deployment --- -If you want to interact with an Ethereum-based network that supports Ocean Protocol, then you'll eventually need Ether or [Ocean Tokens](/concepts/ocean-tokens/) _for that network_. Every Ethereum-based network has its own Ether and its own Ocean Tokens, and you can't use those in other networks. +### Overview -There are some public testnets you can use to test an Ocean Protocol application. For more information about those, see the page about [testnets](/concepts/testnets/). +In each network, you'll need ETH to pay for gas. Certain Ocean actions will need OCEAN tokens. -## Get a Compatible Wallet +The ETH and OCEAN in Rinkeby and local networks are not "real" ETH or OCEAN tokens of any value. They're simply stand-ins to be able to test. -You will need a [wallet](/concepts/wallets/) that can hold Ether (for any Ethereum network) and Ocean Tokens (for any Ethereum network). For the purpose of this tutorial, you can use MetaMask. See our tutorial about [how to set up MetaMask](/tutorials/metamask-setup/). +### Ethereum mainnet -In MetaMask, be sure to switch from the _Main Ethereum Network_ to whatever Ocean network you're using. +- **ETH.** [Here are exchanges](https://www.coingecko.com/en/coins/ethereum#markets) to purchase ETH. -## Get Ether +- **OCEAN.** [Here are exchanges](https://www.coingecko.com/en/coins/ocean-protocol#markets) to purchase OCEAN. -### Get Ether for the Pacific Network -If you're connecting to the Pacific network, you can use the [Ocean Faucet server](/concepts/tools/#faucet-server). A simple user interface for it is deployed as part of the Commons marketplace under: +### Rinkeby testnet -- client: [commons.oceanprotocol.com/faucet](https://commons.oceanprotocol.com/faucet) +Testnets like Rinkeby have faucets to dole out ETH and OCEAN. -This interface is set up to communicate with the deployed Ocean Faucet Server under: +- **ETH.** [Here's an ETH faucet](https://faucet.rinkeby.be/) for Rinkeby. You may find others by [searching](https://www.google.com/search?q=rinkeby+ether+faucet&oq=rinkeby+ether+faucet). -- server: [faucet.oceanprotocol.com](https://faucet.oceanprotocol.com) +- **OCEAN.** [Here's an OCEAN faucet](https://faucet-5wrpg.ondigitalocean.app/) for Rinkeby. -You can also communicate with that server directly and get some Pacific Ether into `` using the following command: +### Local network -```bash -curl --data '{"address": "", "agent": "curl"}' -H "Content-Type: application/json" -X POST https://faucet.oceanprotocol.com/faucet -``` +Ganache is the local network. Ocean Barge is a tool to help use it. -Check out the [Ocean Faucet server repository](https://github.com/oceanprotocol/faucet) to learn more about what the server provides. +- **ETH.** By default, Ganache creates several Ethereum accounts at launch, gives each some ETH, and makes their private keys available in the logs. You can also instruct Ganache to give ETH to specific Ethereum addresses. -The Pacific faucet has a limit of one request every 24 hours for the same Ethereum address. But don't worry, the Ether given is more than enough for interacting with the network. - -### Get Ether for the Nile Testnet - -If you're connecting to the Nile testnet, you can use the Ocean Faucet. A simple UI for it is deployed as part of the Commons marketplace under: - -- client: [commons.nile.dev-ocean.com/faucet](https://commons.nile.dev-ocean.com/faucet) - -This interface is set up to communicate with the deployed Ocean Faucet Server under: - -- server: [faucet.nile.dev-ocean.com](https://faucet.nile.dev-ocean.com) - -You can also communicate with that server directly and get some Nile Ether into `` using the following command: - -```bash -curl --data '{"address": "", "agent": "curl"}' -H "Content-Type: application/json" -X POST https://faucet.nile.dev-ocean.com/faucet -``` - -Check out the [Ocean Faucet Server repository](https://github.com/oceanprotocol/faucet) to learn more about what the server provides. - -The Nile faucet has a limit of one request every 24 hours for the same Ethereum address. But don't worry, the Ether given is more than enough for interacting with the network. - -### Get Ether for a Local Spree Testnet - -You can use the [Ocean Faucet server](/concepts/tools/#faucet-server) which is stafrted by default when you run [Barge](/concepts/tools/#barge). - -To ask the faucet to send some Spree Ether to ``, use the command: - -```bash -curl --data '{"address":""}' -H "Content-Type: application/json" -X POST localhost:3001/faucet -``` - -Alternatively, you can import the seed phrase used to generate the accounts in Spree into MetaMask (e.g. by logging out and then clicking "Import using account seed phrase"). By default, the Spree testnet is configured to bootstrap ten accounts with a decent amount of Spree Ether in each one. - -`taxi music thumb unique chat sand crew more leg another off lamp` - -Details about the bootstrapped accounts can be found in [the README.md file in the Barge repository](https://github.com/oceanprotocol/barge/#spree-network). They're the ones of type "mnemonic." - -> **WARNING!** Never use any of those accounts in any mainnet. They are for testing purposes only. - -### Get Ether for a Local Ganache-Based Testnet - -If you're running a local Ganache-based testnet, then it creates several accounts at network launch time, and gives each of them some Ether. The addresses and private keys of those accounts should be shared (to logs or the console) during the launch process. You can use those accounts and their Ether. - -## Get Ocean Tokens - -See the page about [Ocean Tokens](/concepts/ocean-tokens/). +- **OCEAN.** You can deploy an ERC20 token with label OCEAN. You'll see examples in the quickstarts for the Ocean JavaScript and Python drivers. diff --git a/content/tutorials/introduction.md b/content/tutorials/introduction.md index d5e840de..2cc6888a 100644 --- a/content/tutorials/introduction.md +++ b/content/tutorials/introduction.md @@ -1,10 +1,13 @@ --- -title: Overview of the Tutorials -description: What you can expect to find in these Ocean Protocol tutorials. +title: Overview of Tutorials +description: --- These tutorials cover: -- The basics of using wallets with Ocean Protocol. -- How to set up storage (e.g. in Azure or AWS) to be used with Ocean Protocol. -- Examples of using squid-js (JavaScript), squid-py (Python) and squid-java to publish a data set, to get & use a data set, and to do other things. +- Using Web3 wallets with Ocean +- Getting ETH and OCEAN on Ethereum mainnet, and Rinkeby testnet +- Storage setup - Azure, AWS or local +- Building a React app with Ocean. This is a great way to understand Ocean end-to-end. + + diff --git a/content/tutorials/marketplace.md b/content/tutorials/marketplace.md new file mode 100644 index 00000000..bfa3fb53 --- /dev/null +++ b/content/tutorials/marketplace.md @@ -0,0 +1,45 @@ +--- +title: Set Up a Marketplace +description: +--- + +In Ocean, marketplaces and publishers are different roles. A common setup is for one organization to do both. We focus on that here. + +## The Steps + +1. Develop the first cut of the app. +1. Prepare some initial data assets. +1. Deploy to production. + +## Develop a First Cut of the App + +Here are some approaches: +-Fork [Ocean Market](/references/market/) code +-Do the [React App Tutorial](/tutorials/react-setup/) then grow your app from there. It uses [Ocean React hooks](/references/react/). +-Build up from [ocean.js](/references/ocean.js/) or [ocean.py](/references/ocean.py/) drivers + +## Prepare Some Initial Data Assets + +When you deploy, you'll want some initial data assets for your market to offer. + +Ocean supports several types, such as Azure and S3 storage. The [tutorials](/tutorials/) section provides more info. + + +## Deploy to Production + +When developing your app, you'll likely use Barge to run all the Ocean Protocol components on your local machine. + +When it comes time to go to production, you will have to run these components: + +- Your marketplace/publisher app +- Aquarius (with Elasticsearch) +- Provider-py + +Of course, there are many other things that must be handled in production: + +- Security of the infrastructure where the software is running +- Monitoring +- Log aggregation, storage and search +- Handling crashes or other faults + +Each of those is beyond the scope of these docs. diff --git a/content/tutorials/metamask-setup.md b/content/tutorials/metamask-setup.md index e0cba5c9..46c2c2fc 100644 --- a/content/tutorials/metamask-setup.md +++ b/content/tutorials/metamask-setup.md @@ -1,5 +1,5 @@ --- -title: Set Up MetaMask +title: Set Up MetaMask Wallet description: Tutorial about how to set up MetaMask for Chrome. --- diff --git a/content/tutorials/on-premise-for-brizo.md b/content/tutorials/on-premise-for-brizo.md index 1bed4115..511e7543 100644 --- a/content/tutorials/on-premise-for-brizo.md +++ b/content/tutorials/on-premise-for-brizo.md @@ -3,6 +3,8 @@ title: Set Up On-Premise Storage description: Tutorial about how to set up on-premise storage for use with Ocean. --- +*Note: This needs updating for Ocean V3. As a workaround: Brizo has been renamed to provider-py; it should work similarly.* + To enable Brizo to use files stored in on-premise storage (i.e. files with an URL not containing `core.windows.net` or `s3://`), there is _nothing to do, other than make sure Brizo can resolve the URLs_. In particular, you don't have to set any Brizo-specific configuration settings, e.g. in the `[osmosis]` section of the Brizo config file or in some special Brizo environment variables. Local and private network URLs are fine so long as they can be resolved by Brizo. Potential examples include `http://localhost/helicopter_data.xls`, `http://192.168.12.34/almond_sales_2012.csv` and `http://10.12.34.56/duck_photos.zip`. diff --git a/content/tutorials/react-publish-algorithm.md b/content/tutorials/react-publish-algorithm.md index ccae0a06..1509f7a3 100644 --- a/content/tutorials/react-publish-algorithm.md +++ b/content/tutorials/react-publish-algorithm.md @@ -13,7 +13,7 @@ Open `src/Compute.js` from your `marketplace/` folder. ## Define Asset -First, let's add the [asset](/concepts/terminology/#asset-or-data-asset) that we want to publish. +First, let's add the data asset that we want to publish. To do that, we need to define the Algorithm asset based on the [OEP-08](https://github.com/oceanprotocol/OEPs/tree/master/8) metadata structure. An algorithm asset can have multiple `files` attached to it and each file's `url` value will be encrypted during the publish process. diff --git a/content/tutorials/react-publish-data-set.md b/content/tutorials/react-publish-data-set.md index 56bfb3c4..dc1d93e1 100644 --- a/content/tutorials/react-publish-data-set.md +++ b/content/tutorials/react-publish-data-set.md @@ -13,7 +13,7 @@ Open `src/index.js` from your `marketplace/` folder. ## Define Asset -First, let's add the [asset](/concepts/terminology/#asset-or-data-asset) that we want to publish. +First, let's add the asset that we want to publish. To do that, we need to define the asset based on the [OEP-08](https://github.com/oceanprotocol/OEPs/tree/master/8) metadata structure. An asset can have multiple `files` attached to it and each file's `url` value will be encrypted during the publish process. To download that file later on, this value will be decrypted during the consume process. diff --git a/content/tutorials/react-setup.md b/content/tutorials/react-setup.md index ef33fd73..999b6158 100644 --- a/content/tutorials/react-setup.md +++ b/content/tutorials/react-setup.md @@ -1,6 +1,6 @@ --- title: React App Setup -description: This tutorial shows how you can build a basic [React](https://reactjs.org/) app with [Create React App](https://github.com/facebook/create-react-app) that uses the squid-js JavaScript package to publish a data set, get a data set, and more. +description: This tutorial shows how you can build a basic [React](https://reactjs.org/) app with [Create React App](https://github.com/facebook/create-react-app) that uses the Ocean [JavaScript driver](https://github.com/oceanprotocol/ocean.js) to publish a data set, get a data set, and more. *WARNING this has not been updated yet for Ocean V3.* --- ## Git repository and CodeSandbox @@ -43,7 +43,7 @@ First, create a new project folder for your new app, e.g. `marketplace`. Within GITHUB-EMBED https://github.com/oceanprotocol/react-tutorial/blob/master/package.json json GITHUB-EMBED -Notice the `@oceanprotocol/squid` dependency, which is the [Ocean Protocol JavaScript library](https://github.com/oceanprotocol/squid-js). Save that file, and in your terminal install the dependencies we have just defined in `package.json`: +Notice the `@oceanprotocol/ocean.js` dependency, which is the [Ocean Protocol JavaScript library](https://github.com/oceanprotocol/ocean.js). Save that file, and in your terminal install the dependencies we have just defined in `package.json`: ```bash npm install @@ -55,7 +55,7 @@ GITHUB-EMBED https://github.com/oceanprotocol/react-tutorial/blob/master/public/ ## Add Basic Markup -Create a new folder `src/` and within that a `index.js` file with the following content as our base, where we already import squid-js and web3.js: +Create a new folder `src/` and within that a `index.js` file with the following content as our base, where we already import ocean.js and web3.js: GITHUB-EMBED https://github.com/oceanprotocol/react-tutorial/blob/e639e9ed4432e8b72ca453d50ed7bdaa36f1efb4/src/index.js jsx 1-4,6,14,100-110,122-127 GITHUB-EMBED @@ -101,7 +101,7 @@ GITHUB-EMBED https://github.com/oceanprotocol/react-tutorial/blob/e639e9ed4432e8 This will initiate a connection to all Ocean components in Nile, load the contracts, and finally store the Ocean object in the local component state for reuse. -We also set the `verbose` option of squid-js so we better see what's going on. +We also set the `verbose` option of ocean.js so we better see what's going on. ## Final Result @@ -115,13 +115,9 @@ GITHUB-EMBED https://github.com/oceanprotocol/react-tutorial/blob/2765a7e6ae9a94 **Move on to [Publish a Data Set](/tutorials/react-publish-data-set/).** -## Bonus: Connect against local Spree network +## Bonus: Connect against local network -[_Spree_](https://docs.oceanprotocol.com/concepts/testnets/#a-spree-testnet-for-local-development), a local Ocean test network, can be used instead of remotely connecting to Nile. For this you first have to get up the Spree network by using [oceanprotocol/barge](https://github.com/oceanprotocol/barge). - -### Run Spree with Barge - -Clone the barge repository and use its startup script: +Instead of remotely connecting to Rinkeby, you can connect to your own [local network](concepts/network-local). It uses Ethereum Ganache plus Ocean Barge. ```bash git clone https://github.com/oceanprotocol/barge.git @@ -130,19 +126,21 @@ cd barge/ ./start_ocean.sh --no-commons ``` -Note that compiling and deploying the contracts in your local Docker network takes some time so it can take a few minutes until the network is ready to be interacted with. That usually is the case once `keeper-contracts_1` container doesn't show any messages anymore. +Compiling and deploying the contracts in your local network may take a few minutes. ### Copy Contract Artifacts -At the end of the contract compiling and deploying you need to copy the resulting _Spree_ contract artifacts from the Docker container to your local `@oceanprotocol/keeper-contracts` dependency folder. The _keeper-contracts_ Docker container will output all artifacts in a hidden folder in your home folder so you can copy from there: +At the end of the contract compiling and deploying you need to copy the resulting contract artifacts from the Docker container to your local `@oceanprotocol/keeper-contracts` dependency folder. The _keeper-contracts_ Docker container will output all artifacts in a hidden folder in your home folder so you can copy from there: ```bash cp ~/.ocean/keeper-contracts/artifacts/* ./node_modules/@oceanprotocol/keeper-contracts/artifacts/ ``` -### Get Spree Ether +### Get ETH for the local network -You will also need some [_Spree_ Ether](/tutorials/get-ether-and-ocean-tokens/#get-ether-for-a-local-spree-testnet) in your MetaMask account. You can execute this, replacing `` with your MetaMask account address: +You will also need some ETH for your local network. [This tutorial](/tutorials/get-ETH-and-OCEAN-tokens) describes how to get it into your MetaMask account. + +You can execute this, replacing `` with your MetaMask account address: ```bash curl --data '{"address": "", "agent": "curl"}' -H "Content-Type: application/json" -X POST http://localhost:3001/faucet @@ -150,7 +148,7 @@ curl --data '{"address": "", "agent": "curl"}' -H "Content-Type: a ### Adjust App Config -Finally, move back to your marketplace React app and modify the Ocean instance config in `src/index.js` to use the Spree endpoints: +Finally, move back to your marketplace React app and modify the Ocean instance config in `src/index.js` to use the local network's endpoints: ```jsx const ocean = await new Ocean.getInstance({ diff --git a/content/tutorials/wallets-and-ocean-tokens.md b/content/tutorials/wallets-and-ocean-tokens.md index a2c1b9a7..74b793dc 100644 --- a/content/tutorials/wallets-and-ocean-tokens.md +++ b/content/tutorials/wallets-and-ocean-tokens.md @@ -1,5 +1,5 @@ --- -title: Use Your Wallet to Manage Ocean Tokens +title: Use Your Wallet to Manage OCEAN Tokens description: How to use crypto wallet software to check your Ocean Token balance and to send Ocean Tokens to others. --- diff --git a/data/repositories.yml b/data/repositories.yml index ff6ca38f..8106cdce 100644 --- a/data/repositories.yml +++ b/data/repositories.yml @@ -1,59 +1,25 @@ -- group: Core Components +- group: Drivers items: - - name: keeper-contracts - links: - - name: Documentation - url: https://github.com/oceanprotocol/keeper-contracts/tree/develop/doc + - name: ocean.js + - name: ocean.py + - name: react +- group: Smart Contracts + items: + - name: contracts + +- group: Ocean Market + items: + - name: market + +- group: Services + items: + - name: barge - name: aquarius links: - name: API reference url: /references/aquarius/ - - - name: brizo - links: - - name: API reference - url: /references/brizo/ - - name: events-handler - - name: commons - -- group: Libraries - items: - - name: squid-js - links: - - name: API reference - url: /references/squid-js/ - - name: squid-py - links: - - name: API reference - url: https://squid-py.readthedocs.io/en/latest/ - - name: squid-java - links: - - name: API reference - url: https://www.javadoc.io/doc/com.oceanprotocol/squid/ - -- group: Tools - items: - - name: barge - - name: tuna - - name: plecos - - name: faucet - - name: status - - name: blockscout - - name: ipfs - -- group: OceanDB Drivers - items: - - name: oceandb-elasticsearch-driver - - name: oceandb-mongodb-driver - - name: oceandb-driver-interface - -- group: Osmosis Drivers - items: - - name: osmosis-azure-driver - - name: osmosis-aws-driver - - name: osmosis-ipfs-driver - - name: osmosis-on-premise-driver + - name: provider - group: Compute-to-Data items: @@ -61,30 +27,3 @@ - name: operator-engine - name: pod-configuration - name: pod-publishing - -- group: Parity Secret Store - items: - - name: parity-ethereum - - name: secret-store-client-js - links: - - name: Architecture - url: /concepts/secret-store/ - - name: secret-store-client-py - links: - - name: Architecture - url: /concepts/secret-store/ - - name: secret-store-client-java - links: - - name: Architecture - url: /concepts/secret-store/ - -- group: Project Management - items: - - name: OEPs - - name: ocean - links: - - name: Business Board - url: https://github.com/oceanprotocol/ocean/projects/1 - - name: Research Board - url: https://github.com/oceanprotocol/ocean/projects/3 - - name: dev-ocean diff --git a/data/sections.yml b/data/sections.yml index d408aafe..51e93bd6 100644 --- a/data/sections.yml +++ b/data/sections.yml @@ -1,19 +1,19 @@ +- title: Quickstart + description: Try out ocean.js, ocean.py or React drivers. + link: /concepts/quickstart/ + color: blue + - title: Core Concepts - description: Understand the fundamentals of Ocean Protocol. + description: On Ocean architecture, network deployments, and more. link: /concepts/introduction/ color: purple -- title: Setup Guides - description: Setting up the Ocean Protocol components. - link: /setup/quickstart/ - color: blue - - title: Tutorials - description: Browse tutorials for most common setup and development use-cases. + description: Build an Ocean-powered React app, and more. link: /tutorials/introduction/ color: orange - title: API References - description: Get the references for REST APIs and library methods for all relevant components. + description: Interfaces for libraries and services. link: /references/introduction/ - color: green + color: blue diff --git a/data/sidebars/concepts.yml b/data/sidebars/concepts.yml index e9afa60f..792b6b2c 100644 --- a/data/sidebars/concepts.yml +++ b/data/sidebars/concepts.yml @@ -1,28 +1,23 @@ - group: Basics items: + - title: Quickstart + link: /concepts/quickstart/ - title: Introduction link: /concepts/introduction/ - - title: Terminology - link: /concepts/terminology/ - - title: Software Components - link: /concepts/components/ - - title: Tools - link: /concepts/tools/ - - title: Pacific Network - link: /concepts/pacific-network/ - - title: Testnets - link: /concepts/testnets/ - - title: Ocean Tokens - link: /concepts/ocean-tokens/ - - title: Wallet Basics - link: /concepts/wallets/ - -- group: Architecture - items: - - title: Overview + - title: Architecture Overview link: /concepts/architecture/ - - title: Secret Store - link: /concepts/secret-store/ + +- group: Networks + items: + - title: Network - Local / Barge + link: /concepts/network-local/ + - title: Network - Rinkeby Testnet + link: /concepts/network-rinkeby/ + - title: Network - Ethereum Mainnet + link: /concepts/network-ethmainnet/ + +- group: Preserving Privacy + items: - title: Compute-to-Data link: /concepts/compute-to-data/ @@ -30,18 +25,18 @@ items: - title: Ways to Contribute link: /concepts/contributing/ - - title: Bounties - link: /concepts/bounties/ + - title: Get Funding + link: /concepts/get-funding/ - title: Reporting Vulnerabilities link: /concepts/vulnerabilities/ - title: Legal Requirements when Contributing Code link: /concepts/legal-reqs/ - - title: Engineering Principles - link: /concepts/principles/ - title: Code of Conduct link: /concepts/code-of-conduct/ -- group: Further Information +- group: Extras items: + - title: Wallet Basics + link: /concepts/wallets/ - title: Resources link: /concepts/resources/ diff --git a/data/sidebars/references.yml b/data/sidebars/references.yml index 0b5eb7f3..a29ae1f5 100644 --- a/data/sidebars/references.yml +++ b/data/sidebars/references.yml @@ -3,27 +3,32 @@ - title: API References link: /references/introduction/ +- group: ocean.js + items: + - title: API Reference + link: https://github.com/oceanprotocol/ocean.js + +- group: react + items: + - title: API Reference + link: https://github.com/oceanprotocol/react + +- group: ocean.py + items: + - title: API Reference + link: https://github.com/oceanprotocol/ocean.py + +- group: Smart Contracts + items: + - title: API Reference + link: https://github.com/oceanprotocol/ocean-contracts + - group: aquarius items: - title: API Reference link: /references/aquarius/ -- group: brizo +- group: provider-py items: - title: API Reference - link: /references/brizo/ - -- group: squid-js - items: - - title: API Reference - link: /references/squid-js/ - -- group: squid-py - items: - - title: API Reference - link: https://squid-py.readthedocs.io/en/latest/ - -- group: squid-java - items: - - title: API Reference - link: https://www.javadoc.io/doc/com.oceanprotocol/squid/ + link: /references/provider-py/ diff --git a/data/sidebars/setup.yml b/data/sidebars/setup.yml index 90cdd018..1eecbe34 100644 --- a/data/sidebars/setup.yml +++ b/data/sidebars/setup.yml @@ -1,22 +1,8 @@ -- group: Quickstart - items: - - title: Run & Try Everything - link: /setup/quickstart/ - - group: Marketplaces items: - title: Set Up a Marketplace link: /setup/marketplace/ -- group: Publishers - items: - - title: Set Up a Publisher - link: /setup/publisher/ - -- group: Keepers - items: - - title: Run a Keeper - link: /setup/keeper/ - group: Compute-to-Data items: - title: Run a Compute-to-Data Environment diff --git a/data/sidebars/tutorials.yml b/data/sidebars/tutorials.yml index 245126a3..291991f1 100644 --- a/data/sidebars/tutorials.yml +++ b/data/sidebars/tutorials.yml @@ -5,25 +5,21 @@ - group: Wallets & Ocean Protocol items: - - title: Set Up MetaMask + - title: Set Up MetaMask Wallet link: /tutorials/metamask-setup/ - - title: Use Your Wallet to Manage Ocean Tokens + - title: Use Your Wallet to Manage OCEAN Tokens link: /tutorials/wallets-and-ocean-tokens/ - - title: Get Ether and Ocean Tokens + - title: Get ETH and OCEAN Tokens link: /tutorials/get-ether-and-ocean-tokens/ - title: Connect to Ocean-Related Networks link: /tutorials/connect-to-networks/ -- group: Storage Setup +- group: Marketplaces items: - - title: Set Up Azure Storage - link: /tutorials/azure-for-brizo/ - - title: Set Up Amazon S3 Storage - link: /tutorials/amazon-s3-for-brizo/ - - title: Set Up On-Premise Storage - link: /tutorials/on-premise-for-brizo/ + - title: Set Up a Marketplace + link: /tutorials/marketplace/ -- group: React App Tutorial (squid-js) +- group: React App Tutorial items: - title: Setup link: /tutorials/react-setup/ @@ -42,12 +38,16 @@ - title: Get Status of a Compute Job link: /tutorials/react-compute-status/ -- group: squid-py Tutorials +- group: Compute-to-Data items: - - title: Jupyter Notebooks - link: /tutorials/jupyter-notebooks/ + - title: Run a Compute-to-Data Environment + link: /tutorials/compute-to-data/ -- group: More Examples +- group: Storage Setup items: - - title: Example Code Using Squid - link: /tutorials/example-code/ + - title: Set Up Azure Storage + link: /tutorials/azure-for-brizo/ + - title: Set Up Amazon S3 Storage + link: /tutorials/amazon-s3-for-brizo/ + - title: Set Up On-Premise Storage + link: /tutorials/on-premise-for-brizo/ diff --git a/docs/content.md b/docs/content.md index d16dfabf..8931ad71 100644 --- a/docs/content.md +++ b/docs/content.md @@ -99,7 +99,7 @@ Note: The `description` value will be rendered on-page below the title, and it w 1. Don't include the page title or description in the Markdown section. That is, don't begin the Markdown content with `# This is the Title in Title Case`. Just write as if that were already there. 2. start your heading levels with `h2`, so `## My heading` 3. Internal links to other docs pages should be: - - to a absolute URL without the host, that looks like `/concepts/terminology/` with slashes on the beginning and end, and with no `.md` or `.html` at the end (before the last slash). + - to a absolute URL without the host, that looks like `/concepts/introduction/` with slashes on the beginning and end, and with no `.md` or `.html` at the end (before the last slash). - when linking from external repos, to the _full absolute URL_, such as `https://docs.oceanprotocol.com/hello/you-are-awesome/` 4. no TOC please, this will be generated automatically from all headings 5. for images and media, you can keep them in the original repo. Images will be automatically grabbed by the docs site on querying. When doing that, docs site will generate all sorts of image sizes to handle proper responsive images, so no need to keep an eye on image dimensions or file sizes diff --git a/docs/repositories.md b/docs/repositories.md index 2b93a4fd..19003dea 100644 --- a/docs/repositories.md +++ b/docs/repositories.md @@ -23,7 +23,7 @@ Additional information about a repo will then be [fetched automatically from Git This repository component can also be used within any Markdown content like so: ```html - + ``` You can also add a private repo to prepare for a release, it will show up as soon as it is made public on GitHub. @@ -33,12 +33,10 @@ You can also add a private repo to prepare for a release, it will show up as soo You can attach multiple links to a repo by attaching them to the respective repo in the [`/data/repositories.yml`](../data/repositories.yml) file: ```yaml -- name: keeper-contracts +- name: ocean-contracts links: - name: Documentation - url: https://github.com/oceanprotocol/keeper-contracts/tree/develop/doc - - name: TCR Owner's Manual - url: https://github.com/oceanprotocol/keeper-contracts/blob/develop/doc/owners_manual.md + url: https://github.com/oceanprotocol/ocean-contracts/tree/develop/doc ``` The GitHub link is automatically added for every repository and will always be displayed. diff --git a/gatsby-node.js b/gatsby-node.js index bdb43842..f9487a64 100755 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -208,27 +208,18 @@ const createTypeDocPage = async (createPage, name, downloadUrl) => { // it generic for all TypeDoc specs classes: [ 'ocean/Ocean', - 'ocean/OceanAccounts', - 'ocean/OceanAssets', - 'ocean/OceanAgreements', - 'ocean/OceanAgreementsConditions', 'ocean/OceanCompute', - 'ocean/OceanSecretStore', 'ocean/OceanVersions', - 'ocean/Account', 'ocean/DID', 'ddo/DDO', 'ddo/Service', 'aquarius/Aquarius', - 'brizo/Brizo', - 'keeper/Keeper', 'keeper/ContractHandler', 'keeper/EventHandler', 'keeper/Web3Provider', 'models/Config', 'models/Balance', 'ocean/utils/OceanUtils', - 'ocean/utils/ServiceAgreement', 'ocean/utils/WebServiceConnector', 'utils/Logger' ] diff --git a/src/components/QuickRun.jsx b/src/components/QuickRun.jsx index 2f298659..948462ad 100644 --- a/src/components/QuickRun.jsx +++ b/src/components/QuickRun.jsx @@ -1,6 +1,5 @@ import React from 'react' import { Link, StaticQuery, graphql } from 'gatsby' -import Repository from './Repository' import styles from './QuickRun.module.scss' const QuickRun = () => ( @@ -19,23 +18,13 @@ const QuickRun = () => ( render={(data) => ( )} /> diff --git a/src/components/Repositories/index.jsx b/src/components/Repositories/index.jsx index 9347892a..bafd7539 100644 --- a/src/components/Repositories/index.jsx +++ b/src/components/Repositories/index.jsx @@ -1,5 +1,5 @@ import React from 'react' -import { Link, StaticQuery, graphql } from 'gatsby' +import { StaticQuery, graphql } from 'gatsby' import RepositoryList from './RepositoryList' import styles from './index.module.scss' @@ -33,15 +33,6 @@ const Repositories = () => (

Repositories

-

- - Most of our repositories are open source and we listed the key - repositories here. Start with the{' '} - software components{' '} - document for an introduction to the components found in a - typical Ocean network. - -

diff --git a/src/pages/index.jsx b/src/pages/index.jsx index d65857c3..d78d1c25 100755 --- a/src/pages/index.jsx +++ b/src/pages/index.jsx @@ -7,7 +7,6 @@ import Layout from '../components/Layout' import Content from '../components/Content' import HeaderHome from '../components/HeaderHome' import Repositories from '../components/Repositories' -import QuickRun from '../components/QuickRun' import { ReactComponent as Arrow } from '../images/arrow.svg' import styles from './index.module.scss' @@ -70,8 +69,6 @@ const IndexPage = ({ data, location }) => ( ))} - -