TB and AMB combined on the deployment stage
This commit is contained in:
parent
5bc562e810
commit
0de29b5847
@ -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,12 +1,12 @@
|
|||||||
## 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 }}
|
||||||
|
|
||||||
## Foreign contract
|
## Foreign contract
|
||||||
@ -14,7 +14,8 @@ 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_TX_REDUNDANCY | default('') != '' %}
|
{% if ORACLE_TX_REDUNDANCY | default('') != '' %}
|
||||||
@ -52,8 +53,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 +64,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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
337
oracle/docker-compose-combined.yml
Normal file
337
oracle/docker-compose-combined.yml
Normal file
@ -0,0 +1,337 @@
|
|||||||
|
---
|
||||||
|
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_parity_bridge_red: {driver: bridge}
|
||||||
|
net_parity_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_parity_bridge_amb_red: {driver: bridge}
|
||||||
|
net_parity_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_parity_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_parity_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_parity_bridge_red]
|
||||||
|
restart: unless-stopped
|
||||||
|
logging:
|
||||||
|
driver: syslog
|
||||||
|
options: {tag: '{{.Name}}/{{.ID}}'}
|
||||||
|
networks: []
|
||||||
|
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_parity_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}}'}
|
||||||
|
|
||||||
|
parity:
|
||||||
|
container_name: parity
|
||||||
|
image: openethereum/openethereum:latest
|
||||||
|
networks: [net_parity_bridge_green,
|
||||||
|
net_parity_bridge_red,
|
||||||
|
net_parity_bridge_amb_green,
|
||||||
|
net_parity_bridge_amb_red]
|
||||||
|
user: root
|
||||||
|
command:
|
||||||
|
--config=/root/data/config.toml
|
||||||
|
--base-path=/root/data
|
||||||
|
--jsonrpc-port=8545
|
||||||
|
--jsonrpc-cors=all
|
||||||
|
--jsonrpc-interface=all
|
||||||
|
--jsonrpc-hosts=all
|
||||||
|
--jsonrpc-apis=web3,eth,net,parity
|
||||||
|
--max-peers=25
|
||||||
|
--tx-time-limit=1000
|
||||||
|
volumes:
|
||||||
|
- ~/chaindata:/root/data
|
||||||
|
expose:
|
||||||
|
- "8545"
|
||||||
|
ports:
|
||||||
|
- "30303:30303/tcp"
|
||||||
|
- "30303:30303/udp"
|
||||||
|
restart: unless-stopped
|
||||||
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-size: "100m"
|
||||||
|
max-file: "1"
|
||||||
|
# CMD curl -f --retry 6 --max-time 5 --retry-delay 10 --retry-max-time 60 "http://localhost:8080/health" || bash -c 'kill -s 15 -1 && (sleep 10; kill -s 9 -1)'
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "sh", "-c", "curl -f --connect-timeout 1 --max-time 2 --retry 2 --retry-delay 3 --retry-max-time 15 -X POST -H 'Content-Type: application/json' --data '{\"jsonrpc\":\"2.0\",\"method\":\"eth_chainId\",\"id\":1}' http://localhost:8545/ || sh -c 'pkill -15 openethereum && (sleep 10; pkill -9 openethereum)'"]
|
||||||
|
interval: 60s
|
||||||
|
timeout: 30s
|
||||||
|
start_period: 60s
|
||||||
|
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_parity_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_parity_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_parity_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_parity_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']
|
Loading…
Reference in New Issue
Block a user