1
0
mirror of https://github.com/oceanprotocol/barge.git synced 2024-11-22 17:50:13 +01:00

Merge pull request #220 from oceanprotocol/feature/ocean-contracts

Feature/ocean contracts
This commit is contained in:
Alex Coseru 2020-09-17 22:20:57 +03:00 committed by GitHub
commit 5f894dcb8d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 94 additions and 21 deletions

View File

@ -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.
| Aquarius | Provider | Ganache |
| -------- | -------- | -------- |
| `vx.x.x` | `vx.x.x` | `latest` |
| Aquarius | Provider | Ganache | ocean-contracts |
| -------- | -------- | -------- | --------------- |
| `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`:
- `AQUARIUS_VERSION`
- `PROVIDER_VERSION`
- `CONTRACTS_VERSION`
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 | |
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

View File

@ -7,6 +7,8 @@ services:
networks:
backend:
ipv4_address: 172.15.0.5
depends_on:
- ocean-contracts
environment:
DB_MODULE: ${DB_MODULE}
DB_HOSTNAME: ${DB_HOSTNAME}
@ -18,3 +20,15 @@ services:
DB_CA_CERTS: ${DB_CA_CERTS}
DB_CLIENT_KEY: ${DB_CLIENT_KEY}
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/

View File

@ -19,6 +19,7 @@ services:
ipv4_address: 172.15.0.5
depends_on:
- elasticsearch
- ocean-contracts
environment:
DB_MODULE: ${DB_MODULE}
DB_HOSTNAME: ${DB_HOSTNAME}
@ -32,7 +33,12 @@ services:
DB_CLIENT_CERT: ${DB_CLIENT_CERT}
LOG_LEVEL: DEBUG
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_ALLOW: "0"
RUN_EVENTS_MONITOR: "1"
volumes:
- ${OCEAN_ARTIFACTS_FOLDER}:/ocean-contracts/artifacts/

View File

@ -7,4 +7,4 @@ services:
networks:
backend:
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}"]

View 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/

View File

@ -7,10 +7,13 @@ services:
networks:
backend:
ipv4_address: 172.15.0.4
depends_on:
- ocean-contracts
environment:
ARTIFACTS_PATH: ${OCEAN_ARTIFACTS_FOLDER:-/ocean-provider/artifacts}
ARTIFACTS_PATH: "/ocean-contracts/artifacts"
NETWORK_URL: ${NETWORK_RPC_URL}
PARITY_URL: ${NETWORK_RPC_URL}
PROVIDER_KEY: ${PROVIDER_PRIVATE_KEY}
PROVIDER_PRIVATE_KEY: ${PROVIDER_PRIVATE_KEY}
PROVIDER_ADDRESS: ${PROVIDER_ADDRESS}
PROVIDER_PASSWORD: ${PROVIDER_PASSWORD}
@ -21,3 +24,5 @@ services:
IPFS_GATEWAY: ${PROVIDER_IPFS_GATEWAY}
OCEAN_PROVIDER_TIMEOUT: '9000'
OPERATOR_SERVICE_URL: ${OPERATOR_SERVICE_URL}
volumes:
- ${OCEAN_ARTIFACTS_FOLDER}:/ocean-contracts/artifacts/

View File

@ -27,12 +27,17 @@ DIR="${DIR/ /\\ }"
COMPOSE_DIR="${DIR}/compose-files"
# 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 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
if [ ${IP} = "localhost" ]; then
@ -42,9 +47,18 @@ else
fi
export NETWORK_RPC_PORT="8545"
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"}
# 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
export DB_MODULE="elasticsearch"
@ -64,12 +78,7 @@ CHECK_ELASTIC_VM_COUNT=true
export PROVIDER_LOG_LEVEL=INFO
export PROVIDER_WORKERS=1
export PROVIDER_IPFS_GATEWAY=https://ipfs.oceanprotocol.com
export PROVIDER_PRIVATE_KEY=0x9bf5d7e4978ed5206f760e6daded34d657572bd49fa5b3fe885679329fb16b16
export PROVIDER_ENCRYPTED_KEY=''
export PROVIDER_ADDRESS=''
export PROVIDER_PASSWORD=''
export PROVIDER_KEYFILE="/accounts/provider.json"
export DDO_CONTRACT_ADDRESS=''
export PROVIDER_PRIVATE_KEY=0xfd5c1ccea015b6d663618850824154a3b3fb2882c46cefb05b9a93fea8c3d215
if [ ${IP} = "localhost" ]; then
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 User UID and GID
export LOCAL_USER_ID=$(id -u)
export LOCAL_GROUP_ID=$(id -g)
#add aquarius to /etc/hosts
if [ ${IP} = "localhost" ]; then
@ -141,6 +145,11 @@ function check_max_map_count {
fi
}
function clean_local_contracts {
rm -f "${OCEAN_ARTIFACTS_FOLDER}/ready"
rm -f "${OCEAN_ARTIFACTS_FOLDER}/*.json"
}
check_if_owned_by_root
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}/provider.yml"
COMPOSE_FILES+=" -f ${COMPOSE_DIR}/ganache.yml"
COMPOSE_FILES+=" -f ${COMPOSE_DIR}/ocean_contracts.yml"
DOCKER_COMPOSE_EXTRA_OPTS="${DOCKER_COMPOSE_EXTRA_OPTS:-}"
while :; do
@ -176,6 +187,7 @@ while :; do
;;
--no-ganache)
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
;;
--no-aquarius)
@ -218,6 +230,7 @@ while :; do
*)
[ ${CHECK_ELASTIC_VM_COUNT} = "true" ] && check_max_map_count
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
eval docker-compose "$DOCKER_COMPOSE_EXTRA_OPTS" --project-name=$PROJECT_NAME "$COMPOSE_FILES" up --remove-orphans
break