Repository: oceanprotocol/ocean.py (language: python)

Issue:
Have separate README to install Ocean, with better OS support
**Is your feature request related to a problem? Please describe.**

In a [recent PR for eth-predict](https://github.com/oceanprotocol/predict-eth/pull/45), @juanpablovs pointed out the different needs of different OSes when installing Ocean. And that PR actually implemented the changes.

Yet ocean.py doesn't have those. They would help a lot for certain OSes. 

(What ocean.py currently has: part of "setup" section in its data-nfts readme. It also still has stuff on coincurve, which I believe post-brownie is out of date.)

**Describe the solution you'd like**

Basically, move "installation" content from eth-predict to a dedicated readme in ocean.py.

- [ ] Create a new README, e.g. `READMES/install.md`
- [ ] Copy "installation" content from eth-predict main2.md's "setup" to the new install.md README. ([Here's the version from JP's PR](https://github.com/oceanprotocol/predict-eth/blob/090f82cabb944d9d6c88c681de2f01c0d7a44a82/challenges/main2.md#1-setup).)
- [ ] In ocean.py data-nfts readme, subsection on "installation": make it point to the new install.md README. 
- [ ] In eth-predict repo, main2.md readme: remove all its content and also point to the new install.md README. 

Have separate README to install Ocean, with better OS support
**Is your feature request related to a problem? Please describe.**

In a [recent PR for eth-predict](https://github.com/oceanprotocol/predict-eth/pull/45), @juanpablovs pointed out the different needs of different OSes when installing Ocean. And that PR actually implemented the changes.

Yet ocean.py doesn't have those. They would help a lot for certain OSes. 

(What ocean.py currently has: part of "setup" section in its data-nfts readme. It also still has stuff on coincurve, which I believe post-brownie is out of date.)

**Describe the solution you'd like**

Basically, move "installation" content from eth-predict to a dedicated readme in ocean.py.

- [ ] Create a new README, e.g. `READMES/install.md`
- [ ] Copy "installation" content from eth-predict main2.md's "setup" to the new install.md README. ([Here's the version from JP's PR](https://github.com/oceanprotocol/predict-eth/blob/090f82cabb944d9d6c88c681de2f01c0d7a44a82/challenges/main2.md#1-setup).)
- [ ] In ocean.py data-nfts readme, subsection on "installation": make it point to the new install.md README. 
- [ ] In eth-predict repo, main2.md readme: remove all its content and also point to the new install.md README. 



Discussion / hints:

Fix patch:
diff --git a/README.md b/README.md
index dfe2743a7..172408f48 100644
--- a/README.md
+++ b/README.md
@@ -30,6 +30,7 @@ This is in beta state. If you run into problems, please open up a [new issue](/i
 
 Here are flows to try out, from simple to specific detailed variants.
 
+- **[Installation flow](READMEs/install.md)** - the required setup to run ocean.py flows.
 - **[Simple flow](READMEs/data-nfts-and-datatokens-flow.md)** - the essence of Ocean - creating a data NFT & datatoken.
 - **[Publish flow](READMEs/publish-flow.md)** - a dataset is published.
 - **[Consume flow](READMEs/consume-flow.md)** - a published dataset is consumed (downloaded).
diff --git a/READMEs/c2d-flow.md b/READMEs/c2d-flow.md
index c1172d1f5..5585511e2 100644
--- a/READMEs/c2d-flow.md
+++ b/READMEs/c2d-flow.md
@@ -23,7 +23,7 @@ Let's go through each step.
 
 ### Prerequisites & installation
 
-From [simple-flow](data-nfts-and-datatokens-flow.md), do:
+From [installation-flow](install.md), do:
 - [x] Setup : Prerequisites
 - [x] Setup : Install the library
 
diff --git a/READMEs/consume-flow.md b/READMEs/consume-flow.md
index 32e285bc9..3019f77d5 100644
--- a/READMEs/consume-flow.md
+++ b/READMEs/consume-flow.md
@@ -20,11 +20,13 @@ Let's go through each step.
 
 ## 1. Setup
 
-From [data-nfts-and-datatokens-flow](data-nfts-and-datatokens-flow.md), do:
+From [installation-flow](install.md), do:
 - [x] Setup : Prerequisites
 - [x] Setup : Download barge and run services
 - [x] Setup : Install the library
 - [x] Setup : Set envvars
+
+From [data-nfts-and-datatokens-flow](data-nfts-and-datatokens-flow.md), do:
 - [x] Setup : Setup in Python
 
 ## 2. Alice publishes dataset
diff --git a/READMEs/data-nfts-and-datatokens-flow.md b/READMEs/data-nfts-and-datatokens-flow.md
index 4b28ab883..d1644c746 100644
--- a/READMEs/data-nfts-and-datatokens-flow.md
+++ b/READMEs/data-nfts-and-datatokens-flow.md
@@ -6,77 +6,11 @@ SPDX-License-Identifier: Apache-2.0
 # Quickstart: Publish Data NFT & Datatoken
 
 ## 1. Setup
-
-### 🏗 Installation
-
-#### ⚙️ Prerequisites
-
--   Linux/MacOS
--   [Docker](https://docs.docker.com/engine/install/), [Docker Compose](https://docs.docker.com/compose/install/), [allowing non-root users](https://www.thegeekdiary.com/run-docker-as-a-non-root-user/)
--   Python 3.8.5 - Python 3.10.4
-
-In a new console:
-
-```console
-# Create your working directory
-mkdir my_project
-cd my_project
-
-# Initialize virtual environment and activate it. Install artifacts.
-python3 -m venv venv
-source venv/bin/activate
-
-# Avoid errors for the step that follows
-pip3 install wheel
-
-# Install Ocean library. Allow pre-releases to get the latest v4 version.
-pip3 install --pre ocean-lib
-```
-
-#### ⚠️ Known issues
-
-- for M1 processors, `coincurve` and `cryptography` installation may fail due to dependency/compilation issues. It is recommended to install them individually, e.g. `pip3 install coincurve && pip3 install cryptography`
-
-- Mac users: if you encounter an "Unsupported Architecture" issue, then install including ARCHFLAGS: `ARCHFLAGS="-arch x86_64" pip install ocean-lib`. [[Details](https://github.com/oceanprotocol/ocean.py/issues/486).]
-
-#### Create your network configuration file
-
-ocean.py uses brownie to connect to deployed smart contracts. To configure the RPC URLs, gas prices and other settings,
-create and fill in a network-config.yml in your `~/.brownie` folder, or copy our (very basic) sample from ocean.py:
-
-```console
-mkdir ~/.brownie
-cp network-config.sample ~/.brownie/network-config.yaml
-```
-
-Please check that you have configured all networks before proceeding. Here is a more complete sample from brownie itself: https://eth-brownie.readthedocs.io/en/v1.6.5/config.html.
-
-### ⬇️Download barge and run services
-
-Ocean `barge` runs ganache (local blockchain), Provider (data service), and Aquarius (metadata cache).
-
-In a new console:
-
-```console
-# Grab repo
-git clone https://github.com/oceanprotocol/barge
-cd barge
-
-# Clean up old containers (to be sure)
-docker system prune -a --volumes
-
-# Run barge: start Ganache, Provider, Aquarius; deploy contracts; update ~/.ocean
-./start_ocean.sh
-```
-
-
-### 🔧 Set envvars
-
-In the same console (or another one with venv activated):
-```console
-export TEST_PRIVATE_KEY1=0x8467415bb2ba7c91084d932276214b11a3dd9bdb2930fefa194b666dd8020b99
-export TEST_PRIVATE_KEY2=0x1d751ded5a32226054cd2e71261039b65afb9ee1c746d055dd699b1150a5befc
-```
+From [install.md](install.md), do:
+- [x] Setup : Prerequisites
+- [x] Setup : Download barge and run services
+- [x] Setup : Install the library
+- [x] Setup : Set envvars
 
 ### 🐍 Setup in Python
 
diff --git a/READMEs/datatoken-enterprise.md b/READMEs/datatoken-enterprise.md
index 87fb14fe2..a2cd9bc19 100644
--- a/READMEs/datatoken-enterprise.md
+++ b/READMEs/datatoken-enterprise.md
@@ -27,15 +27,10 @@ Let's go through each step.
 
 ### First steps
 
-To get started with this guide, please refer to [data-nfts-and-datatokens-flow](data-nfts-and-datatokens-flow.md) and complete the following steps :
+To get started with this guide, please refer to [installation-flow](install.md) and complete the following steps :
 - [x] Setup : Prerequisites
 - [x] Setup : Download barge and run services
 - [x] Setup : Install the library
-
-
-### Set envvars
-
-Set the required enviroment variables as described in [data-nfts-and-datatokens-flow](data-nfts-and-datatokens-flow.md):
 - [x] Setup : Set envvars
 
 
diff --git a/READMEs/dispenser-flow.md b/READMEs/dispenser-flow.md
index b9455effe..55c7c2c53 100644
--- a/READMEs/dispenser-flow.md
+++ b/READMEs/dispenser-flow.md
@@ -19,11 +19,13 @@ Let's go through each step.
 
 ## 1. Setup
 
-From [data-nfts-and-datatokens-flow](data-nfts-and-datatokens-flow.md), do:
+From [installation-flow](install.md), do:
 - [x] Setup : Prerequisites
 - [x] Setup : Download barge and run services
 - [x] Setup : Install the library
 - [x] Setup : Set envvars
+
+From [data-nfts-and-datatokens-flow](data-nfts-and-datatokens-flow.md), do:
 - [x] Setup : Setup in Python
 
 ## 2. Publish Data NFT & Datatoken
diff --git a/READMEs/install.md b/READMEs/install.md
new file mode 100644
index 000000000..d77216caa
--- /dev/null
+++ b/READMEs/install.md
@@ -0,0 +1,81 @@
+<!--
+Copyright 2022 Ocean Protocol Foundation
+SPDX-License-Identifier: Apache-2.0
+-->
+## Setup
+This quickstart describes the required setup to run `ocean.py` flows.
+
+### 🏗 Installation
+
+#### ⚙️ Prerequisites
+
+-   Linux/MacOS
+-   [Docker](https://docs.docker.com/engine/install/), [Docker Compose](https://docs.docker.com/compose/install/), [allowing non-root users](https://www.thegeekdiary.com/run-docker-as-a-non-root-user/)
+-   Python 3.8.5 - Python 3.10.4
+
+In a new console:
+
+```console
+# Create your working directory
+mkdir my_project
+cd my_project
+
+# Initialize virtual environment and activate it. Install artifacts.
+python3 -m venv venv
+source venv/bin/activate
+```
+
+##### Install the library
+```console
+# Avoid errors for the step that follows
+pip3 install wheel
+
+# Install Ocean library. Allow pre-releases to get the latest v4 version.
+pip3 install --pre ocean-lib
+
+```
+
+#### ⚠️ Known issues
+
+- for M1 processors, `coincurve` and `cryptography` installation may fail due to dependency/compilation issues. It is recommended to install them individually, e.g. `pip3 install coincurve && pip3 install cryptography`
+
+- Mac users: if you encounter an "Unsupported Architecture" issue, then install including ARCHFLAGS: `ARCHFLAGS="-arch x86_64" pip install ocean-lib`. [[Details](https://github.com/oceanprotocol/ocean.py/issues/486).]
+
+#### Create your network configuration file
+
+ocean.py uses brownie to connect to deployed smart contracts. To configure the RPC URLs, gas prices and other settings,
+create and fill in a network-config.yml in your `~/.brownie` folder, or copy our (very basic) sample from ocean.py:
+
+```console
+mkdir ~/.brownie
+cp network-config.sample ~/.brownie/network-config.yaml
+```
+
+Please check that you have configured all networks before proceeding. Here is a more complete sample from brownie itself: https://eth-brownie.readthedocs.io/en/v1.6.5/config.html.
+
+### ⬇️Download barge and run services
+
+Ocean `barge` runs ganache (local blockchain), Provider (data service), and Aquarius (metadata cache).
+
+In a new console:
+
+```console
+# Grab repo
+git clone https://github.com/oceanprotocol/barge
+cd barge
+
+# Clean up old containers (to be sure)
+docker system prune -a --volumes
+
+# Run barge: start Ganache, Provider, Aquarius; deploy contracts; update ~/.ocean
+./start_ocean.sh
+```
+
+
+### 🔧 Set envvars
+
+In the same console (or another one with venv activated):
+```console
+export TEST_PRIVATE_KEY1=0x8467415bb2ba7c91084d932276214b11a3dd9bdb2930fefa194b666dd8020b99
+export TEST_PRIVATE_KEY2=0x1d751ded5a32226054cd2e71261039b65afb9ee1c746d055dd699b1150a5befc
+```
diff --git a/READMEs/key-value-flow.md b/READMEs/key-value-flow.md
index 699b2e9ab..970fe5069 100644
--- a/READMEs/key-value-flow.md
+++ b/READMEs/key-value-flow.md
@@ -18,11 +18,13 @@ Here are the steps:
 
 ## 1. Setup
 
-From [data-nfts-and-datatokens-flow](data-nfts-and-datatokens-flow.md), do:
+From [installation-flow](install.md), do:
 - [x] Setup : Prerequisites
 - [x] Setup : Download barge and run services
 - [x] Setup : Install the library
 - [x] Setup : Set envvars
+
+From [data-nfts-and-datatokens-flow](data-nfts-and-datatokens-flow.md), do:
 - [x] Setup : Setup in Python
 
 ## 2. Publish data NFT
diff --git a/READMEs/marketplace-flow.md b/READMEs/marketplace-flow.md
index f1eca4388..c064c173b 100644
--- a/READMEs/marketplace-flow.md
+++ b/READMEs/marketplace-flow.md
@@ -20,11 +20,13 @@ Let's go through each step.
 
 ## 1. Setup
 
-From [data-nfts-and-datatokens-flow](data-nfts-and-datatokens-flow.md), do:
+From [installation-flow](install.md), do:
 - [x] Setup : Prerequisites
 - [x] Setup : Download barge and run services
 - [x] Setup : Install the library
 - [x] Setup : Set envvars
+
+From [data-nfts-and-datatokens-flow](data-nfts-and-datatokens-flow.md), do:
 - [x] Setup : Setup in Python
 
 ### Create fake OCEAN
diff --git a/READMEs/profile-nfts-flow.md b/READMEs/profile-nfts-flow.md
index db4dd8960..4a3039e07 100644
--- a/READMEs/profile-nfts-flow.md
+++ b/READMEs/profile-nfts-flow.md
@@ -18,11 +18,13 @@ Here are the steps:
 
 ## 1. Setup
 
-From [data-nfts-and-datatokens-flow](data-nfts-and-datatokens-flow.md), do:
+From [installation-flow](install.md), do:
 - [x] Setup : Prerequisites
 - [x] Setup : Download barge and run services
 - [x] Setup : Install the library
 - [x] Setup : Set envvars
+
+From [data-nfts-and-datatokens-flow](data-nfts-and-datatokens-flow.md), do:
 - [x] Setup : Setup in Python
 
 ## 2. Alice publishes data NFT
diff --git a/READMEs/publish-flow-graphql.md b/READMEs/publish-flow-graphql.md
index 77264102e..acd6ecff3 100644
--- a/READMEs/publish-flow-graphql.md
+++ b/READMEs/publish-flow-graphql.md
@@ -17,11 +17,13 @@ Let's go through each step.
 
 ## 1. Setup
 
-From [data-nfts-and-datatokens-flow](data-nfts-and-datatokens-flow.md), do:
+From [installation-flow](install.md), do:
 - [x] Setup : Prerequisites
 - [x] Setup : Download barge and run services
 - [x] Setup : Install the library
 - [x] Setup : Set envvars
+
+From [data-nfts-and-datatokens-flow](data-nfts-and-datatokens-flow.md), do:
 - [x] Setup : Setup in Python
 
 ## 2. Publish dataset
diff --git a/READMEs/publish-flow-onchain.md b/READMEs/publish-flow-onchain.md
index 8e80231ff..9e8befe72 100644
--- a/READMEs/publish-flow-onchain.md
+++ b/READMEs/publish-flow-onchain.md
@@ -17,11 +17,13 @@ Let's go through each step.
 
 ## 1. Setup
 
-From [data-nfts-and-datatokens-flow](data-nfts-and-datatokens-flow.md), do:
+From [installation-flow](install.md), do:
 - [x] Setup : Prerequisites
 - [x] Setup : Download barge and run services
 - [x] Setup : Install the library
 - [x] Setup : Set envvars
+
+From [data-nfts-and-datatokens-flow](data-nfts-and-datatokens-flow.md), do:
 - [x] Setup : Setup in Python
 
 ## 2. Publish dataset
diff --git a/READMEs/publish-flow-restapi.md b/READMEs/publish-flow-restapi.md
index 1fdada129..eec595784 100644
--- a/READMEs/publish-flow-restapi.md
+++ b/READMEs/publish-flow-restapi.md
@@ -20,11 +20,13 @@ Let's go through each step.
 
 ### Prerequisites & installation
 
-From [simple-flow](data-nfts-and-datatokens-flow.md), do:
+From [installation-flow](install.md), do:
 - [x] Setup : Prerequisites
 - [x] Setup : Download barge and run services
 - [x] Setup : Install the library
 - [x] Setup : Set envvars
+
+From [simple-flow](data-nfts-and-datatokens-flow.md), do:
 - [x] Setup : Setup in Python
 
 ## 2. Alice publishes the API asset
diff --git a/READMEs/publish-flow.md b/READMEs/publish-flow.md
index a01e3675f..c6e909ec6 100644
--- a/READMEs/publish-flow.md
+++ b/READMEs/publish-flow.md
@@ -18,11 +18,13 @@ Let's go through each step.
 
 ### First steps
 
-From [data-nfts-and-datatokens-flow](data-nfts-and-datatokens-flow.md), do:
+From [installation-flow](install.md), do:
 - [x] Setup : Prerequisites
 - [x] Setup : Download barge and run services
 - [x] Setup : Install the library
 - [x] Setup : Set envvars
+
+From [data-nfts-and-datatokens-flow](data-nfts-and-datatokens-flow.md), do:
 - [x] Setup : Setup in Python
 
 ## 2. Publish Dataset
diff --git a/READMEs/search-and-filter-assets.md b/READMEs/search-and-filter-assets.md
index 1fe0e311a..85c0e06c3 100644
--- a/READMEs/search-and-filter-assets.md
+++ b/READMEs/search-and-filter-assets.md
@@ -19,11 +19,13 @@ Let's go through each step.
 
 ## 1. Setup
 
-From [data-nfts-and-datatokens-flow](data-nfts-and-datatokens-flow.md), do:
+From [installation-flow](install.md), do:
 - [x] Setup : Prerequisites
 - [x] Setup : Download barge and run services
 - [x] Setup : Install the library
 - [x] Setup : Set envvars
+
+From [data-nfts-and-datatokens-flow](data-nfts-and-datatokens-flow.md), do:
 - [x] Setup : Setup in Python
 
 
diff --git a/READMEs/simple-remote.md b/READMEs/simple-remote.md
index 1d42f7e81..a02c90917 100644
--- a/READMEs/simple-remote.md
+++ b/READMEs/simple-remote.md
@@ -5,7 +5,7 @@ SPDX-License-Identifier: Apache-2.0
 
 # Quickstart: _Remotely_ Publish Data NFT & Datatoken
 
-This quickstart is like the [simple-flow](READMEs/data-nfts-and-datatokens-flow.md), but uses [remote services and Mumbai testnet](https://docs.oceanprotocol.com/core-concepts/networks#mumbai).
+This quickstart is like the [simple-flow](data-nfts-and-datatokens-flow.md), but uses [remote services and Mumbai testnet](https://docs.oceanprotocol.com/core-concepts/networks#mumbai).
 
 Let's go through each step.
 
@@ -13,7 +13,7 @@ Let's go through each step.
 
 ### Prerequisites & installation
 
-From [simple-flow](data-nfts-and-datatokens-flow.md), do:
+From [installation-flow](install.md), do:
 - [x] Setup : Prerequisites
 - [x] Setup : Install the library
 


Test patch:
diff --git a/READMEs/get-test-MATIC.md b/READMEs/get-test-MATIC.md
index b2b5b9682..df4b79c8f 100644
--- a/READMEs/get-test-MATIC.md
+++ b/READMEs/get-test-MATIC.md
@@ -11,7 +11,7 @@ The READMEs use one or two remote accounts, with keys `REMOTE_TEST_PRIVATE_KEY1`
 
 ### 1. Setup
 
-From [data-nfts-and-datatokens-flow](data-nfts-and-datatokens-flow.md), do:
+From [installation-flow](install.md), do:
 - [x] Setup : Prerequisites
 
 ## 2. Create two new accounts (one-time)
diff --git a/READMEs/get-test-OCEAN.md b/READMEs/get-test-OCEAN.md
index 8d6874ab6..42489f881 100644
--- a/READMEs/get-test-OCEAN.md
+++ b/READMEs/get-test-OCEAN.md
@@ -11,7 +11,7 @@ Here, let's get some OCEAN for the Goerli testnet, and verify in Python that we
 
 ### Setup
 
-From [data-nfts-and-datatokens-flow](data-nfts-and-datatokens-flow.md), do:
+From [installation-flow](install.md), do:
 - [x] Setup : Prerequisites
 - [x] Setup : Install the library