diff --git a/README.md b/README.md index 64333a9..9120361 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ cd barge ./start_ocean.sh ``` -That will run the current default versions of Aquarius, Brizo, Pleuston, Keeper Contracts, and Faucet. It will also run a local Spree network (i.e. `--local-spree-node`). +That will run the current default versions of Aquarius, Brizo, Events Handler, Pleuston, Keeper Contracts, and Faucet. It will also run a local Spree network (i.e. `--local-spree-node`). Welcome to Ocean Protocol @@ -57,15 +57,15 @@ docker system prune --all --volumes ## Options -The startup script comes with a set of options for customizing variou things. +The startup script comes with a set of options for customizing various things. ### Component Versions The default versions are always a combination of component versions which are considered stable. -| Aquarius | Brizo | Keeper | Pleuston | Faucet | -| -------- | --------- | --------- | -------- | -------- | -| `v0.3.8` | `v0.3.14` | `v0.12.0` | `v0.5.1` | `v0.2.6` | +| Aquarius | Brizo | Events Handler | Keeper | Pleuston | Faucet | +| -------- | --------- | -------------- | --------- | -------- | -------- | +| `v0.3.8` | `v0.4.2` | `v0.1.2` | `v0.11.1` | `v0.5.1` | `v0.2.6` | You can use the `--latest` option to pull the most recent Docker images for all components, which are always tagged as `latest` in Docker. The `latest` Docker image tag derives from the default main branch of the component's Git repo. @@ -73,6 +73,7 @@ You can override the Docker image tag used for a particular component by setting - `AQUARIUS_VERSION` - `BRIZO_VERSION` +- `EVENTS_HANDLER_VERSION` - `KEEPER_VERSION` - `PLEUSTON_VERSION` - `FAUCET_VERSION` @@ -96,6 +97,7 @@ will use the default Docker image tags for Aquarius, Keeper Contracts and Pleust | `--no-pleuston` | Start up Ocean without the `pleuston` Building Block. Helpful for development on `pleuston`. | | `--no-aquarius` | Start up Ocean without the `aquarius` Building Block. | | `--no-brizo` | Start up Ocean without the `brizo` Building Block. | +| `--no-events-handler` | Start up Ocean without the `events-handler` Building Block. | | `--no-secret-store` | Start up Ocean without the `secret-store` Building Block. | | `--no-faucet` | Start up Ocean without the `faucet` Building Block. | | `--mongodb` | Start up Ocean with MongoDB as DB engine for Aquarius instead of Elasticsearch. | @@ -145,6 +147,14 @@ By default it will start one container. This Building Block can be disabled by s | -------- | ------------- | ----------------- | --------------------- | ----------------------------------------------- | | `brizo` | `8030` | http://brizo:8030 | http://localhost:8030 | [Brizo](https://github.com/oceanprotocol/brizo) | +### Events Handler + +By default it will start one container. This Building Block can be disabled by setting the `--no-events-handler` flag. + +| Hostname | External Port | Internal URL | Local URL | Description | +| ----------------- | ------------- | ----------------- | --------------------- | -------------------------------------------------------------------- | +| `events-handler` | | | | [Events-handler](https://github.com/oceanprotocol/events-handler-py) | + ### Keeper Node Controlled by the `--local-*-node` config switches will start a container `keeper-node` that uses port `8545` to expose an rpc endpoint to the Ethereum Protocol. @@ -205,7 +215,11 @@ you will have available a keeper node in the local and private Spree Network wit | `0xe08A1dAe983BC701D05E492DB80e0144f8f4b909` | mnemonic | [info here](#spree-mnemonic) | 1000000000 Ether | | `0xbcE5A3468386C64507D30136685A99cFD5603135` | mnemonic | [info here](#spree-mnemonic) | 1000000000 Ether | -Use one of the above accounts to populate `PARITY_ADDRESS` and `PARITY_PASSWORD` in `brizo.env` file to avoid account `locked` issues from the keeper contracts. +Use one of the above accounts to populate `PROVIDER_ADDRESS`, `PROVIDER_PASSWORD` and `PROVIDER_KEYFILE` in `start_ocean.sh`. +This account will is used in `brizo` and `events-handler` as the `provider` account which is important for processing the +service agreements flow. The `PROVIDER_KEYFILE` must be placed in the `accounts` folder and must match the ethereum +address from `PROVIDER_ADDRESS`. The `PROVIDER_ADDRESS` is also set in `pleuston` instance so that published assets get +assigned the correct provider address. ### Spree Mnemonic diff --git a/accounts/provider.json b/accounts/provider.json new file mode 100755 index 0000000..2226e59 --- /dev/null +++ b/accounts/provider.json @@ -0,0 +1,22 @@ +{ + "id": "50aa801a-8d66-1402-1fa4-d8987868c2ce", + "version": 3, + "crypto": { + "cipher": "aes-128-ctr", + "cipherparams": { + "iv": "a874e6fe50a5bb088826c45560dc1b7e" + }, + "ciphertext": "2383c6aa50c744b6558e77b5dcec6137f647c81f10f71f22a87321fd1306056c", + "kdf": "pbkdf2", + "kdfparams": { + "c": 10240, + "dklen": 32, + "prf": "hmac-sha256", + "salt": "eca6ccc9fbb0bdc3a516c7576808ba5031669e6878f3bb95624ddb46449e119c" + }, + "mac": "14e9a33a45ae32f88a0bd5aac14521c1fcf14f56fd55c1a1c080b2f81ddb8d44" + }, + "address": "068ed00cf0441e4829d9784fcbe7b9e26d4bd8d0", + "name": "", + "meta": "{}" +} diff --git a/compose-files/brizo.yml b/compose-files/brizo.yml index 7eec401..d91b855 100644 --- a/compose-files/brizo.yml +++ b/compose-files/brizo.yml @@ -17,7 +17,11 @@ services: PARITY_URL: ${SIGNING_NODE_URL} LOCAL_CONTRACTS: ${KEEPER_DEPLOY_CONTRACTS} SECRET_STORE_URL: ${SECRET_STORE_URL} - PARITY_ADDRESS: ${PUBLISHER_ADDRESS} - PARITY_PASSWORD: ${PUBLISHER_PASSWORD} + PROVIDER_ADDRESS: ${PROVIDER_ADDRESS} + PROVIDER_PASSWORD: ${PROVIDER_PASSWORD} + PROVIDER_KEYFILE: ${PROVIDER_KEYFILE} + LOG_LEVEL: ${BRIZO_LOG_LEVEL} + BRIZO_WORKERS: ${BRIZO_WORKERS} volumes: - ${KEEPER_ARTIFACTS_FOLDER}:/usr/local/keeper-contracts:ro + - ${ACCOUNTS_FOLDER}:/accounts diff --git a/compose-files/events_handler.yml b/compose-files/events_handler.yml new file mode 100644 index 0000000..352765c --- /dev/null +++ b/compose-files/events_handler.yml @@ -0,0 +1,21 @@ +version: '3' +services: + events-handler: + image: oceanprotocol/events-handler-py:$EVENTS_HANDLER_VERSION + networks: + backend: + ipv4_address: 172.15.0.22 + depends_on: + - keeper-node + environment: + KEEPER_URL: ${KEEPER_RPC_URL} + PARITY_URL: ${SIGNING_NODE_URL} + SECRET_STORE_URL: ${SECRET_STORE_URL} + PROVIDER_ADDRESS: ${PROVIDER_ADDRESS} + PROVIDER_PASSWORD: ${PROVIDER_PASSWORD} + PROVIDER_KEYFILE: ${PROVIDER_KEYFILE} + LOCAL_CONTRACTS: ${KEEPER_DEPLOY_CONTRACTS} + LOG_LEVEL: ${EVENTS_HANDLER_LOG_LEVEL} + volumes: + - ${KEEPER_ARTIFACTS_FOLDER}:/usr/local/keeper-contracts:ro + - ${ACCOUNTS_FOLDER}:/accounts diff --git a/compose-files/pleuston.yml b/compose-files/pleuston.yml index b18fca2..cb37a16 100644 --- a/compose-files/pleuston.yml +++ b/compose-files/pleuston.yml @@ -14,6 +14,6 @@ services: environment: LOCAL_CONTRACTS: ${KEEPER_DEPLOY_CONTRACTS} REACT_APP_AQUARIUS_URI: ${AQUARIUS_URI} - REACT_APP_BRIZO_ADDRESS: ${PUBLISHER_ADDRESS} + REACT_APP_BRIZO_ADDRESS: ${PROVIDER_ADDRESS} volumes: - ${KEEPER_ARTIFACTS_FOLDER}:/pleuston/node_modules/@oceanprotocol/keeper-contracts/artifacts/:ro diff --git a/networks/duero/keys/consumer.json b/networks/duero/keys/consumer.json new file mode 100644 index 0000000..15d6d06 --- /dev/null +++ b/networks/duero/keys/consumer.json @@ -0,0 +1,22 @@ +{ + "id": "0902d04b-f26e-5c1f-e3ae-78d2c1cb16e7", + "version": 3, + "crypto": { + "cipher": "aes-128-ctr", + "cipherparams": { + "iv": "6a829fe7bc656d85f6c2e9fd21784952" + }, + "ciphertext": "1bfec0b054a648af8fdd0e85662206c65a4af0ed15fede4ad41ca9ab7b504ce2", + "kdf": "pbkdf2", + "kdfparams": { + "c": 10240, + "dklen": 32, + "prf": "hmac-sha256", + "salt": "95f96b5ee22dd537e06076eb8d7078eb7275d29af935782fe476696b11be50e5" + }, + "mac": "4af2215c3cd9447a5b0512d7d1c3ea5a4435981e1c8f48bf71d7a49c0e5b4986" + }, + "address": "00bd138abd70e2f00903268f3db08f2d25677c9e", + "name": "Validator0", + "meta": "{}" +} diff --git a/networks/secret-store/keys/duero/consumer.json b/networks/secret-store/keys/duero/consumer.json new file mode 100644 index 0000000..15d6d06 --- /dev/null +++ b/networks/secret-store/keys/duero/consumer.json @@ -0,0 +1,22 @@ +{ + "id": "0902d04b-f26e-5c1f-e3ae-78d2c1cb16e7", + "version": 3, + "crypto": { + "cipher": "aes-128-ctr", + "cipherparams": { + "iv": "6a829fe7bc656d85f6c2e9fd21784952" + }, + "ciphertext": "1bfec0b054a648af8fdd0e85662206c65a4af0ed15fede4ad41ca9ab7b504ce2", + "kdf": "pbkdf2", + "kdfparams": { + "c": 10240, + "dklen": 32, + "prf": "hmac-sha256", + "salt": "95f96b5ee22dd537e06076eb8d7078eb7275d29af935782fe476696b11be50e5" + }, + "mac": "4af2215c3cd9447a5b0512d7d1c3ea5a4435981e1c8f48bf71d7a49c0e5b4986" + }, + "address": "00bd138abd70e2f00903268f3db08f2d25677c9e", + "name": "Validator0", + "meta": "{}" +} diff --git a/start_ocean.sh b/start_ocean.sh index 4f03516..7815483 100755 --- a/start_ocean.sh +++ b/start_ocean.sh @@ -14,8 +14,9 @@ COMPOSE_DIR="${DIR}/compose-files" # Default versions of Aquarius, Brizo, Keeper Contracts and Pleuston export AQUARIUS_VERSION=${AQUARIUS_VERSION:-v0.3.8} -export BRIZO_VERSION=${BRIZO_VERSION:-v0.3.14} -export KEEPER_VERSION=${KEEPER_VERSION:-v0.12.0} +export BRIZO_VERSION=${BRIZO_VERSION:-v0.4.2} +export EVENTS_HANDLER_VERSION=${EVENTS_HANDLER_VERSION:-v0.1.2} +export KEEPER_VERSION=${KEEPER_VERSION:-v0.11.1} export PLEUSTON_VERSION=${PLEUSTON_VERSION:-v0.5.1} export FAUCET_VERSION=${FAUCET_VERSION:-v0.2.6} @@ -63,10 +64,16 @@ export DB_CLIENT_KEY="" export DB_CLIENT_CERT="" CHECK_ELASTIC_VM_COUNT=true +export BRIZO_WORKERS=${BRIZO_WORKERS:-5} +export BRIZO_LOG_LEVEL="INFO" +export EVENTS_HANDLER_LOG_LEVEL="INFO" + # Set a valid parity address and password to have seamless interaction with the `keeper` # it has to exist on the secret store signing node and as well on the keeper node -export PUBLISHER_ADDRESS=0x068ed00cf0441e4829d9784fcbe7b9e26d4bd8d0 -export PUBLISHER_PASSWORD=secret +export PROVIDER_ADDRESS=0x068ed00cf0441e4829d9784fcbe7b9e26d4bd8d0 +export PROVIDER_PASSWORD=secret +export PROVIDER_KEYFILE="/accounts/provider.json" +export ACCOUNTS_FOLDER="../accounts" export SECRET_STORE_URL=http://secret-store:12001 export SIGNING_NODE_URL=http://secret-store-signing-node:8545 @@ -155,6 +162,7 @@ COMPOSE_FILES+=" -f ${COMPOSE_DIR}/network_volumes.yml" COMPOSE_FILES+=" -f ${COMPOSE_DIR}/pleuston.yml" COMPOSE_FILES+=" -f ${COMPOSE_DIR}/aquarius_elasticsearch.yml" COMPOSE_FILES+=" -f ${COMPOSE_DIR}/brizo.yml" +COMPOSE_FILES+=" -f ${COMPOSE_DIR}/events_handler.yml" COMPOSE_FILES+=" -f ${COMPOSE_DIR}/secret_store.yml" COMPOSE_FILES+=" -f ${COMPOSE_DIR}/secret_store_signing_node.yml" COMPOSE_FILES+=" -f ${COMPOSE_DIR}/faucet.yml" @@ -176,6 +184,7 @@ while :; do --latest) export AQUARIUS_VERSION="latest" export BRIZO_VERSION="latest" + export EVENTS_HANDLER_VERSION="latest" export KEEPER_VERSION="latest" # TODO: Change label on Docker to refer `latest` to `master` export PLEUSTON_VERSION="master" @@ -193,6 +202,10 @@ while :; do COMPOSE_FILES="${COMPOSE_FILES/ -f ${COMPOSE_DIR}\/pleuston.yml/}" printf $COLOR_Y'Starting without Pleuston...\n\n'$COLOR_RESET ;; + --no-events-handler) + COMPOSE_FILES="${COMPOSE_FILES/ -f ${COMPOSE_DIR}\/events_handler.yml/}" + printf $COLOR_Y'Starting without EventsHandler...\n\n'$COLOR_RESET + ;; --no-brizo) COMPOSE_FILES="${COMPOSE_FILES/ -f ${COMPOSE_DIR}\/brizo.yml/}" printf $COLOR_Y'Starting without Brizo...\n\n'$COLOR_RESET