From 034778ebeb735a8ab4ce6531a173762ad1b9e6a8 Mon Sep 17 00:00:00 2001 From: nabarun Date: Mon, 30 Sep 2024 04:24:38 +0000 Subject: [PATCH] Remove the use of L2 chain & contracts for running nitro nodes (#11) Part of [Create bridge channel in go-nitro](https://www.notion.so/Create-bridge-channel-in-go-nitro-22ce80a0d8ae4edb80020a8f250ea270) - Remove L2 stack setup from demo steps - Remove steps to deploy l2 contract Co-authored-by: Shreerang Kale Co-authored-by: Neeraj Reviewed-on: https://git.vdb.to/cerc-io/nitro-stack/pulls/11 --- nitro-bridge-demo.md | 140 +++--------------- nitro-node-demo.md | 4 +- .../compose/docker-compose-nitro-bridge.yml | 27 +--- .../compose/docker-compose-nitro-node.yml | 1 - .../config/go-nitro/run-bridge.sh | 20 +-- .../config/go-nitro/run-nitro-node.sh | 2 - .../nitro-contracts/deploy-l2-contracts.sh | 44 ------ .../container-build/cerc-go-nitro/Dockerfile | 2 +- stack-orchestrator/stacks/bridge/README.md | 9 +- .../stacks/nitro-contracts/README.md | 4 +- 10 files changed, 27 insertions(+), 226 deletions(-) delete mode 100755 stack-orchestrator/config/nitro-contracts/deploy-l2-contracts.sh diff --git a/nitro-bridge-demo.md b/nitro-bridge-demo.md index 3f1e523..7bddb26 100644 --- a/nitro-bridge-demo.md +++ b/nitro-bridge-demo.md @@ -2,24 +2,20 @@ ## Setup -### L1 eth and L2 Optimism Stacks +### eth-stack - Clone the stack repo: ```bash laconic-so fetch-stack git.vdb.to/cerc-io/fixturenet-eth-stacks --pull - laconic-so fetch-stack git.vdb.to/cerc-io/fixturenet-optimism-stack --pull ``` - Clone required repositories: ```bash - # L1 (fixturenet-eth) + # fixturenet-eth laconic-so --stack ~/cerc/fixturenet-eth-stacks/stack-orchestrator/stacks/fixturenet-eth setup-repositories --pull - # L2 (optimism) - laconic-so --stack ~/cerc/fixturenet-optimism-stack/stack/fixturenet-optimism setup-repositories --pull - # If this throws an error as a result of being already checked out to a branch/tag in a repo, remove all repositories from that stack and re-run the command # The repositories are located in $HOME/cerc by default ``` @@ -30,12 +26,9 @@ # Remove any older foundry image with `latest` tag docker rmi ghcr.io/foundry-rs/foundry:latest - # L1 (fixturenet-eth) + # fixturenet-eth laconic-so --stack ~/cerc/fixturenet-eth-stacks/stack-orchestrator/stacks/fixturenet-eth build-containers --force-rebuild - # L2 (optimism) - laconic-so --stack ~/cerc/fixturenet-optimism-stack/stack/fixturenet-optimism build-containers --force-rebuild - # If errors are thrown during build, old images used by this stack would have to be deleted ``` @@ -51,8 +44,6 @@ ```bash laconic-so --stack ~/cerc/fixturenet-eth-stacks/stack-orchestrator/stacks/fixturenet-eth deploy init --output fixturenet-eth-spec.yml - - laconic-so --stack ~/cerc/fixturenet-optimism-stack/stack/fixturenet-optimism deploy init --output fixturenet-optimism-spec.yml ``` - Configure ports: @@ -75,28 +66,11 @@ ... ``` - - `fixturenet-optimism-spec.yml` - - ```yml - ... - network: - ports: - op-geth: - - '9545:8545' - - '9546:8546' - ... - ``` - - Create deployments: Once you've made any needed changes to the spec files, create deployments from them: ```bash laconic-so --stack ~/cerc/fixturenet-eth-stacks/stack-orchestrator/stacks/fixturenet-eth deploy create --spec-file fixturenet-eth-spec.yml --deployment-dir fixturenet-eth-deployment - - laconic-so --stack ~/cerc/fixturenet-optimism-stack/stack/fixturenet-optimism deploy create --spec-file fixturenet-optimism-spec.yml --deployment-dir fixturenet-optimism-deployment - - # Place them both in the same namespace (cluster) - cp fixturenet-eth-deployment/deployment.yml fixturenet-optimism-deployment/deployment.yml ``` - Env configuration: @@ -107,7 +81,7 @@ EOF ``` -### Go-nitro +### go-nitro - Clone the stack repo: @@ -205,7 +179,7 @@ ## Run -- Start L1, L2 stacks: +- Start fixturenet eth stack: (run steps in directory where the stack deployments had been created) - Start `fixturenet-eth-deployment` deployment: @@ -228,80 +202,12 @@ laconic-so deployment --dir fixturenet-eth-deployment logs -f fixturenet-eth-geth-1 ``` - - Start `fixturenet-optimism-deployment` deployment: - - ```bash - laconic-so deployment --dir fixturenet-optimism-deployment start - ``` - - NOTE: The `fixturenet-optimism-contracts` service will configure and deploy the Optimism contracts to L1, exiting when complete. This may take several minutes; you can follow the progress by following the container's logs - - - Follow optimism contracts deployment logs: - - ```bash - laconic-so deployment --dir fixturenet-optimism-deployment logs -f fixturenet-optimism-contracts - ``` - - - Check L2 logs: - - ```bash - laconic-so deployment --dir fixturenet-optimism-deployment logs -f op-geth - - # Ensure new blocks are getting created - ``` - -- Send ETH from L1 to L2 (run steps in directory where the stack deployments had been created) - - - Get information about funded accounts on L1 - - ```bash - curl 127.0.0.1:9898/accounts.csv - ``` - - - Send some ETH from the desired account to the `L1StandardBridgeProxy` contract on L1 to bridge it to L2: - - Set the following variables: - - ```bash - L1_RPC=http://fixturenet-eth-geth-1:8545 - L2_RPC=http://op-geth:8545 - - DEPLOYMENT_CONTEXT=1212 - ACCOUNT=0xe6CE22afe802CAf5fF7d3845cec8c736ecc8d61F - ``` - - - Read the bridge contract address from the L1 deployment records in the `op-node` container: - - ```bash - BRIDGE=$(laconic-so deployment --dir fixturenet-optimism-deployment exec op-node "cat /l1-deployment/$DEPLOYMENT_CONTEXT-deploy.json" | jq -r .L1StandardBridgeProxy) - - # Get the funded account's pk - ACCOUNT_PK=$(laconic-so deployment --dir fixturenet-optimism-deployment exec op-node "jq -r '.AdminKey' /l2-accounts/accounts.json") - ``` - - - Use cast to send ETH to the bridge contract: - - ```bash - laconic-so deployment --dir fixturenet-eth-deployment exec foundry "cast send --from $ACCOUNT --value 1ether $BRIDGE --rpc-url $L1_RPC --private-key $ACCOUNT_PK" - ``` - - NOTE: This is for sending funds to the contracts deployer account which is also the Bridge node account - - - Allow a couple minutes for the bridge to complete - - - Check balance on L2 - - ```bash - laconic-so deployment --dir fixturenet-eth-deployment exec foundry "cast balance $ACCOUNT --rpc-url $L2_RPC" - - # 100000000000000000 - ``` - - Deploy L1 nitro contracts - Create a deployment spec-file for L1 nitro contract: ```bash - laconic-so --stack ~/cerc/nitro-stack/stack-orchestrator/stacks/nitro-contracts deploy init --output nitro-contracts-spec.yml --config "GETH_URL=http://host.docker.internal:8545,GETH_DEPLOYER_PK=888814df89c4358d7ddb3fa4b0213e7331239a80e1f013eaa7b2deca2a41a218,GETH_CHAIN_ID=1212,TOKEN_NAME=LaconicNetworkToken,TOKEN_SYMBOL=LNT,INITIAL_TOKEN_SUPPLY=129600" + laconic-so --stack ~/cerc/nitro-stack/stack-orchestrator/stacks/nitro-contracts deploy init --output nitro-contracts-spec.yml --config "GETH_URL=http://host.docker.internal:8545,GETH_DEPLOYER_PK=888814df89c4358d7ddb3fa4b0213e7331239a80e1f013eaa7b2deca2a41a218,GETH_CHAIN_ID=1212,TOKEN_NAME=TestToken,TOKEN_SYMBOL=TST,INITIAL_TOKEN_SUPPLY=129600" ``` - Create a deployment `nitro-contracts` from the spec file @@ -329,13 +235,12 @@ export NA_ADDRESS=$(laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "jq -r '.\"$GETH_CHAIN_ID\"[0].contracts.NitroAdjudicator.address' /app/deployment/nitro-addresses.json") export CA_ADDRESS=$(laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "jq -r '.\"$GETH_CHAIN_ID\"[0].contracts.ConsensusApp.address' /app/deployment/nitro-addresses.json") export VPA_ADDRESS=$(laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "jq -r '.\"$GETH_CHAIN_ID\"[0].contracts.VirtualPaymentApp.address' /app/deployment/nitro-addresses.json") - export L1_ASSET_ADDRESS=$(laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "jq -r '.\"$GETH_CHAIN_ID\"[0].contracts.Token.address' /app/deployment/nitro-addresses.json") ``` - Create a spec-file for the deployment, map container ports to host ports and set env variables: ```bash - laconic-so --stack ~/cerc/nitro-stack/stack-orchestrator/stacks/bridge deploy init --map-ports-to-host any-same --output bridge-nitro-spec.yml --config "NITRO_L1_CHAIN_URL=ws://host.docker.internal:8546,NITRO_L2_CHAIN_URL=ws://host.docker.internal:9546,NITRO_CHAIN_PK=888814df89c4358d7ddb3fa4b0213e7331239a80e1f013eaa7b2deca2a41a218,NITRO_SC_PK=0279651921cd800ac560c21ceea27aab0107b67daf436cdd25ce84cad30159b4,OPTIMISM_URL=http://host.docker.internal:9545,OPTIMISM_DEPLOYER_PK=$ACCOUNT_PK,TOKEN_NAME=LaconicNetworkToken,TOKEN_SYMBOL=LNT,INITIAL_TOKEN_SUPPLY=129600,NA_ADDRESS=$NA_ADDRESS,VPA_ADDRESS=$VPA_ADDRESS,CA_ADDRESS=$CA_ADDRESS,L1_ASSET_ADDRESS=$L1_ASSET_ADDRESS" + laconic-so --stack ~/cerc/nitro-stack/stack-orchestrator/stacks/bridge deploy init --map-ports-to-host any-same --output bridge-nitro-spec.yml --config "NITRO_CHAIN_URL=ws://host.docker.internal:8546,NITRO_CHAIN_PK=888814df89c4358d7ddb3fa4b0213e7331239a80e1f013eaa7b2deca2a41a218,NITRO_SC_PK=0279651921cd800ac560c21ceea27aab0107b67daf436cdd25ce84cad30159b4,TOKEN_NAME=TestToken,TOKEN_SYMBOL=TST,INITIAL_TOKEN_SUPPLY=129600,NA_ADDRESS=$NA_ADDRESS,VPA_ADDRESS=$VPA_ADDRESS,CA_ADDRESS=$CA_ADDRESS" ``` - Create a deployment from the spec file: @@ -349,20 +254,17 @@ ```bash laconic-so deployment --dir bridge-deployment start - # Check the l2 nitro contract deployments - laconic-so deployment --dir bridge-deployment logs l2-nitro-contracts -f - # Check the logs, ensure that the node is running laconic-so deployment --dir bridge-deployment logs nitro-bridge -f ``` -- Send custom tokens to Alice and Charlie on L1 +- Send custom tokens to Alice and Charlie - Export variables for L1 token address ```bash export GETH_CHAIN_ID="1212" - export L1_ASSET_ADDRESS=$(laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "jq -r '.\"$GETH_CHAIN_ID\"[0].contracts.Token.address' /app/deployment/nitro-addresses.json") + export ASSET_ADDRESS=$(laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "jq -r '.\"$GETH_CHAIN_ID\"[0].contracts.Token.address' /app/deployment/nitro-addresses.json") export A_CHAIN_ADDRESS="0xe22AD83A0dE117bA0d03d5E94Eb4E0d80a69C62a" export C_CHAIN_ADDRESS="0xf1ac8Dd1f6D6F5c0dA99097c57ebF50CD99Ce293" @@ -372,10 +274,10 @@ ```bash # Send tokens to Alice - laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "cd packages/nitro-protocol && yarn hardhat transfer --contract $L1_ASSET_ADDRESS --to $A_CHAIN_ADDRESS --amount 1000 --network geth" + laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "cd packages/nitro-protocol && yarn hardhat transfer --contract $ASSET_ADDRESS --to $A_CHAIN_ADDRESS --amount 1000 --network geth" #Send tokens to Charlie - laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "cd packages/nitro-protocol && yarn hardhat transfer --contract $L1_ASSET_ADDRESS --to $C_CHAIN_ADDRESS --amount 1000 --network geth" + laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "cd packages/nitro-protocol && yarn hardhat transfer --contract $ASSET_ADDRESS --to $C_CHAIN_ADDRESS --amount 1000 --network geth" ``` - Get the deployed nitro contract addresses (run in the directory where the deployments were created): @@ -386,10 +288,6 @@ export NA_ADDRESS=$(laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "jq -r '.\"$GETH_CHAIN_ID\"[0].contracts.NitroAdjudicator.address' /app/deployment/nitro-addresses.json") export CA_ADDRESS=$(laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "jq -r '.\"$GETH_CHAIN_ID\"[0].contracts.ConsensusApp.address' /app/deployment/nitro-addresses.json") export VPA_ADDRESS=$(laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "jq -r '.\"$GETH_CHAIN_ID\"[0].contracts.VirtualPaymentApp.address' /app/deployment/nitro-addresses.json") - - # Contract address of bridge - export OPTIMISM_CHAIN_ID="42069" - export BRIDGE_ADDRESS=$(laconic-so deployment --dir bridge-deployment exec nitro-bridge "jq -r '.\"$OPTIMISM_CHAIN_ID\"[0].contracts.Bridge.address' /app/deployment/nitro-addresses.json") ``` ```bash @@ -457,7 +355,6 @@ NA_ADDRESS=$NA_ADDRESS VPA_ADDRESS=$VPA_ADDRESS CA_ADDRESS=$CA_ADDRESS - BRIDGE_ADDRESS=$BRIDGE_ADDRESS NITRO_BOOTPEERS=/dns4/host.docker.internal/tcp/3006/p2p/16Uiu2HAmJDxLM8rSybX78FH51iZq9PdrwCoCyyHRBCndNzcAYMes NITRO_EXT_MULTIADDR=/dns4/host.docker.internal/tcp/3009 NITRO_L2=true @@ -480,7 +377,6 @@ NA_ADDRESS=$NA_ADDRESS VPA_ADDRESS=$VPA_ADDRESS CA_ADDRESS=$CA_ADDRESS - BRIDGE_ADDRESS=$BRIDGE_ADDRESS NITRO_BOOTPEERS=/dns4/host.docker.internal/tcp/3006/p2p/16Uiu2HAmJDxLM8rSybX78FH51iZq9PdrwCoCyyHRBCndNzcAYMes NITRO_EXT_MULTIADDR=/dns4/host.docker.internal/tcp/3010 NITRO_L2=true @@ -542,13 +438,13 @@ ```bash export BRIDGE_NITRO_ADDRESS=0xBBB676f9cFF8D242e9eaC39D063848807d3D1D94 export GETH_CHAIN_ID="1212" - export L1_ASSET_ADDRESS=$(laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "jq -r '.\"$GETH_CHAIN_ID\"[0].contracts.Token.address' /app/deployment/nitro-addresses.json") + export ASSET_ADDRESS=$(laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "jq -r '.\"$GETH_CHAIN_ID\"[0].contracts.Token.address' /app/deployment/nitro-addresses.json") ``` - Create ledger channel between A and Bridge with custom token ```bash - laconic-so deployment --dir l1alice-nitro-deployment exec nitro-rpc-client "nitro-rpc-client direct-fund $BRIDGE_NITRO_ADDRESS --assetAddress $L1_ASSET_ADDRESS --alphaAmount 1000000 --betaAmount 1000000 -p 4005 -h nitro-node" + laconic-so deployment --dir l1alice-nitro-deployment exec nitro-rpc-client "nitro-rpc-client direct-fund $BRIDGE_NITRO_ADDRESS --assetAddress $ASSET_ADDRESS --alphaAmount 1000000 --betaAmount 1000000 -p 4005 -h nitro-node" # Expected Output: # Objective started DirectFunding-0x161d289a50222caa781db215bb82a3ede4f557217742245525b8e8cbff04ec21 @@ -592,7 +488,7 @@ - Create ledger channel between C and Bridge with custom token ```bash - laconic-so deployment --dir l1charlie-nitro-deployment exec nitro-rpc-client "nitro-rpc-client direct-fund $BRIDGE_NITRO_ADDRESS --assetAddress $L1_ASSET_ADDRESS --alphaAmount 1000000 --betaAmount 1000000 -p 4005 -h nitro-node" + laconic-so deployment --dir l1charlie-nitro-deployment exec nitro-rpc-client "nitro-rpc-client direct-fund $BRIDGE_NITRO_ADDRESS --assetAddress $ASSET_ADDRESS --alphaAmount 1000000 --betaAmount 1000000 -p 4005 -h nitro-node" # Expected Output: # Objective started DirectFunding-0x69a3f09b6f4f94f033cf084e6e4a9453438c45b43606e9a95f5434f4c6527543 @@ -882,20 +778,18 @@ sudo rm -rf nitro-contracts-deployment ``` -- Clean up L1 and L2 deployments: - - Stop deployment and remove volumes: +- Clean up eth-stack deployment: + - Stop deployment and remove volume: ```bash # Run where deployments are created - laconic-so deployment --dir fixturenet-optimism-deployment stop --delete-volumes laconic-so deployment --dir fixturenet-eth-deployment stop --delete-volumes ``` - - Clear deployments: + - Clear deployment: ```bash # Run where deployments are created - sudo rm -rf fixturenet-optimism-deployment sudo rm -rf fixturenet-eth-deployment ``` diff --git a/nitro-node-demo.md b/nitro-node-demo.md index 57298ea..fcbc205 100644 --- a/nitro-node-demo.md +++ b/nitro-node-demo.md @@ -128,7 +128,7 @@ - Create a deployment spec-file for nitro contract: ```bash - laconic-so --stack ~/cerc/nitro-stack/stack-orchestrator/stacks/nitro-contracts deploy init --output nitro-contracts-spec.yml --config "GETH_URL=http://host.docker.internal:8545,GETH_DEPLOYER_PK=888814df89c4358d7ddb3fa4b0213e7331239a80e1f013eaa7b2deca2a41a218,GETH_CHAIN_ID=1212,TOKEN_NAME=LaconicNetworkToken,TOKEN_SYMBOL=LNT,INITIAL_TOKEN_SUPPLY=129600" + laconic-so --stack ~/cerc/nitro-stack/stack-orchestrator/stacks/nitro-contracts deploy init --output nitro-contracts-spec.yml --config "GETH_URL=http://host.docker.internal:8545,GETH_DEPLOYER_PK=888814df89c4358d7ddb3fa4b0213e7331239a80e1f013eaa7b2deca2a41a218,GETH_CHAIN_ID=1212,TOKEN_NAME=TestToken,TOKEN_SYMBOL=TST,INITIAL_TOKEN_SUPPLY=129600" ``` - Create a deployment `nitro-contracts` from the spec file @@ -319,7 +319,7 @@ - Create virtual channel from Alice to Charlie ```bash - laconic-so deployment --dir alice-nitro-deployment exec nitro-rpc-client "nitro-rpc-client virtual-fund $COUNTERPARTY --amount 1000 -p 4005 -h nitro-node" + laconic-so deployment --dir alice-nitro-deployment exec nitro-rpc-client "nitro-rpc-client virtual-fund $COUNTERPARTY --amount 1000 -p 4005 -h nitro-node" ``` - Set the payment channel id in a variable diff --git a/stack-orchestrator/compose/docker-compose-nitro-bridge.yml b/stack-orchestrator/compose/docker-compose-nitro-bridge.yml index 131a4a5..5eb5a11 100644 --- a/stack-orchestrator/compose/docker-compose-nitro-bridge.yml +++ b/stack-orchestrator/compose/docker-compose-nitro-bridge.yml @@ -1,38 +1,13 @@ name: nitro-bridge services: - l2-nitro-contracts: - image: cerc/nitro-client:local - restart: on-failure - environment: - CERC_SCRIPT_DEBUG: ${CERC_SCRIPT_DEBUG} - OPTIMISM_DEPLOYER_PK: ${OPTIMISM_DEPLOYER_PK} - OPTIMISM_CHAIN_ID: ${OPTIMISM_CHAIN_ID:-42069} - OPTIMISM_URL: ${OPTIMISM_URL} - TOKEN_NAME: ${TOKEN_NAME} - TOKEN_SYMBOL: ${TOKEN_SYMBOL} - INITIAL_TOKEN_SUPPLY: ${INITIAL_TOKEN_SUPPLY} - DISABLE_DETERMINISTIC_DEPLOYMENT: ${DISABLE_DETERMINISTIC_DEPLOYMENT:-true} - L1_ASSET_ADDRESS: ${L1_ASSET_ADDRESS} - volumes: - - nitro_deployment:/app/deployment - - ../config/nitro-contracts/deploy-l2-contracts.sh:/app/deploy-l2-contracts.sh - command: ["bash", "-c", "/app/deploy-l2-contracts.sh"] - extra_hosts: - - "host.docker.internal:host-gateway" - nitro-bridge: image: cerc/go-nitro:local hostname: nitro-bridge restart: unless-stopped - depends_on: - l2-nitro-contracts: - condition: service_started environment: CERC_SCRIPT_DEBUG: ${CERC_SCRIPT_DEBUG} - OPTIMISM_CHAIN_ID: ${OPTIMISM_CHAIN_ID:-42069} - NITRO_L1_CHAIN_URL: ${NITRO_L1_CHAIN_URL} - NITRO_L2_CHAIN_URL: ${NITRO_L2_CHAIN_URL} + NITRO_CHAIN_URL: ${NITRO_CHAIN_URL} NITRO_CHAIN_PK: ${NITRO_CHAIN_PK} NITRO_SC_PK: ${NITRO_SC_PK} NITRO_L1_MSG_PORT: ${NITRO_L1_MSG_PORT:-3005} diff --git a/stack-orchestrator/compose/docker-compose-nitro-node.yml b/stack-orchestrator/compose/docker-compose-nitro-node.yml index c8e5cf6..ad5f04b 100644 --- a/stack-orchestrator/compose/docker-compose-nitro-node.yml +++ b/stack-orchestrator/compose/docker-compose-nitro-node.yml @@ -19,7 +19,6 @@ services: NA_ADDRESS: ${NA_ADDRESS} CA_ADDRESS: ${CA_ADDRESS} VPA_ADDRESS: ${VPA_ADDRESS} - BRIDGE_ADDRESS: ${BRIDGE_ADDRESS} NITRO_PUBLIC_RPC_HOST: nitro-node entrypoint: ["bash", "-c", "/app/run-nitro-node.sh"] volumes: diff --git a/stack-orchestrator/config/go-nitro/run-bridge.sh b/stack-orchestrator/config/go-nitro/run-bridge.sh index 9f9d7e6..06dea26 100755 --- a/stack-orchestrator/config/go-nitro/run-bridge.sh +++ b/stack-orchestrator/config/go-nitro/run-bridge.sh @@ -6,12 +6,10 @@ if [ -n "$CERC_SCRIPT_DEBUG" ]; then fi nitro_addresses_file="/app/deployment/nitro-addresses.json" -bridge_assets_map_file="/app/deployment/bridge-assets-map.toml" bridge_config_file="/app/bridge.toml" echo "Using the following environment variables:" -echo "NITRO_L1_CHAIN_URL: ${NITRO_L1_CHAIN_URL}" -echo "NITRO_L2_CHAIN_URL: ${NITRO_L2_CHAIN_URL}" +echo "NITRO_CHAIN_URL: ${NITRO_CHAIN_URL}" echo "NITRO_CHAIN_PK: ${NITRO_CHAIN_PK}" echo "NITRO_SC_PK: ${NITRO_SC_PK}" echo "NITRO_L1_MSG_PORT: ${NITRO_L1_MSG_PORT}" @@ -23,15 +21,6 @@ echo "NITRO_L2_EXT_MULTIADDR: ${NITRO_L2_EXT_MULTIADDR}" echo "NA_ADDRESS: ${NA_ADDRESS}" echo "CA_ADDRESS: ${CA_ADDRESS}" echo "VPA_ADDRESS: ${VPA_ADDRESS}" -echo "OPTIMISM_CHAIN_ID: ${OPTIMISM_CHAIN_ID}" - -echo "Waiting for $bridge_assets_map_file to be ready" - -while [ ! -e "$bridge_assets_map_file" ]; do - sleep 3 -done - -echo "File $bridge_assets_map_file found" # Create required certs ./create-certs.sh @@ -40,23 +29,18 @@ echo "File $bridge_assets_map_file found" cat < "$bridge_config_file" chainpk = "$NITRO_CHAIN_PK" statechannelpk = "$NITRO_SC_PK" -l1chainurl = "$NITRO_L1_CHAIN_URL" -l2chainurl = "$NITRO_L2_CHAIN_URL" +l1chainurl = "$NITRO_CHAIN_URL" nodel1msgport = $NITRO_L1_MSG_PORT nodel2msgport = $NITRO_L2_MSG_PORT rpcport = $NITRO_RPC_PORT bridgepublicip = "$NITRO_PUBLIC_P2P_HOST" nodel1ExtMultiAddr = "$NITRO_L1_EXT_MULTIADDR" nodel2ExtMultiAddr = "$NITRO_L2_EXT_MULTIADDR" -assetmapfilepath = "$bridge_assets_map_file" naaddress = "${NA_ADDRESS}" vpaaddress = "${VPA_ADDRESS}" caaddress = "${CA_ADDRESS}" EOF -# Export bridge address -export BRIDGE_ADDRESS=$(jq -r ".\"$OPTIMISM_CHAIN_ID\"[0].contracts.Bridge.address" ${nitro_addresses_file}) - # Start bridge echo "Starting nitro-bridge" ./nitro-bridge -config $bridge_config_file diff --git a/stack-orchestrator/config/go-nitro/run-nitro-node.sh b/stack-orchestrator/config/go-nitro/run-nitro-node.sh index 2dd62c6..64edda7 100755 --- a/stack-orchestrator/config/go-nitro/run-nitro-node.sh +++ b/stack-orchestrator/config/go-nitro/run-nitro-node.sh @@ -22,7 +22,6 @@ echo "Using Nitro contract addresses:" echo "NA_ADDRESS: ${NA_ADDRESS}" echo "CA_ADDRESS: ${CA_ADDRESS}" echo "VPA_ADDRESS: ${VPA_ADDRESS}" -echo "BRIDGE_ADDRESS: ${BRIDGE_ADDRESS}" # Create required certs ./create-certs.sh @@ -43,7 +42,6 @@ l2 = ${NITRO_L2} naaddress = "${NA_ADDRESS}" vpaaddress = "${VPA_ADDRESS}" caaddress = "${CA_ADDRESS}" -bridgeaddress = "${BRIDGE_ADDRESS}" EOF # Start the node diff --git a/stack-orchestrator/config/nitro-contracts/deploy-l2-contracts.sh b/stack-orchestrator/config/nitro-contracts/deploy-l2-contracts.sh deleted file mode 100755 index 015ac92..0000000 --- a/stack-orchestrator/config/nitro-contracts/deploy-l2-contracts.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash - -set -e -if [ -n "$CERC_SCRIPT_DEBUG" ]; then - set -x -fi - -addresses_deployment_file="packages/nitro-protocol/addresses.json" -nitro_addresses_file="/app/deployment/nitro-addresses.json" -bridge_assets_map_file="/app/deployment/bridge-assets-map.toml" - -echo "Using the following environment variables:" -echo "OPTIMISM_URL: ${OPTIMISM_URL}" -echo "OPTIMISM_CHAIN_ID: ${OPTIMISM_CHAIN_ID}" -echo "OPTIMISM_DEPLOYER_PK: ${OPTIMISM_DEPLOYER_PK}" -echo "TOKEN_NAME: ${TOKEN_NAME}" -echo "TOKEN_SYMBOL: ${TOKEN_SYMBOL}" -echo "INITIAL_TOKEN_SUPPLY: ${INITIAL_TOKEN_SUPPLY}" -echo "DISABLE_DETERMINISTIC_DEPLOYMENT: ${DISABLE_DETERMINISTIC_DEPLOYMENT}" -echo "L1_ASSET_ADDRESS: ${L1_ASSET_ADDRESS}" - -# Check if L2 chain id key is present for L2 deployment -if [ -f "$nitro_addresses_file" ] && jq -e "has(\"$OPTIMISM_CHAIN_ID\")" ${nitro_addresses_file} > /dev/null; then - echo "L2 addresses found in ${nitro_addresses_file}, skipping deployment" -else - # Deploy Nitro contracts - yarn contracts:deploy-optimism - - # Deploy custom token - yarn contracts:deploy-token-optimism - - cp ${addresses_deployment_file} ${nitro_addresses_file} -fi - -L2_ASSET_ADDRESS=$(jq -r ".\"$OPTIMISM_CHAIN_ID\"[0].contracts.Token.address" ${nitro_addresses_file}) - -# Deploy custom tokens and create bridge-assets-map.toml -cat < "$bridge_assets_map_file" -[[assets]] -l1AssetAddress = "$L1_ASSET_ADDRESS" -l2AssetAddress = "$L2_ASSET_ADDRESS" -EOF - -echo "Done" diff --git a/stack-orchestrator/container-build/cerc-go-nitro/Dockerfile b/stack-orchestrator/container-build/cerc-go-nitro/Dockerfile index 7b2bac7..af75157 100644 --- a/stack-orchestrator/container-build/cerc-go-nitro/Dockerfile +++ b/stack-orchestrator/container-build/cerc-go-nitro/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.21-bullseye AS builder +FROM golang:1.22-bullseye AS builder # Copy files into image WORKDIR /app diff --git a/stack-orchestrator/stacks/bridge/README.md b/stack-orchestrator/stacks/bridge/README.md index 8aae3c0..c46d0c2 100644 --- a/stack-orchestrator/stacks/bridge/README.md +++ b/stack-orchestrator/stacks/bridge/README.md @@ -52,13 +52,8 @@ ```bash GETH_CHAIN_ID=1212 - OPTIMISM_CHAIN_ID=42069 - - # URL endpoint of the L1 chain (Example: ws://host.docker.internal:8545) - NITRO_L1_CHAIN_URL= - - # URL endpoint of the L2 chain (Example: ws://host.docker.internal:8546) - NITRO_L2_CHAIN_URL= + # URL endpoint of the chain (Example: ws://host.docker.internal:8545) + NITRO_CHAIN_URL= # Private key of the account on chain that is used for funding channels NITRO_CHAIN_PK: ${NITRO_CHAIN_PK} diff --git a/stack-orchestrator/stacks/nitro-contracts/README.md b/stack-orchestrator/stacks/nitro-contracts/README.md index 9672d92..8dc0e92 100644 --- a/stack-orchestrator/stacks/nitro-contracts/README.md +++ b/stack-orchestrator/stacks/nitro-contracts/README.md @@ -45,9 +45,9 @@ # Private key of the account on chain that is used for deploying L1 contracts GETH_DEPLOYER_PK= - TOKEN_NAME=LaconicNetworkToken + TOKEN_NAME=TestToken - TOKEN_SYMBOL=LNT + TOKEN_SYMBOL=TST INITIAL_TOKEN_SUPPLY=129600 ```