Compare commits

...

6 Commits

Author SHA1 Message Date
Alexander Kolotov
6692a5fc87 Merge branch 'develop' into combined-bridge-oracle 2022-06-03 14:38:45 +03:00
Alexander Kolotov
85e23bd992 ORACLE_HOME_RPC_BLOCK_POLLING_LIMIT added to an oracle's configuration 2022-05-24 15:40:19 +03:00
Alexander Kolotov
a2e110dbc7 switch to nethermind as a local node 2022-05-24 12:36:03 +03:00
Alexander Kolotov
aa56744e8d incorrect network config for tb senderhome 2022-02-25 15:18:58 +03:00
Alexander Kolotov
2393d6c554 proper configuration for openethereum service 2022-02-25 14:53:39 +03:00
Alexander Kolotov
0de29b5847 TB and AMB combined on the deployment stage 2022-02-22 22:29:40 +03:00
9 changed files with 461 additions and 65 deletions

@ -5,7 +5,8 @@ sokol-kovan:
hosts: hosts:
127.0.0.1: 127.0.0.1:
ansible_user: ubuntu ansible_user: ubuntu
ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" TB_ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
AMB_ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
#syslog_server_port: "udp://127.0.0.1:514" #syslog_server_port: "udp://127.0.0.1:514"
monitor: monitor:
hosts: hosts:

@ -1,6 +1,3 @@
--- ---
bridge_path: "/home/{{ compose_service_user }}/bridge" bridge_path: "/home/{{ compose_service_user }}/bridge"
ORACLE_ALLOW_HTTP_FOR_RPC: no
ORACLE_QUEUE_URL: amqp://rabbit
ORACLE_REDIS_URL: redis://redis
keyfile_path: "/root/.key" keyfile_path: "/root/.key"

@ -2,8 +2,6 @@
- include_tasks: logging_by_syslog.yml - include_tasks: logging_by_syslog.yml
with_items: with_items:
- docker-compose - docker-compose
- docker-compose-transfer
- docker-compose-amb
loop_control: loop_control:
loop_var: file loop_var: file

@ -1,39 +1,59 @@
--- ---
- name: Get blocks - name: Get blocks for TokenBridge
become_user: "{{ compose_service_user }}" become_user: "{{ compose_service_user }}"
shell: docker-compose run --rm --entrypoint "node scripts/getValidatorStartBlocks.js" bridge_affirmation shell: docker-compose run --rm --entrypoint "node scripts/getValidatorStartBlocks.js" bridge_affirmation
args: args:
chdir: "{{ bridge_path }}/oracle" chdir: "{{ bridge_path }}/oracle"
register: BLOCKS register: TBBLOCKS
when: (ORACLE_HOME_START_BLOCK is not defined) or (ORACLE_FOREIGN_START_BLOCK is not defined) when: (TB_HOME_START_BLOCK is not defined) or (TB_FOREIGN_START_BLOCK is not defined)
- name: Write blocks - name: Get blocks for AMB
become_user: "{{ compose_service_user }}"
shell: docker-compose run --rm --entrypoint "node scripts/getValidatorStartBlocks.js" bridge_amb_affirmation
args:
chdir: "{{ bridge_path }}/oracle"
register: AMBBLOCKS
when: (AMB_HOME_START_BLOCK is not defined) or (AMB_FOREIGN_START_BLOCK is not defined)
- name: Write blocks for TokenBridge
blockinfile: blockinfile:
path: "{{ bridge_path }}/oracle/.env" path: "{{ bridge_path }}/oracle/.env"
marker: "## {mark} Calculated by scripts/getValidatorStartBlocks.js" marker: "## {mark} Calculated by scripts/getValidatorStartBlocks.js"
block: | block: |
ORACLE_HOME_START_BLOCK={{ (BLOCKS.stdout | from_json).homeStartBlock }} TB_HOME_START_BLOCK={{ (TBBLOCKS.stdout | from_json).homeStartBlock }}
ORACLE_FOREIGN_START_BLOCK={{ (BLOCKS.stdout | from_json).foreignStartBlock }} TB_FOREIGN_START_BLOCK={{ (TBBLOCKS.stdout | from_json).foreignStartBlock }}
when: (ORACLE_HOME_START_BLOCK is not defined) or (ORACLE_FOREIGN_START_BLOCK is not defined) when: (TB_HOME_START_BLOCK is not defined) or (TB_FOREIGN_START_BLOCK is not defined)
- name: Get validator address - name: Write blocks for AMB
blockinfile:
path: "{{ bridge_path }}/oracle/.env"
marker: "## {mark} Calculated by scripts/getValidatorStartBlocks.js"
block: |
AMB_HOME_START_BLOCK={{ (AMBBLOCKS.stdout | from_json).homeStartBlock }}
AMB_FOREIGN_START_BLOCK={{ (AMBBLOCKS.stdout | from_json).foreignStartBlock }}
when: (AMB_HOME_START_BLOCK is not defined) or (AMB_FOREIGN_START_BLOCK is not defined)
- name: Get validator address for TokenBridge
become_user: "{{ compose_service_user }}" become_user: "{{ compose_service_user }}"
shell: docker-compose run --rm -e ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY="{{ ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY }}" --entrypoint "node scripts/privateKeyToAddress.js" bridge_affirmation shell: docker-compose run --rm -e ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY="{{ TB_ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY }}" --entrypoint "node scripts/privateKeyToAddress.js" bridge_affirmation
args: args:
chdir: "{{ bridge_path }}/oracle" chdir: "{{ bridge_path }}/oracle"
register: VADDRESS register: TBVADDRESS
- name: Set ORACLE_VALIDATOR_ADDRESS variable - name: Set TB_ORACLE_VALIDATOR_ADDRESS variable
set_fact: set_fact:
ORACLE_VALIDATOR_ADDRESS: "{{ VADDRESS.stdout }}" TB_ORACLE_VALIDATOR_ADDRESS: "{{ TBVADDRESS.stdout }}"
- name: Extend docker compose file for erc to native - name: Get validator address for AMB
set_fact: composefileoverride="-f docker-compose-transfer.yml" become_user: "{{ compose_service_user }}"
when: ORACLE_BRIDGE_MODE == "ERC_TO_NATIVE" shell: docker-compose run --rm -e ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY="{{ AMB_ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY }}" --entrypoint "node scripts/privateKeyToAddress.js" bridge_affirmation
args:
chdir: "{{ bridge_path }}/oracle"
register: AMBVADDRESS
- name: Extend docker compose file for amb - name: Set AMB_ORACLE_VALIDATOR_ADDRESS variable
set_fact: composefileoverride="-f docker-compose-amb.yml" set_fact:
when: ORACLE_BRIDGE_MODE == "ARBITRARY_MESSAGE" AMB_ORACLE_VALIDATOR_ADDRESS: "{{ AMBVADDRESS.stdout }}"
- name: Install .key config - name: Install .key config
template: template:

@ -12,12 +12,8 @@
owner: "{{ compose_service_user }}" owner: "{{ compose_service_user }}"
mode: '0640' mode: '0640'
- name: Copy docker-compose files - name: Copy docker-compose file
copy: copy:
src: ../../../../oracle/{{ item }} src: ../../../../oracle/docker-compose-combined.yml
dest: "{{ bridge_path }}/oracle/" dest: "{{ bridge_path }}/oracle/docker-compose.yml"
mode: '0755' mode: '0755'
with_items:
- docker-compose.yml
- docker-compose-transfer.yml
- docker-compose-amb.yml

@ -1,21 +1,28 @@
## General settings ## General settings
ORACLE_BRIDGE_MODE={{ ORACLE_BRIDGE_MODE }}
{% if ORACLE_LOG_LEVEL | default('') != '' %} {% if ORACLE_LOG_LEVEL | default('') != '' %}
ORACLE_LOG_LEVEL={{ ORACLE_LOG_LEVEL }} ORACLE_LOG_LEVEL={{ ORACLE_LOG_LEVEL }}
{% endif %} {% endif %}
## Home contract ## Home contract
COMMON_HOME_RPC_URL={{ COMMON_HOME_RPC_URL }} COMMON_HOME_RPC_URL={{ COMMON_HOME_RPC_URL }}
COMMON_HOME_BRIDGE_ADDRESS={{ COMMON_HOME_BRIDGE_ADDRESS }} TB_HOME_BRIDGE_ADDRESS={{ TB_HOME_BRIDGE_ADDRESS }}
AMB_HOME_BRIDGE_ADDRESS={{ AMB_HOME_BRIDGE_ADDRESS }}
ORACLE_HOME_RPC_POLLING_INTERVAL={{ ORACLE_HOME_RPC_POLLING_INTERVAL }} ORACLE_HOME_RPC_POLLING_INTERVAL={{ ORACLE_HOME_RPC_POLLING_INTERVAL }}
{% if ORACLE_HOME_RPC_BLOCK_POLLING_LIMIT | default('') != '' %}
ORACLE_HOME_RPC_BLOCK_POLLING_LIMIT={{ ORACLE_HOME_RPC_BLOCK_POLLING_LIMIT }}
{% endif %}
## Foreign contract ## Foreign contract
COMMON_FOREIGN_RPC_URL={{ COMMON_FOREIGN_RPC_URL }} COMMON_FOREIGN_RPC_URL={{ COMMON_FOREIGN_RPC_URL }}
{% if ORACLE_FOREIGN_ARCHIVE_RPC_URL | default('') != '' %} {% if ORACLE_FOREIGN_ARCHIVE_RPC_URL | default('') != '' %}
ORACLE_FOREIGN_ARCHIVE_RPC_URL={{ ORACLE_FOREIGN_ARCHIVE_RPC_URL }} ORACLE_FOREIGN_ARCHIVE_RPC_URL={{ ORACLE_FOREIGN_ARCHIVE_RPC_URL }}
{% endif %} {% endif %}
COMMON_FOREIGN_BRIDGE_ADDRESS={{ COMMON_FOREIGN_BRIDGE_ADDRESS }} TB_FOREIGN_BRIDGE_ADDRESS={{ TB_FOREIGN_BRIDGE_ADDRESS }}
AMB_FOREIGN_BRIDGE_ADDRESS={{ AMB_FOREIGN_BRIDGE_ADDRESS }}
ORACLE_FOREIGN_RPC_POLLING_INTERVAL={{ ORACLE_FOREIGN_RPC_POLLING_INTERVAL }} ORACLE_FOREIGN_RPC_POLLING_INTERVAL={{ ORACLE_FOREIGN_RPC_POLLING_INTERVAL }}
{% if ORACLE_FOREIGN_RPC_BLOCK_POLLING_LIMIT | default('') != '' %}
ORACLE_FOREIGN_RPC_BLOCK_POLLING_LIMIT={{ ORACLE_FOREIGN_RPC_BLOCK_POLLING_LIMIT }}
{% endif %}
{% if ORACLE_TX_REDUNDANCY | default('') != '' %} {% if ORACLE_TX_REDUNDANCY | default('') != '' %}
ORACLE_TX_REDUNDANCY={{ ORACLE_TX_REDUNDANCY }} ORACLE_TX_REDUNDANCY={{ ORACLE_TX_REDUNDANCY }}
@ -52,8 +59,10 @@ COMMON_FOREIGN_GAS_PRICE_FACTOR={{ COMMON_FOREIGN_GAS_PRICE_FACTOR }}
## Transport configuration ## Transport configuration
ORACLE_ALLOW_HTTP_FOR_RPC={{ "yes" if ORACLE_ALLOW_HTTP_FOR_RPC else "no" }} ORACLE_ALLOW_HTTP_FOR_RPC={{ "yes" if ORACLE_ALLOW_HTTP_FOR_RPC else "no" }}
ORACLE_QUEUE_URL={{ ORACLE_QUEUE_URL }} TB_QUEUE_URL={{ TB_QUEUE_URL }}
ORACLE_REDIS_URL={{ ORACLE_REDIS_URL }} TB_REDIS_URL={{ TB_REDIS_URL }}
AMB_QUEUE_URL={{ AMB_QUEUE_URL }}
AMB_REDIS_URL={{ AMB_REDIS_URL }}
{% if ORACLE_FOREIGN_TX_RESEND_INTERVAL | default('') != '' %} {% if ORACLE_FOREIGN_TX_RESEND_INTERVAL | default('') != '' %}
ORACLE_FOREIGN_TX_RESEND_INTERVAL={{ ORACLE_FOREIGN_TX_RESEND_INTERVAL }} ORACLE_FOREIGN_TX_RESEND_INTERVAL={{ ORACLE_FOREIGN_TX_RESEND_INTERVAL }}
{% endif %} {% endif %}
@ -61,26 +70,50 @@ ORACLE_FOREIGN_TX_RESEND_INTERVAL={{ ORACLE_FOREIGN_TX_RESEND_INTERVAL }}
ORACLE_HOME_TX_RESEND_INTERVAL={{ ORACLE_HOME_TX_RESEND_INTERVAL }} ORACLE_HOME_TX_RESEND_INTERVAL={{ ORACLE_HOME_TX_RESEND_INTERVAL }}
{% endif %} {% endif %}
## Emergency shutdown configuration ## Emergency shutdown configuration for TokenBridge
{% if ORACLE_SHUTDOWN_SERVICE_URL | default('') != '' %} {% if TB_SHUTDOWN_SERVICE_URL | default('') != '' %}
ORACLE_SHUTDOWN_SERVICE_URL={{ ORACLE_SHUTDOWN_SERVICE_URL }} TB_SHUTDOWN_SERVICE_URL={{ TB_SHUTDOWN_SERVICE_URL }}
{% endif %} {% endif %}
{% if ORACLE_SHUTDOWN_SERVICE_POLLING_INTERVAL | default('') != '' %} {% if TB_SHUTDOWN_SERVICE_POLLING_INTERVAL | default('') != '' %}
ORACLE_SHUTDOWN_SERVICE_POLLING_INTERVAL={{ ORACLE_SHUTDOWN_SERVICE_POLLING_INTERVAL }} TB_SHUTDOWN_SERVICE_POLLING_INTERVAL={{ TB_SHUTDOWN_SERVICE_POLLING_INTERVAL }}
{% endif %} {% endif %}
{% if ORACLE_SIDE_RPC_URL | default('') != '' %} {% if TB_SIDE_RPC_URL | default('') != '' %}
ORACLE_SIDE_RPC_URL={{ ORACLE_SIDE_RPC_URL }} TB_SIDE_RPC_URL={{ TB_SIDE_RPC_URL }}
{% endif %} {% endif %}
{% if ORACLE_SHUTDOWN_CONTRACT_ADDRESS | default('') != '' %} {% if TB_SHUTDOWN_CONTRACT_ADDRESS | default('') != '' %}
ORACLE_SHUTDOWN_CONTRACT_ADDRESS={{ ORACLE_SHUTDOWN_CONTRACT_ADDRESS }} TB_SHUTDOWN_CONTRACT_ADDRESS={{ TB_SHUTDOWN_CONTRACT_ADDRESS }}
{% endif %} {% endif %}
{% if ORACLE_SHUTDOWN_CONTRACT_METHOD | default('') != '' %} {% if TB_SHUTDOWN_CONTRACT_METHOD | default('') != '' %}
ORACLE_SHUTDOWN_CONTRACT_METHOD={{ ORACLE_SHUTDOWN_CONTRACT_METHOD }} TB_SHUTDOWN_CONTRACT_METHOD={{ TB_SHUTDOWN_CONTRACT_METHOD }}
{% endif %} {% endif %}
{% if ORACLE_HOME_START_BLOCK | default('') != '' %} ## Emergency shutdown configuration for AMB
ORACLE_HOME_START_BLOCK={{ ORACLE_HOME_START_BLOCK }} {% if AMB_SHUTDOWN_SERVICE_URL | default('') != '' %}
AMB_SHUTDOWN_SERVICE_URL={{ AMB_SHUTDOWN_SERVICE_URL }}
{% endif %} {% endif %}
{% if ORACLE_FOREIGN_START_BLOCK | default('') != '' %} {% if AMB_SHUTDOWN_SERVICE_POLLING_INTERVAL | default('') != '' %}
ORACLE_FOREIGN_START_BLOCK={{ ORACLE_FOREIGN_START_BLOCK }} AMB_SHUTDOWN_SERVICE_POLLING_INTERVAL={{ AMB_SHUTDOWN_SERVICE_POLLING_INTERVAL }}
{% endif %}
{% if AMB_SIDE_RPC_URL | default('') != '' %}
AMB_SIDE_RPC_URL={{ AMB_SIDE_RPC_URL }}
{% endif %}
{% if AMB_SHUTDOWN_CONTRACT_ADDRESS | default('') != '' %}
AMB_SHUTDOWN_CONTRACT_ADDRESS={{ AMB_SHUTDOWN_CONTRACT_ADDRESS }}
{% endif %}
{% if AMB_SHUTDOWN_CONTRACT_METHOD | default('') != '' %}
AMB_SHUTDOWN_CONTRACT_METHOD={{ AMB_SHUTDOWN_CONTRACT_METHOD }}
{% endif %}
{% if TB_HOME_START_BLOCK | default('') != '' %}
TB_HOME_START_BLOCK={{ TB_HOME_START_BLOCK }}
{% endif %}
{% if TB_FOREIGN_START_BLOCK | default('') != '' %}
TB_FOREIGN_START_BLOCK={{ TB_FOREIGN_START_BLOCK }}
{% endif %}
{% if AMB_HOME_START_BLOCK | default('') != '' %}
AMB_HOME_START_BLOCK={{ AMB_HOME_START_BLOCK }}
{% endif %}
{% if AMB_FOREIGN_START_BLOCK | default('') != '' %}
AMB_FOREIGN_START_BLOCK={{ AMB_FOREIGN_START_BLOCK }}
{% endif %} {% endif %}

@ -1,3 +1,6 @@
## Validator-specific options ## Validator-specific options
ORACLE_VALIDATOR_ADDRESS={{ ORACLE_VALIDATOR_ADDRESS }} TB_ORACLE_VALIDATOR_ADDRESS={{ TB_ORACLE_VALIDATOR_ADDRESS }}
ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY={{ ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY }} TB_ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY={{ TB_ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY }}
AMB_ORACLE_VALIDATOR_ADDRESS={{ AMB_ORACLE_VALIDATOR_ADDRESS }}
AMB_ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY={{ AMB_ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY }}

@ -14,19 +14,26 @@ WORKDIR="{{ '/home/' + compose_service_user | default('poadocker') + '/' + bridg
#Getting path to private key file and variable name for parsing key file #Getting path to private key file and variable name for parsing key file
keyfile="{{ keyfile_path }}" keyfile="{{ keyfile_path }}"
vaddr="ORACLE_VALIDATOR_ADDRESS=" tbvaddr="TB_ORACLE_VALIDATOR_ADDRESS="
vkey="ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY=" tbvkey="TB_ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY="
composefileoverride="{{ composefileoverride | default('') }}" ambvaddr="AMB_ORACLE_VALIDATOR_ADDRESS="
ambvkey="AMB_ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY="
#Parsing file content and add key to variable #Parsing file content and add key to variable
while read -r line while read -r line
do do
case $line in case $line in
$vaddr*) $tbvaddr*)
vaddr=${line#$vaddr} tbvaddr=${line#$tbvaddr}
;; ;;
$vkey*) $tbvkey*)
vkey=${line#$vkey} tbvkey=${line#$tbvkey}
;;
$ambvaddr*)
ambvaddr=${line#$ambvaddr}
;;
$ambvkey*)
ambvkey=${line#$ambvkey}
;; ;;
esac esac
done < $keyfile done < $keyfile
@ -34,22 +41,29 @@ done < $keyfile
start(){ start(){
echo "Starting bridge.." echo "Starting bridge.."
cd $WORKDIR cd $WORKDIR
sudo -u "{{ compose_service_user }}" /usr/local/bin/docker-compose $composefileoverride down -v sudo -u "{{ compose_service_user }}" /usr/local/bin/docker-compose down -v
sudo -u "{{ compose_service_user }}" /usr/local/bin/docker-compose $composefileoverride rm -fv sudo -u "{{ compose_service_user }}" /usr/local/bin/docker-compose rm -fv
sudo -u "{{ compose_service_user }}" ORACLE_VALIDATOR_ADDRESS=$vaddr ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY=$vkey /usr/local/bin/docker-compose $composefileoverride up --detach sudo -u "{{ compose_service_user }}" \
TB_ORACLE_VALIDATOR_ADDRESS=$tbvaddr \
TB_ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY=$tbvkey \
AMB_ORACLE_VALIDATOR_ADDRESS=$ambvaddr \
AMB_ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY=$ambvkey \
/usr/local/bin/docker-compose up --detach
} }
stop(){ stop(){
echo "Stopping bridge.." echo "Stopping bridge.."
cd $WORKDIR cd $WORKDIR
sudo -u "{{ compose_service_user }}" /usr/local/bin/docker-compose $composefileoverride down -v sudo -u "{{ compose_service_user }}" \
/usr/local/bin/docker-compose down -v
sleep 2 sleep 2
} }
status(){ status(){
echo "Bridge status:" echo "Bridge status:"
cd $WORKDIR cd $WORKDIR
sudo -u "{{ compose_service_user }}" /usr/local/bin/docker-compose $composefileoverride ps sudo -u "{{ compose_service_user }}" \
/usr/local/bin/docker-compose ps
} }

@ -0,0 +1,334 @@
---
version: '2.4'
networks:
net_db_bridge_green: {driver: bridge}
net_db_bridge_red: {driver: bridge}
net_rabbit_bridge_green: {driver: bridge}
net_rabbit_bridge_red: {driver: bridge}
net_ne_bridge_red: {driver: bridge}
net_ne_bridge_green: {driver: bridge}
net_db_bridge_amb_green: {driver: bridge}
net_db_bridge_amb_red: {driver: bridge}
net_rabbit_bridge_amb_green: {driver: bridge}
net_rabbit_bridge_amb_red: {driver: bridge}
net_ne_bridge_amb_red: {driver: bridge}
net_ne_bridge_amb_green: {driver: bridge}
services:
bridge_affirmation:
cpus: 0.1
entrypoint: yarn watcher:affirmation-request
env_file: ./.env
environment: [NODE_ENV=production,
ORACLE_BRIDGE_MODE=ERC_TO_NATIVE,
'COMMON_HOME_BRIDGE_ADDRESS=${TB_HOME_BRIDGE_ADDRESS}',
'COMMON_FOREIGN_BRIDGE_ADDRESS=${TB_FOREIGN_BRIDGE_ADDRESS}',
'ORACLE_QUEUE_URL=${TB_QUEUE_URL}',
'ORACLE_REDIS_URL=${TB_REDIS_URL}',
'ORACLE_FOREIGN_START_BLOCK=${TB_FOREIGN_START_BLOCK}',
'ORACLE_VALIDATOR_ADDRESS=${TB_ORACLE_VALIDATOR_ADDRESS}']
image: poanetwork/tokenbridge-oracle:latest
mem_limit: 500m
networks: [net_db_bridge_green,
net_rabbit_bridge_green,
net_ne_bridge_green]
restart: unless-stopped
logging:
driver: syslog
options: {tag: '{{.Name}}/{{.ID}}'}
depends_on:
- redis
- rabbit
bridge_shutdown:
cpus: 0.1
mem_limit: 500m
image: poanetwork/tokenbridge-oracle:latest
env_file: ./.env
environment: [NODE_ENV=production,
ORACLE_BRIDGE_MODE=ERC_TO_NATIVE,
'ORACLE_REDIS_URL=${TB_REDIS_URL}',
'ORACLE_SHUTDOWN_SERVICE_POLLING_INTERVAL=${TB_SHUTDOWN_SERVICE_POLLING_INTERVAL}',
'ORACLE_SIDE_RPC_URL=${TB_SIDE_RPC_URL}',
'ORACLE_SHUTDOWN_CONTRACT_ADDRESS=${TB_SHUTDOWN_CONTRACT_ADDRESS}',
'ORACLE_SHUTDOWN_CONTRACT_METHOD=${TB_SHUTDOWN_CONTRACT_METHOD}']
restart: unless-stopped
entrypoint: yarn manager:shutdown
logging:
driver: syslog
options: {tag: '{{.Name}}/{{.ID}}'}
networks: [net_db_bridge_green]
depends_on:
- redis
bridge_request:
cpus: 0.1
entrypoint: yarn watcher:signature-request
env_file: ./.env
environment: [NODE_ENV=production,
ORACLE_BRIDGE_MODE=ERC_TO_NATIVE,
'COMMON_HOME_BRIDGE_ADDRESS=${TB_HOME_BRIDGE_ADDRESS}',
'COMMON_FOREIGN_BRIDGE_ADDRESS=${TB_FOREIGN_BRIDGE_ADDRESS}',
'ORACLE_QUEUE_URL=${TB_QUEUE_URL}',
'ORACLE_REDIS_URL=${TB_REDIS_URL}',
'ORACLE_HOME_START_BLOCK=${TB_HOME_START_BLOCK}',
'ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY=${TB_ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY}']
image: poanetwork/tokenbridge-oracle:latest
logging:
driver: syslog
options: {tag: '{{.Name}}/{{.ID}}'}
mem_limit: 500m
networks: [net_db_bridge_red,
net_rabbit_bridge_red,
net_ne_bridge_red]
restart: unless-stopped
depends_on:
- redis
- rabbit
bridge_senderhome:
cpus: 0.1
entrypoint: yarn sender:home
env_file: ./.env
environment: [NODE_ENV=production,
ORACLE_BRIDGE_MODE=ERC_TO_NATIVE,
'COMMON_HOME_BRIDGE_ADDRESS=${TB_HOME_BRIDGE_ADDRESS}',
'COMMON_FOREIGN_BRIDGE_ADDRESS=${TB_FOREIGN_BRIDGE_ADDRESS}',
'ORACLE_QUEUE_URL=${TB_QUEUE_URL}',
'ORACLE_REDIS_URL=${TB_REDIS_URL}',
'ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY=${TB_ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY}']
image: poanetwork/tokenbridge-oracle:latest
mem_limit: 500m
networks: [net_db_bridge_red,
net_rabbit_bridge_red,
net_ne_bridge_red]
restart: unless-stopped
logging:
driver: syslog
options: {tag: '{{.Name}}/{{.ID}}'}
depends_on:
- redis
- rabbit
bridge_transfer:
cpus: 0.1
entrypoint: yarn watcher:transfer
env_file: ./.env
environment: [NODE_ENV=production,
ORACLE_BRIDGE_MODE=ERC_TO_NATIVE,
'COMMON_HOME_BRIDGE_ADDRESS=${TB_HOME_BRIDGE_ADDRESS}',
'COMMON_FOREIGN_BRIDGE_ADDRESS=${TB_FOREIGN_BRIDGE_ADDRESS}',
'ORACLE_QUEUE_URL=${TB_QUEUE_URL}',
'ORACLE_REDIS_URL=${TB_REDIS_URL}',
'ORACLE_FOREIGN_START_BLOCK=${TB_FOREIGN_START_BLOCK}',
'ORACLE_VALIDATOR_ADDRESS=${TB_ORACLE_VALIDATOR_ADDRESS}']
logging:
driver: syslog
options: {tag: '{{.Name}}/{{.ID}}'}
image: poanetwork/tokenbridge-oracle:latest
mem_limit: 500m
networks: [net_db_bridge_green,
net_rabbit_bridge_green,
net_ne_bridge_green]
restart: unless-stopped
depends_on:
- redis
- rabbit
rabbit:
cpus: 0.3
environment: [RABBITMQ_NODENAME=node@rabbit]
hostname: rabbit
image: rabbitmq:3
mem_limit: 500m
networks: [net_rabbit_bridge_red,
net_rabbit_bridge_green]
restart: unless-stopped
volumes: ['~/bridge_data/rabbitmq:/var/lib/rabbitmq/mnesia']
logging:
driver: syslog
options: {tag: '{{.Name}}/{{.ID}}'}
redis:
command: [redis-server, --appendonly, 'yes']
cpus: 0.1
hostname: redis
image: redis:4
mem_limit: 500m
networks: [net_db_bridge_red,
net_db_bridge_green]
restart: unless-stopped
volumes: ['~/bridge_data/redis:/data']
logging:
driver: syslog
options: {tag: '{{.Name}}/{{.ID}}'}
ne:
container_name: ne
image: nethermind/nethermind:latest
networks: [net_ne_bridge_green,
net_ne_bridge_red,
net_ne_bridge_amb_green,
net_ne_bridge_amb_red]
command:
--config xdai
--baseDbPath /nethermind
--JsonRpc.Enabled true
--JsonRpc.Host 0.0.0.0
--Init.StoreReceipts false
--TxPool.Size 8192
--Pruning.Mode Hybrid
--Pruning.CacheMb 1024
--Sync.FastSync true
--Sync.FastBlocks true
--Sync.DownloadBodiesInFastSync false
--Sync.DownloadReceiptsInFastSync false
--Sync.DownloadHeadersInFastSync false
volumes:
- ~/ne-data/logs:/nethermind/logs
- ~/ne-data/nethermind_db:/nethermind/nethermind_db
expose:
- "8545"
ports:
- "30304:30303/tcp"
- "30304:30303/udp"
restart: unless-stopped
logging:
driver: "json-file"
options:
max-size: "100m"
max-file: "1"
bridge_amb_affirmation:
cpus: 0.1
entrypoint: yarn watcher:affirmation-request
env_file: ./.env
environment: [NODE_ENV=production,
ORACLE_BRIDGE_MODE=ARBITRARY_MESSAGE,
'COMMON_HOME_BRIDGE_ADDRESS=${AMB_HOME_BRIDGE_ADDRESS}',
'COMMON_FOREIGN_BRIDGE_ADDRESS=${AMB_FOREIGN_BRIDGE_ADDRESS}',
'ORACLE_QUEUE_URL=${AMB_QUEUE_URL}',
'ORACLE_REDIS_URL=${AMB_REDIS_URL}',
'ORACLE_FOREIGN_START_BLOCK=${AMB_FOREIGN_START_BLOCK}',
'ORACLE_VALIDATOR_ADDRESS=${AMB_ORACLE_VALIDATOR_ADDRESS}']
image: poanetwork/tokenbridge-oracle:latest
logging:
driver: syslog
options: {tag: '{{.Name}}/{{.ID}}'}
mem_limit: 500m
networks: [net_db_bridge_amb_green,
net_rabbit_bridge_amb_green,
net_ne_bridge_amb_green]
restart: unless-stopped
depends_on:
- redis-amb
- rabbit-amb
bridge_amb_information:
cpus: 0.1
entrypoint: yarn watcher:information-request
env_file: ./.env
environment: [NODE_ENV=production,
ORACLE_BRIDGE_MODE=ARBITRARY_MESSAGE,
'COMMON_HOME_BRIDGE_ADDRESS=${AMB_HOME_BRIDGE_ADDRESS}',
'COMMON_FOREIGN_BRIDGE_ADDRESS=${AMB_FOREIGN_BRIDGE_ADDRESS}',
'ORACLE_QUEUE_URL=${AMB_QUEUE_URL}',
'ORACLE_REDIS_URL=${AMB_REDIS_URL}',
'ORACLE_HOME_START_BLOCK=${AMB_HOME_START_BLOCK}',
'ORACLE_VALIDATOR_ADDRESS=${AMB_ORACLE_VALIDATOR_ADDRESS}']
image: poanetwork/tokenbridge-oracle:latest
logging:
driver: syslog
options: {tag: '{{.Name}}/{{.ID}}'}
mem_limit: 500m
networks: [net_db_bridge_amb_green,
net_rabbit_bridge_amb_green,
net_ne_bridge_amb_green]
restart: unless-stopped
depends_on:
- redis-amb
- rabbit-amb
bridge_amb_request:
cpus: 0.1
entrypoint: yarn watcher:signature-request
env_file: ./.env
environment: [NODE_ENV=production,
ORACLE_BRIDGE_MODE=ARBITRARY_MESSAGE,
'COMMON_HOME_BRIDGE_ADDRESS=${AMB_HOME_BRIDGE_ADDRESS}',
'COMMON_FOREIGN_BRIDGE_ADDRESS=${AMB_FOREIGN_BRIDGE_ADDRESS}',
'ORACLE_QUEUE_URL=${AMB_QUEUE_URL}',
'ORACLE_REDIS_URL=${AMB_REDIS_URL}',
'ORACLE_HOME_START_BLOCK=${AMB_HOME_START_BLOCK}',
'ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY=${AMB_ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY}']
image: poanetwork/tokenbridge-oracle:latest
logging:
driver: syslog
options: {tag: '{{.Name}}/{{.ID}}'}
mem_limit: 500m
networks: [net_db_bridge_amb_red,
net_rabbit_bridge_amb_red,
net_ne_bridge_amb_red]
restart: unless-stopped
depends_on:
- redis-amb
- rabbit-amb
bridge_amb_shutdown:
cpus: 0.1
entrypoint: yarn manager:shutdown
env_file: ./.env
environment: [NODE_ENV=production,
ORACLE_BRIDGE_MODE=ARBITRARY_MESSAGE,
'ORACLE_REDIS_URL=${AMB_REDIS_URL}',
'ORACLE_SHUTDOWN_SERVICE_POLLING_INTERVAL=${AMB_SHUTDOWN_SERVICE_POLLING_INTERVAL}',
'ORACLE_SIDE_RPC_URL=${AMB_SIDE_RPC_URL}',
'ORACLE_SHUTDOWN_CONTRACT_ADDRESS=${AMB_SHUTDOWN_CONTRACT_ADDRESS}',
'ORACLE_SHUTDOWN_CONTRACT_METHOD=${AMB_SHUTDOWN_CONTRACT_METHOD}']
image: poanetwork/tokenbridge-oracle:latest
logging:
driver: syslog
options: {tag: '{{.Name}}/{{.ID}}'}
mem_limit: 500m
networks: [net_db_bridge_amb_green]
restart: unless-stopped
depends_on:
- redis-amb
bridge_amb_senderhome:
cpus: 0.1
entrypoint: yarn sender:home
env_file: ./.env
environment: [NODE_ENV=production,
ORACLE_BRIDGE_MODE=ARBITRARY_MESSAGE,
'COMMON_HOME_BRIDGE_ADDRESS=${AMB_HOME_BRIDGE_ADDRESS}',
'COMMON_FOREIGN_BRIDGE_ADDRESS=${AMB_FOREIGN_BRIDGE_ADDRESS}',
'ORACLE_QUEUE_URL=${AMB_QUEUE_URL}',
'ORACLE_REDIS_URL=${AMB_REDIS_URL}',
'ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY=${AMB_ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY}']
image: poanetwork/tokenbridge-oracle:latest
logging:
driver: syslog
options: {tag: '{{.Name}}/{{.ID}}'}
mem_limit: 500m
networks: [net_db_bridge_amb_red,
net_rabbit_bridge_amb_red,
net_ne_bridge_amb_red]
restart: unless-stopped
depends_on:
- redis-amb
- rabbit-amb
rabbit-amb:
cpus: 0.3
environment: [RABBITMQ_NODENAME=node@rabbit-amb]
hostname: rabbit-amb
image: rabbitmq:3
logging:
driver: syslog
options: {tag: '{{.Name}}/{{.ID}}'}
mem_limit: 500m
networks: [net_rabbit_bridge_amb_red,
net_rabbit_bridge_amb_green]
restart: unless-stopped
volumes: ['~/amb_bridge_data/rabbitmq:/var/lib/rabbitmq/mnesia']
redis-amb:
command: [redis-server, --appendonly, 'yes']
cpus: 0.1
hostname: redis-amb
image: redis:4
logging:
driver: syslog
options: {tag: '{{.Name}}/{{.ID}}'}
mem_limit: 500m
networks: [net_db_bridge_amb_red,
net_db_bridge_amb_green]
restart: unless-stopped
volumes: ['~/amb_bridge_data/redis:/data']