mirror of
https://github.com/oceanprotocol/barge.git
synced 2024-12-02 05:57:21 +01:00
Merge pull request #220 from oceanprotocol/feature/ocean-contracts
Feature/ocean contracts
This commit is contained in:
commit
5f894dcb8d
19
README.md
19
README.md
@ -58,14 +58,15 @@ The startup script comes with a set of options for customizing various things.
|
|||||||
|
|
||||||
The default versions are always a combination of component versions which are considered stable.
|
The default versions are always a combination of component versions which are considered stable.
|
||||||
|
|
||||||
| Aquarius | Provider | Ganache |
|
| Aquarius | Provider | Ganache | ocean-contracts |
|
||||||
| -------- | -------- | -------- |
|
| -------- | -------- | -------- | --------------- |
|
||||||
| `vx.x.x` | `vx.x.x` | `latest` |
|
| `vx.x.x` | `vx.x.x` | `latest` | `test`
|
||||||
|
|
||||||
You can override the Docker image tag used for a particular component by setting its associated environment variable before calling `start_ocean.sh`:
|
You can override the Docker image tag used for a particular component by setting its associated environment variable before calling `start_ocean.sh`:
|
||||||
|
|
||||||
- `AQUARIUS_VERSION`
|
- `AQUARIUS_VERSION`
|
||||||
- `PROVIDER_VERSION`
|
- `PROVIDER_VERSION`
|
||||||
|
- `CONTRACTS_VERSION`
|
||||||
|
|
||||||
For example:
|
For example:
|
||||||
|
|
||||||
@ -116,7 +117,17 @@ This Building Block can be disabled by setting the `--no-aquarius` flag.
|
|||||||
| ----------- | ------------- | --------------------- | --------------------- | --------------------------------------------------- |
|
| ----------- | ------------- | --------------------- | --------------------- | --------------------------------------------------- |
|
||||||
| `ganache` | `8545` | http://ganache:9000 | http://localhost:8545 | |
|
| `ganache` | `8545` | http://ganache:9000 | http://localhost:8545 | |
|
||||||
|
|
||||||
The accounts can be access with this seed phrase:
|
### ocean-contracts
|
||||||
|
* Deploy all smart contracts from the ocean-contracts repo
|
||||||
|
* Export artifacts files (.json) to default shared folder between all containers
|
||||||
|
* Create address file (address.json) that has the address of each deployed
|
||||||
|
smart contract that is required by the ocean library. This file is saved to the same folder with the artifacts files
|
||||||
|
|
||||||
|
| Hostname | External Port | Internal URL | Local URL | Description |
|
||||||
|
| ------------------- | ------------- | --------------------- | --------------------- | ------------------------------------------- |
|
||||||
|
| `ocean-contracts` | | | | |
|
||||||
|
|
||||||
|
The accounts can be accessed with this seed phrase:
|
||||||
|
|
||||||
```
|
```
|
||||||
taxi music thumb unique chat sand crew more leg another off lamp
|
taxi music thumb unique chat sand crew more leg another off lamp
|
||||||
|
@ -7,6 +7,8 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
backend:
|
backend:
|
||||||
ipv4_address: 172.15.0.5
|
ipv4_address: 172.15.0.5
|
||||||
|
depends_on:
|
||||||
|
- ocean-contracts
|
||||||
environment:
|
environment:
|
||||||
DB_MODULE: ${DB_MODULE}
|
DB_MODULE: ${DB_MODULE}
|
||||||
DB_HOSTNAME: ${DB_HOSTNAME}
|
DB_HOSTNAME: ${DB_HOSTNAME}
|
||||||
@ -18,3 +20,15 @@ services:
|
|||||||
DB_CA_CERTS: ${DB_CA_CERTS}
|
DB_CA_CERTS: ${DB_CA_CERTS}
|
||||||
DB_CLIENT_KEY: ${DB_CLIENT_KEY}
|
DB_CLIENT_KEY: ${DB_CLIENT_KEY}
|
||||||
DB_CLIENT_CERT: ${DB_CLIENT_CERT}
|
DB_CLIENT_CERT: ${DB_CLIENT_CERT}
|
||||||
|
LOG_LEVEL: DEBUG
|
||||||
|
EVENTS_ECIES_PRIVATE_KEY: "0x5d75837394b078ce97bc289fa8d75e21000573520bfa7784a9d28ccaae602bf8"
|
||||||
|
ARTIFACTS_PATH: "/ocean-contracts/artifacts"
|
||||||
|
ADDRESS_FILE: ${OCEAN_ADDRESS_FILE:-/ocean-contracts/artifacts/address.json}
|
||||||
|
DEPLOY_CONTRACTS: ${DEPLOY_CONTRACTS}
|
||||||
|
NETWORK_NAME: ${CONTRACTS_NETWORK_NAME}
|
||||||
|
EVENTS_RPC: "http://172.15.0.3:8545"
|
||||||
|
EVENTS_ALLOW: "0"
|
||||||
|
RUN_EVENTS_MONITOR: "1"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- ${OCEAN_ARTIFACTS_FOLDER}:/ocean-contracts/artifacts/
|
||||||
|
@ -19,6 +19,7 @@ services:
|
|||||||
ipv4_address: 172.15.0.5
|
ipv4_address: 172.15.0.5
|
||||||
depends_on:
|
depends_on:
|
||||||
- elasticsearch
|
- elasticsearch
|
||||||
|
- ocean-contracts
|
||||||
environment:
|
environment:
|
||||||
DB_MODULE: ${DB_MODULE}
|
DB_MODULE: ${DB_MODULE}
|
||||||
DB_HOSTNAME: ${DB_HOSTNAME}
|
DB_HOSTNAME: ${DB_HOSTNAME}
|
||||||
@ -32,7 +33,12 @@ services:
|
|||||||
DB_CLIENT_CERT: ${DB_CLIENT_CERT}
|
DB_CLIENT_CERT: ${DB_CLIENT_CERT}
|
||||||
LOG_LEVEL: DEBUG
|
LOG_LEVEL: DEBUG
|
||||||
EVENTS_ECIES_PRIVATE_KEY: "0x5d75837394b078ce97bc289fa8d75e21000573520bfa7784a9d28ccaae602bf8"
|
EVENTS_ECIES_PRIVATE_KEY: "0x5d75837394b078ce97bc289fa8d75e21000573520bfa7784a9d28ccaae602bf8"
|
||||||
EVENTS_CONTRACT_ADDRESS: ${DDO_CONTRACT_ADDRESS}
|
ARTIFACTS_PATH: "/ocean-contracts/artifacts"
|
||||||
|
ADDRESS_FILE: ${OCEAN_ADDRESS_FILE:-/ocean-contracts/artifacts/address.json}
|
||||||
|
DEPLOY_CONTRACTS: ${DEPLOY_CONTRACTS}
|
||||||
|
NETWORK_NAME: ${CONTRACTS_NETWORK_NAME}
|
||||||
EVENTS_RPC: "http://172.15.0.3:8545"
|
EVENTS_RPC: "http://172.15.0.3:8545"
|
||||||
EVENTS_ALLOW: "0"
|
EVENTS_ALLOW: "0"
|
||||||
RUN_EVENTS_MONITOR: "1"
|
RUN_EVENTS_MONITOR: "1"
|
||||||
|
volumes:
|
||||||
|
- ${OCEAN_ARTIFACTS_FOLDER}:/ocean-contracts/artifacts/
|
||||||
|
@ -7,4 +7,4 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
backend:
|
backend:
|
||||||
ipv4_address: 172.15.0.3
|
ipv4_address: 172.15.0.3
|
||||||
entrypoint: ["node", "/app/ganache-core.docker.cli.js", "--blockTime", "2", "--db", "./ganache_cache", "--networkId","0x2324","--gasLimit","10000000000","--gasPrice","1","---hardfork","istanbul","--mnemonic","${GANACHE_MNEMONIC}"]
|
entrypoint: ["node", "/app/ganache-core.docker.cli.js", "--db", "./ganache_cache", "--networkId","0x2324","--gasLimit","10000000000","--gasPrice","1","---hardfork","istanbul","--mnemonic","${GANACHE_MNEMONIC}"]
|
||||||
|
24
compose-files/ocean_contracts.yml
Normal file
24
compose-files/ocean_contracts.yml
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
version: '3'
|
||||||
|
services:
|
||||||
|
ocean-contracts:
|
||||||
|
image: oceanprotocol/ocean-contracts:$CONTRACTS_VERSION
|
||||||
|
networks:
|
||||||
|
backend:
|
||||||
|
ipv4_address: 172.15.0.14
|
||||||
|
environment:
|
||||||
|
MNEMONIC: ${GANACHE_MNEMONIC}
|
||||||
|
OWNER_ROLE_ADDRESS: ${CONTRACTS_OWNER_ROLE_ADDRESS}
|
||||||
|
DEPLOY_CONTRACTS: ${DEPLOY_CONTRACTS}
|
||||||
|
LOCAL_CONTRACTS: ${DEPLOY_CONTRACTS}
|
||||||
|
REUSE_DATABASE: ${GANACHE_REUSE_DATABASE}
|
||||||
|
DATABASE_PATH: "/ganache-db"
|
||||||
|
NETWORK_NAME: ${CONTRACTS_NETWORK_NAME}
|
||||||
|
NETWORK_RPC_HOST: ${NETWORK_RPC_HOST}
|
||||||
|
NETWORK_RPC_PORT: ${NETWORK_RPC_PORT}
|
||||||
|
NETWORK_RPC_URL: ${NETWORK_RPC_URL}
|
||||||
|
LOCAL_USER_ID: ${LOCAL_USER_ID}
|
||||||
|
LOCAL_GROUP_ID: ${LOCAL_GROUP_ID}
|
||||||
|
depends_on:
|
||||||
|
- ganache
|
||||||
|
volumes:
|
||||||
|
- ${OCEAN_ARTIFACTS_FOLDER}:/ocean-contracts/artifacts/
|
@ -7,10 +7,13 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
backend:
|
backend:
|
||||||
ipv4_address: 172.15.0.4
|
ipv4_address: 172.15.0.4
|
||||||
|
depends_on:
|
||||||
|
- ocean-contracts
|
||||||
environment:
|
environment:
|
||||||
ARTIFACTS_PATH: ${OCEAN_ARTIFACTS_FOLDER:-/ocean-provider/artifacts}
|
ARTIFACTS_PATH: "/ocean-contracts/artifacts"
|
||||||
NETWORK_URL: ${NETWORK_RPC_URL}
|
NETWORK_URL: ${NETWORK_RPC_URL}
|
||||||
PARITY_URL: ${NETWORK_RPC_URL}
|
PARITY_URL: ${NETWORK_RPC_URL}
|
||||||
|
PROVIDER_KEY: ${PROVIDER_PRIVATE_KEY}
|
||||||
PROVIDER_PRIVATE_KEY: ${PROVIDER_PRIVATE_KEY}
|
PROVIDER_PRIVATE_KEY: ${PROVIDER_PRIVATE_KEY}
|
||||||
PROVIDER_ADDRESS: ${PROVIDER_ADDRESS}
|
PROVIDER_ADDRESS: ${PROVIDER_ADDRESS}
|
||||||
PROVIDER_PASSWORD: ${PROVIDER_PASSWORD}
|
PROVIDER_PASSWORD: ${PROVIDER_PASSWORD}
|
||||||
@ -21,3 +24,5 @@ services:
|
|||||||
IPFS_GATEWAY: ${PROVIDER_IPFS_GATEWAY}
|
IPFS_GATEWAY: ${PROVIDER_IPFS_GATEWAY}
|
||||||
OCEAN_PROVIDER_TIMEOUT: '9000'
|
OCEAN_PROVIDER_TIMEOUT: '9000'
|
||||||
OPERATOR_SERVICE_URL: ${OPERATOR_SERVICE_URL}
|
OPERATOR_SERVICE_URL: ${OPERATOR_SERVICE_URL}
|
||||||
|
volumes:
|
||||||
|
- ${OCEAN_ARTIFACTS_FOLDER}:/ocean-contracts/artifacts/
|
||||||
|
@ -27,12 +27,17 @@ DIR="${DIR/ /\\ }"
|
|||||||
COMPOSE_DIR="${DIR}/compose-files"
|
COMPOSE_DIR="${DIR}/compose-files"
|
||||||
|
|
||||||
# Default versions of Aquarius, Provider
|
# Default versions of Aquarius, Provider
|
||||||
export AQUARIUS_VERSION=${AQUARIUS_VERSION:-v3}
|
|
||||||
export PROVIDER_VERSION=${PROVIDER_VERSION:-v0.1.0}
|
|
||||||
|
|
||||||
|
export AQUARIUS_VERSION=${AQUARIUS_VERSION:v3}
|
||||||
|
export PROVIDER_VERSION=${PROVIDER_VERSION:latest}
|
||||||
|
export CONTRACTS_VERSION=${CONTRACTS_VERSION:-test}
|
||||||
export PROJECT_NAME="ocean"
|
export PROJECT_NAME="ocean"
|
||||||
export FORCEPULL="false"
|
export FORCEPULL="false"
|
||||||
|
|
||||||
|
# Export User UID and GID
|
||||||
|
export LOCAL_USER_ID=$(id -u)
|
||||||
|
export LOCAL_GROUP_ID=$(id -g)
|
||||||
|
|
||||||
|
|
||||||
# Specify the ethereum default RPC container provider
|
# Specify the ethereum default RPC container provider
|
||||||
if [ ${IP} = "localhost" ]; then
|
if [ ${IP} = "localhost" ]; then
|
||||||
@ -42,9 +47,18 @@ else
|
|||||||
fi
|
fi
|
||||||
export NETWORK_RPC_PORT="8545"
|
export NETWORK_RPC_PORT="8545"
|
||||||
export NETWORK_RPC_URL="http://"${NETWORK_RPC_HOST}:${NETWORK_RPC_PORT}
|
export NETWORK_RPC_URL="http://"${NETWORK_RPC_HOST}:${NETWORK_RPC_PORT}
|
||||||
# Use this seed only on Spree! (Spree is the default.)
|
# Use this seed on ganache to always create the same wallets
|
||||||
export GANACHE_MNEMONIC=${GANACHE_MNEMONIC:-"taxi music thumb unique chat sand crew more leg another off lamp"}
|
export GANACHE_MNEMONIC=${GANACHE_MNEMONIC:-"taxi music thumb unique chat sand crew more leg another off lamp"}
|
||||||
|
|
||||||
|
# Ocean contracts
|
||||||
|
export OCEAN_HOME="${HOME}/.ocean"
|
||||||
|
export CONTRACTS_OWNER_ROLE_ADDRESS="${CONTRACTS_OWNER_ROLE_ADDRESS}"
|
||||||
|
export DEPLOY_CONTRACTS="true"
|
||||||
|
export OCEAN_ARTIFACTS_FOLDER="${OCEAN_HOME}/ocean-contracts/artifacts"
|
||||||
|
export ADDRESS_FILE="${OCEAN_ARTIFACTS_FOLDER}/address.json"
|
||||||
|
echo "export ADDRESS_FILE=${ADDRESS_FILE}"
|
||||||
|
# Specify which ethereum client to run or connect to: development
|
||||||
|
export CONTRACTS_NETWORK_NAME="ganache"
|
||||||
|
|
||||||
# Default Aquarius parameters: use Elasticsearch
|
# Default Aquarius parameters: use Elasticsearch
|
||||||
export DB_MODULE="elasticsearch"
|
export DB_MODULE="elasticsearch"
|
||||||
@ -64,12 +78,7 @@ CHECK_ELASTIC_VM_COUNT=true
|
|||||||
export PROVIDER_LOG_LEVEL=INFO
|
export PROVIDER_LOG_LEVEL=INFO
|
||||||
export PROVIDER_WORKERS=1
|
export PROVIDER_WORKERS=1
|
||||||
export PROVIDER_IPFS_GATEWAY=https://ipfs.oceanprotocol.com
|
export PROVIDER_IPFS_GATEWAY=https://ipfs.oceanprotocol.com
|
||||||
export PROVIDER_PRIVATE_KEY=0x9bf5d7e4978ed5206f760e6daded34d657572bd49fa5b3fe885679329fb16b16
|
export PROVIDER_PRIVATE_KEY=0xfd5c1ccea015b6d663618850824154a3b3fb2882c46cefb05b9a93fea8c3d215
|
||||||
export PROVIDER_ENCRYPTED_KEY=''
|
|
||||||
export PROVIDER_ADDRESS=''
|
|
||||||
export PROVIDER_PASSWORD=''
|
|
||||||
export PROVIDER_KEYFILE="/accounts/provider.json"
|
|
||||||
export DDO_CONTRACT_ADDRESS=''
|
|
||||||
|
|
||||||
if [ ${IP} = "localhost" ]; then
|
if [ ${IP} = "localhost" ]; then
|
||||||
export AQUARIUS_URI=http://172.15.0.5:5000
|
export AQUARIUS_URI=http://172.15.0.5:5000
|
||||||
@ -81,11 +90,6 @@ fi
|
|||||||
export OPERATOR_SERVICE_URL=https://operator-api.operator.dev-ocean.com
|
export OPERATOR_SERVICE_URL=https://operator-api.operator.dev-ocean.com
|
||||||
|
|
||||||
|
|
||||||
# Export User UID and GID
|
|
||||||
export LOCAL_USER_ID=$(id -u)
|
|
||||||
export LOCAL_GROUP_ID=$(id -g)
|
|
||||||
|
|
||||||
|
|
||||||
#add aquarius to /etc/hosts
|
#add aquarius to /etc/hosts
|
||||||
|
|
||||||
if [ ${IP} = "localhost" ]; then
|
if [ ${IP} = "localhost" ]; then
|
||||||
@ -141,6 +145,11 @@ function check_max_map_count {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function clean_local_contracts {
|
||||||
|
rm -f "${OCEAN_ARTIFACTS_FOLDER}/ready"
|
||||||
|
rm -f "${OCEAN_ARTIFACTS_FOLDER}/*.json"
|
||||||
|
}
|
||||||
|
|
||||||
check_if_owned_by_root
|
check_if_owned_by_root
|
||||||
show_banner
|
show_banner
|
||||||
|
|
||||||
@ -150,6 +159,8 @@ COMPOSE_FILES+=" -f ${COMPOSE_DIR}/dashboard.yml"
|
|||||||
COMPOSE_FILES+=" -f ${COMPOSE_DIR}/aquarius_elasticsearch.yml"
|
COMPOSE_FILES+=" -f ${COMPOSE_DIR}/aquarius_elasticsearch.yml"
|
||||||
COMPOSE_FILES+=" -f ${COMPOSE_DIR}/provider.yml"
|
COMPOSE_FILES+=" -f ${COMPOSE_DIR}/provider.yml"
|
||||||
COMPOSE_FILES+=" -f ${COMPOSE_DIR}/ganache.yml"
|
COMPOSE_FILES+=" -f ${COMPOSE_DIR}/ganache.yml"
|
||||||
|
COMPOSE_FILES+=" -f ${COMPOSE_DIR}/ocean_contracts.yml"
|
||||||
|
|
||||||
DOCKER_COMPOSE_EXTRA_OPTS="${DOCKER_COMPOSE_EXTRA_OPTS:-}"
|
DOCKER_COMPOSE_EXTRA_OPTS="${DOCKER_COMPOSE_EXTRA_OPTS:-}"
|
||||||
|
|
||||||
while :; do
|
while :; do
|
||||||
@ -176,6 +187,7 @@ while :; do
|
|||||||
;;
|
;;
|
||||||
--no-ganache)
|
--no-ganache)
|
||||||
COMPOSE_FILES="${COMPOSE_FILES/ -f ${COMPOSE_DIR}\/ganache.yml/}"
|
COMPOSE_FILES="${COMPOSE_FILES/ -f ${COMPOSE_DIR}\/ganache.yml/}"
|
||||||
|
COMPOSE_FILES="${COMPOSE_FILES/ -f ${COMPOSE_DIR}\/ocean_contracts.yml/}"
|
||||||
printf $COLOR_Y'Starting without Ganache...\n\n'$COLOR_RESET
|
printf $COLOR_Y'Starting without Ganache...\n\n'$COLOR_RESET
|
||||||
;;
|
;;
|
||||||
--no-aquarius)
|
--no-aquarius)
|
||||||
@ -218,6 +230,7 @@ while :; do
|
|||||||
*)
|
*)
|
||||||
[ ${CHECK_ELASTIC_VM_COUNT} = "true" ] && check_max_map_count
|
[ ${CHECK_ELASTIC_VM_COUNT} = "true" ] && check_max_map_count
|
||||||
printf $COLOR_Y'Starting Ocean V3...\n\n'$COLOR_RESET
|
printf $COLOR_Y'Starting Ocean V3...\n\n'$COLOR_RESET
|
||||||
|
[ ${DEPLOY_CONTRACTS} = "true" ] && clean_local_contracts
|
||||||
[ ${FORCEPULL} = "true" ] && eval docker-compose "$DOCKER_COMPOSE_EXTRA_OPTS" --project-name=$PROJECT_NAME "$COMPOSE_FILES" pull
|
[ ${FORCEPULL} = "true" ] && eval docker-compose "$DOCKER_COMPOSE_EXTRA_OPTS" --project-name=$PROJECT_NAME "$COMPOSE_FILES" pull
|
||||||
eval docker-compose "$DOCKER_COMPOSE_EXTRA_OPTS" --project-name=$PROJECT_NAME "$COMPOSE_FILES" up --remove-orphans
|
eval docker-compose "$DOCKER_COMPOSE_EXTRA_OPTS" --project-name=$PROJECT_NAME "$COMPOSE_FILES" up --remove-orphans
|
||||||
break
|
break
|
||||||
|
Loading…
x
Reference in New Issue
Block a user