diff --git a/testnet-onboarding-demo.md b/testnet-onboarding-demo.md index e471ead..5b4f3af 100644 --- a/testnet-onboarding-demo.md +++ b/testnet-onboarding-demo.md @@ -38,7 +38,7 @@ ``` 6. Exit project repo - + ``` cd ../ ``` @@ -77,7 +77,7 @@ ``` 5. Exit project repo - + ``` cd ../ ``` @@ -86,12 +86,13 @@ - Follow these steps to install laconic-so: -### Fixturenet laconicd Stack +### Fixturenet laconicd Stack and laconic-faucet 1. Clone the stack repos: ```bash laconic-so fetch-stack git.vdb.to/cerc-io/fixturenet-laconicd-stack --git-ssh --pull + laconic-so fetch-stack git.vdb.to/cerc-io/testnet-laconicd-stack --git-ssh --pull ``` 2. Clone required repositories: @@ -99,6 +100,7 @@ ```bash # laconicd laconic-so --stack ~/cerc/fixturenet-laconicd-stack/stack-orchestrator/stacks/fixturenet-laconicd setup-repositories --git-ssh --pull + laconic-so --stack ~/cerc/testnet-laconicd-stack/stack-orchestrator/stacks/laconic-faucet setup-repositories --git-ssh --pull ``` 3. Build the container images: @@ -106,6 +108,7 @@ ```bash # laconicd laconic-so --stack ~/cerc/fixturenet-laconicd-stack/stack-orchestrator/stacks/fixturenet-laconicd build-containers --force-rebuild + laconic-so --stack ~/cerc/testnet-laconicd-stack/stack-orchestrator/stacks/laconic-faucet build-containers --force-rebuild ``` 4. Create a deployment for stage 0: @@ -167,12 +170,36 @@ - '1317:1317' ``` - - Create deployment from the spec files: + - Create a deployment from the spec files: ```bash laconic-so --stack ~/cerc/fixturenet-laconicd-stack/stack-orchestrator/stacks/fixturenet-laconicd deploy create --spec-file stage1-spec.yml --deployment-dir stage1-deployment ``` +6. Create a deployment for laconic-faucet: + - Create spec file for the deployment: + + ```bash + laconic-so --stack ~/cerc/testnet-laconicd-stack/stack-orchestrator/stacks/laconic-faucet deploy init --output laconic-faucet-spec.yml + ``` + + - Edit `network` in the spec file to map container port to host port as required: + + ```bash + # laconic-faucet-spec.yml + ... + network: + ports: + laconic-faucet: + - '4000:3000' + ``` + + - Create a deployment from the spec file: + + ```bash + laconic-so --stack ~/cerc/testnet-laconicd-stack/stack-orchestrator/stacks/laconic-faucet deploy create --spec-file laconic-faucet-spec.yml --deployment-dir laconic-faucet-deployment + ``` + ### L1 eth and L2 optimism stacks 1. Clone the stack repo: @@ -331,13 +358,13 @@ - Check status of L1 - Run command in intervals of 3 seconds to check new blocks are created - + ```bash laconic-so deployment --dir fixturenet-eth-deployment exec foundry "cast block-number" ``` - Check geth logs to ensure that new blocks are getting created - + ```bash laconic-so deployment --dir fixturenet-eth-deployment logs -f fixturenet-eth-geth-1 ``` @@ -424,7 +451,7 @@ # Use same account on both Geth and Optimism export OPTIMISM_DEPLOYER_PK=$GETH_DEPLOYER_PK ``` - + - Export variables for token name, token symbol and initial supply ```bash export TOKEN_NAME="LaconicNetworkToken" @@ -530,11 +557,11 @@ NOTE: Ignore source map warnings in the terminal - Start `laconic-wallet` android app (run steps in laconic-wallet repo) - + - Set up the Android device - For a physical device, refer to the [React Native documentation for running on a physical device](https://reactnative.dev/docs/running-on-device) - For a virtual device, continue with the steps - + - Setup port forwarding for your device using the following command: ``` @@ -579,28 +606,29 @@ laconic-so deployment --dir stage0-deployment logs laconicd -f ``` +- Run laconic-faucet: + + - Get private key of funded faucet account from laconicd + + ```bash + laconic-so deployment --dir stage0-deployment exec laconicd "laconicd keys export alice --keyring-backend test --unarmored-hex --unsafe" + ``` + + - In `laconic-faucet-deployment/config.env` file, set the following env variables: + + ```bash + # Private key of a funded faucet account + CERC_FAUCET_KEY= + ``` + + - Start the stack for laconic-faucet + + ```bash + laconic-so deployment --dir laconic-faucet-deployment start + ``` + - In the wallet, add 2 accounts (Alice and Charlie) for both the networks (ethereum and laconicd) by selecting the network and clicking on `Add account` -- Fund accounts on laconicd: - - Export laconic addresses of Alice and Charlie (take the addresses from laconic wallet): - - ```bash - export A_LACONIC_ADDRESS= - export C_LACONIC_ADDRESS= - ``` - - - Send photons from funded account to Alice and Charlie: - - ```bash - # Send funds from funded account to Alice - laconic-so deployment --dir stage0-deployment exec laconicd "laconicd tx bank send alice $A_LACONIC_ADDRESS 100000000000photon --fees 100photon --keyring-backend test" - - # Send funds from funded account to Charlie - laconic-so deployment --dir stage0-deployment exec laconicd "laconicd tx bank send alice $C_LACONIC_ADDRESS 100000000000photon --fees 100photon --keyring-backend test" - ``` - - TODO: Use a faucet for funding accounts - - Go to go-nitro repo root and start the nitro bridge using CLI: ```bash @@ -723,14 +751,14 @@ ``` - Set address of bridge and address of custom token on L1 in the current terminal - + ```bash export BRIDGE_ADDRESS=0xBBB676f9cFF8D242e9eaC39D063848807d3D1D94 export L1_ASSET_ADDRESS="" ``` - - NOTE: Replace `` with LNT token address deployed previously on L1 in [Run](#run) section + + NOTE: Replace `` with LNT token address deployed previously on L1 in [Run](#run) section - Create ledger channel between A and Bridge with custom token @@ -810,10 +838,11 @@ - Onboard participants - Open the `testnet-onboarding-app` at - Connect to the testnet-onboarding app by clicking on the WalletConnect icon on the top right corner in the wallet and scanning QR code of the app - - Choose Alice's ethereum and laconicd account to onboard - - Use ethereum accounts for which ledger channels have been created on L2 - - Sign using the ethereum key + - Choose Alice's nitro and laconicd account to onboard + - Use nitro accounts for which ledger channels have been created on L2 + - Sign using the nitro key - Approve sign request on Wallet + - Fund the laconic account by clicking on the `REQUEST TOKENS FROM FAUCET` button - Send transaction request to the Wallet - Approve and send transaction to laconicd chain - Repeat onboarding for other (Charlies's) account @@ -1010,6 +1039,20 @@ sudo rm -rf stage1-deployment/data/genesis-config/* ``` +- Reset faucet deployment: + - Stop deployment and remove volumes: + + ```bash + laconic-so deployment --dir laconic-faucet-deployment stop --delete-volumes + ``` + + - Remove data from the deployment + + ```bash + # Run where deployments are created + sudo rm -rf laconic-faucet-deployment/data/faucet-data/* + ``` + ## Re-run - After running demo cleanup, follow the steps from [Demo](#demo) to re-run the demo @@ -1068,9 +1111,22 @@ sudo rm -rf fixturenet-eth-deployment ``` +- Clean up faucet deployment: + - Stop deployment and remove volumes: + + ```bash + laconic-so deployment --dir laconic-faucet-deployment stop --delete-volumes + ``` + + - Clear deployment + + ```bash + # Run where deployments are created + sudo rm -rf laconic-faucet-deployment + ``` + ## Future enhancements -- Implement faucet in stage 0 laconicd chain for participants to send onboarding tx - Use latest optimism releases (e.g. v1.7.7) in fixturenet-optimism - Implement external stack for go-nitro - Add stack for bridge