| .. | ||
| 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.ymlvars file:cp bridge-vars.example.yml bridge-vars.yml -
Edit
bridge-vars.ymlwith 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.ymlAnsible playbook:LANG=en_US.utf8 ansible-playbook run-nitro-bridge.yml --extra-vars='{ "target_host": "localhost"}' -kK --user $USERNOTE: By default, deployments are created in an
outdirectory. To change this location, update thenitro_directoryvariable in the setup-vars.yml file. -
For skipping container build, set
"skip_container_build" : truein the--extra-varsparameter: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.inifile:cp ../hosts.example.ini hosts.ini -
Edit the
hosts.inifile 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.ymlfile as described in the Local Setup section. -
Execute the
run-nitro-bridge.ymlAnsible 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" : truein the--extra-varsparameter: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"
-