.. | ||
templates/specs | ||
.gitignore | ||
bridge-vars.example.yml | ||
README.md | ||
run-nitro-bridge.yml | ||
setup-vars.yml |
nitro-bridge-setup
Setup Ansible
To get started, follow the installation guide to setup ansible on your machine
Setup and Run Nitro Bridge on Local Host
The following commands have to be executed in the nitro-bridge-setup
directory:
-
Copy the
bridge-vars.example.yml
vars file:cp bridge-vars.example.yml bridge-vars.yml
-
Edit
bridge-vars.yml
with the required values:# L1 WS endpoint nitro_l1_chain_url: "" # L2 WS endpoint nitro_l2_chain_url: "" # Private key for the bridge's nitro address nitro_sc_pk: "" # Private key for a funded account on L1 # This account should have tokens for funding Nitro channels nitro_chain_pk: "" # L2 RPC endpoint optimism_url: "" # Private key for a funded account on L2 to use for contracts deployment on L2 # Use the same account for L1 and L2 deployments optimism_deployer_pk: "" # Custom L2 token to be deployed token_name: "LaconicNetworkToken" token_symbol: "LNT" intial_token_supply: "129600" # Addresses of the deployed nitro contracts na_address: "" vpa_address: "" ca_address: "" # Address of deployed custom L1 token l1_asset_address: ""
-
To setup and run nitro bridge locally, execute the
run-nitro-bridge.yml
Ansible playbook:LANG=en_US.utf8 ansible-playbook run-nitro-bridge.yml --extra-vars='{ "target_host": "localhost"}' -kK --user $USER
NOTE: By default, deployments are created in an
out
directory. To change this location, update thenitro_directory
variable in the setup-vars.yml file. -
For skipping container build, set
"skip_container_build" : true
in the--extra-vars
parameter:LANG=en_US.utf8 ansible-playbook run-nitro-bridge.yml --extra-vars='{"target_host" : "localhost", "skip_container_build": true}' -kK --user $USER
Setup and Run Nitro Bridge on Remote Host
To run the playbook on a remote host:
-
Create a new
hosts.ini
file:cp ../hosts.example.ini hosts.ini
-
Edit the
hosts.ini
file to run the playbook on a remote machine:[<deployment_host>] <host_name> ansible_host=<target_ip> ansible_user=<ssh_user> ansible_ssh_common_args='-o ForwardAgent=yes'
- Replace
<deployment_host>
withnitro_host
- Replace
<host_name>
with the alias of your choice - Replace
<target_ip>
with the IP address or hostname of the target machine - Replace
<ssh_user>
with the SSH username (e.g., dev, ubuntu)
- Replace
-
Verify that you are able to connect to the host using the following command
ansible all -m ping -i hosts.ini -k # Expected output: # <host_name> | SUCCESS => { # "ansible_facts": { # "discovered_interpreter_python": "/usr/bin/python3.10" # }, # "changed": false, # "ping": "pong" # }
-
Copy and edit the
bridge-vars.yml
file as described in the Local Setup section. -
Execute the
run-nitro-bridge.yml
Ansible playbook for remote deployment:LANG=en_US.utf8 ansible-playbook -i hosts.ini run-nitro-bridge.yml --extra-vars='{ "target_host": "nitro_host"}' -kK
-
For skipping container build, run with
"skip_container_build" : true
in the--extra-vars
parameter:LANG=en_US.utf8 ansible-playbook -i hosts.ini run-nitro-bridge.yml --extra-vars='{ "target_host": "nitro_host", "skip_container_build": true }' --user $USER -kK
Check Deployment Status
-
Run the following command in the directory where the bridge-deployment is created:
-
Check logs for deployments:
# Check the bridge deployment logs, ensure that the node is running laconic-so deployment --dir bridge-deployment logs nitro-bridge -f
-
Get Contract Addresses
-
Run the following commands in the directory where the deployments are created:
-
Get addresses of L2 nitro contracts:
laconic-so deployment --dir bridge-deployment exec nitro-bridge "cat /app/deployment/nitro-addresses.json"
-