diff --git a/stack-orchestrator/stacks/testnet-laconicd/README.md b/stack-orchestrator/stacks/testnet-laconicd/README.md index bc3ac27..b9d681d 100644 --- a/stack-orchestrator/stacks/testnet-laconicd/README.md +++ b/stack-orchestrator/stacks/testnet-laconicd/README.md @@ -12,7 +12,39 @@ Instructions for running a laconicd testnet full node and joining as a validator CPU: 2 cores ``` -* Testnet genesis file (file or an URL) and peer node addresses +* Testnet genesis file and peer node address + +* Register your laconic address as a participant on the `Laconic network` using the [Onboarding App](https://loro-signup.laconic.com/) + + * Read and accept the `Terms and Conditions` + + * Connect testnet-onboarding app to the wallet: + + * Click on `CONNECT WALLET` button on the testnet-onboarding app + + * Click on the WalletConnect icon on the top right corner in the wallet + + * If using the wallet Android app, scan the QR code from the onboarding app + + * If using the wallet website, enter WalletConnect URI for pairing + + * In the onboarding app, 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 + + * Perform the user verification steps + + * Select the desired participant role (`Validator` or `Participant`) and accept the onboarding terms and conditions + + * In the next step, fund your laconic account by clicking on the `REQUEST TOKENS FROM FAUCET` button; ensure that the displayed balance is updated + + * Send transaction request to the wallet + + * From wallet, approve and send transaction to laconicd chain ## Setup @@ -25,31 +57,19 @@ Instructions for running a laconicd testnet full node and joining as a validator * Clone required repositories: ```bash - # laconicd laconic-so --stack ~/cerc/testnet-laconicd-stack/stack-orchestrator/stacks/testnet-laconicd setup-repositories --pull - # laconic cli and console - laconic-so --stack ~/cerc/testnet-laconicd-stack/stack-orchestrator/stacks/laconic-console setup-repositories --pull - # If this throws an error as a result of being already checked out to a branch/tag in a repo, remove the repositories and re-run the command ``` * Build the container images: ```bash - # laconicd laconic-so --stack ~/cerc/testnet-laconicd-stack/stack-orchestrator/stacks/testnet-laconicd build-containers - # laconic cli and console - laconic-so --stack ~/cerc/testnet-laconicd-stack/stack-orchestrator/stacks/laconic-console build-containers - ``` - This should create the following docker images locally: * `cerc/laconicd` - * `cerc/laconic-registry-cli` - * `cerc/webapp-base` - * `cerc/laconic-console-host` ## Create a deployment @@ -57,11 +77,9 @@ Instructions for running a laconicd testnet full node and joining as a validator ```bash laconic-so --stack ~/cerc/testnet-laconicd-stack/stack-orchestrator/stacks/testnet-laconicd deploy init --output testnet-laconicd-spec.yml - - laconic-so --stack ~/cerc/testnet-laconicd-stack/stack-orchestrator/stacks/laconic-console deploy init --output laconic-console-spec.yml ``` -* Edit `network` in both the spec files to map container ports to host ports as required: +* Edit `network` in the spec file to map container ports to host ports as required: ```bash # testnet-laconicd-spec.yml @@ -75,24 +93,12 @@ Instructions for running a laconicd testnet full node and joining as a validator - '9473:9473' - '9090:9090' - '1317:1317' - - # laconic-console-spec.yml - ... - network: - ports: - console: - - '8080:80' ``` -* Create deployments from the spec files: +* Create the deployment from the spec file: ```bash laconic-so --stack ~/cerc/testnet-laconicd-stack/stack-orchestrator/stacks/testnet-laconicd deploy create --spec-file testnet-laconicd-spec.yml --deployment-dir testnet-laconicd-deployment - - laconic-so --stack ~/cerc/testnet-laconicd-stack/stack-orchestrator/stacks/laconic-console deploy create --spec-file laconic-console-spec.yml --deployment-dir laconic-console-deployment - - # Place them both in the same namespace (cluster) - cp testnet-laconicd-deployment/deployment.yml laconic-console-deployment/deployment.yml ``` * Copy over the published testnet genesis file (`.json`) to data directory in deployment (`testnet-laconicd-deployment/data/laconicd-data/tmp`): @@ -109,56 +115,18 @@ Instructions for running a laconicd testnet full node and joining as a validator ```bash # Comma separated list of nodes to keep persistent connections to - # Example: "node-1-id@node-1-host:26656,node-2-id@node-2-host:26656" + # Example: "node-1-id@laconicd.laconic.com:26656" + # Use the provided node id CERC_PEERS="" - # Optional - # A custom human readable name for this node (default: TestnetNode) CERC_MONIKER= - - # Network chain ID (default: laconic_9000-1) - CERC_CHAIN_ID= - - # Output log level (default: info) - CERC_LOGLEVEL= ``` -* Inside the `laconic-console-deployment` deployment directory, open `config.env` file and set following env variables: - - ```bash - # All optional - - # CLI configuration - - # laconicd chain id (default: laconic_9000-1) - CERC_LACONICD_CHAIN_ID= - - # laconicd user private key for txs - CERC_LACONICD_USER_KEY= - - # laconicd bond id for txs - CERC_LACONICD_BOND_ID= - - # Gas limit for txs (default: 200000) - CERC_LACONICD_GAS= - - # Max fees for txs (default: 200000alnt) - CERC_LACONICD_FEES= - - # Console configuration - - # Laconicd (hosted) GQL endpoint (default: http://localhost:9473) - LACONIC_HOSTED_ENDPOINT= - ``` - - Note: Use `host.docker.internal` as host to access ports on the host machine - -## Start the deployments +## Start the deployment ```bash laconic-so deployment --dir testnet-laconicd-deployment start -laconic-so deployment --dir laconic-console-deployment start ``` ## Check status @@ -181,104 +149,36 @@ laconic-so deployment --dir laconic-console-deployment start # `catching_up: false` indicates that node is completely synced ``` -* View the laconic console at - -* Use the cli service for registry CLI operations: - - ```bash - # Example - laconic-so deployment --dir laconic-console-deployment exec cli "laconic registry status" - ``` - ## Join as testnet validator -* Create / import a new key pair: +* Open the onboarding app : + +* Select your laconic address + +* Get your validator node's public key: ```bash - # Create new keypair - laconic-so deployment --dir testnet-laconicd-deployment exec laconicd "laconicd keys add " + laconic-so deployment --dir testnet-laconicd-deployment exec laconicd 'laconicd cometbft show-validator' | jq '.key' - # OR - # Restore existing key with mnemonic seed phrase - # You will be prompted to enter mnemonic seed - laconic-so deployment --dir testnet-laconicd-deployment exec laconicd "laconicd keys add --recover" - - # Query the keystore for your account's address - laconic-so deployment --dir testnet-laconicd-deployment exec laconicd "laconicd keys show -a" + # Example response + # "av1WrE11aXWdmv1umCzzM03r0/VwTHNaWH+Fw7kRnIw=" ``` -* Request tokens from the testnet faucet for your account if required +* Paste the public key in the `Validator Public Key` field in the onboarding app. -* Check balance for your account: +* Set the node moniker in the `Moniker` field in the onboarding app. - ```bash - laconic-so deployment --dir testnet-laconicd-deployment exec laconicd "laconicd query bank balances " - ``` +* Check the transaction details -* Create required validator configuration: +* Click on `SEND TRANSACTION` to approve it. Sign the transaction using the wallet. - ```bash - # Note: - # Edit the staking amount and other fields as required - # Replace with your node's moniker in command below - - laconic-so deployment --dir testnet-laconicd-deployment exec laconicd 'cat < -validator.json - { - "pubkey": $(laconicd cometbft show-validator), - "amount": "900000000alnt", - "moniker": "", - "commission-rate": "0.1", - "commission-max-rate": "0.2", - "commission-max-change-rate": "0.01", - "min-self-delegation": "1" - } - EOF' - ``` - -* Create a validator: - - ```bash - laconic-so deployment --dir testnet-laconicd-deployment exec laconicd 'laconicd tx staking create-validator -validator.json \ - --fees 500000alnt \ - --chain-id=laconic_9000-1 \ - --from ' - ``` - -* View staking validators: +* After successful transaction, view the staking validators: ```bash laconic-so deployment --dir testnet-laconicd-deployment exec laconicd "laconicd query staking validators" ``` - * Check that in the list of validators `` exists - -## Perform operations - -* To perform txs against the chain using registry CLI, set your private key in config in the CLI container: - - ```bash - # (Optional) Get the PK from your node - laconic-so deployment --dir testnet-laconicd-deployment exec laconicd "laconicd keys export --unarmored-hex --unsafe" - - # Set your PK as 'userKey' in the config file - laconic-so deployment --dir laconic-console-deployment exec cli "nano config.yml" - - # services: - # registry: - # ... - # userKey: - # ... - - # Note: any changes made to the config will be lost when the cli Docker container is brought down - # So set / update the values in 'laconic-console-deployment/config.env' accordingly before restarting - ``` - -* Adjust / set other config values (`bondId`, `gas`, `fees`) as required and perform txs: - - ```bash - # Example - laconic-so deployment --dir laconic-console-deployment exec cli "laconic registry bond create --type photon --quantity 1000000000000" - ``` + * Check that in the list of validators, your node moniker exists ## Clean up @@ -298,5 +198,3 @@ laconic-so deployment --dir laconic-console-deployment start # Remove deployment directory (deployment will have to be recreated for a re-run) rm -r testnet-laconicd-deployment ``` - -* For `laconic-console`, see [laconic-console clean up](../laconic-console/README.md#clean-up) diff --git a/testnet-onboarding-demo.md b/testnet-onboarding-demo.md index fc1098f..1515805 100644 --- a/testnet-onboarding-demo.md +++ b/testnet-onboarding-demo.md @@ -985,7 +985,7 @@ - Send transaction request to the wallet - From wallet, approve and send transaction to laconicd chain - Repeat onboarding for other (Charlies's) account by clicking on the web app header "Testnet Onboarding" - - List the participants on stage 1 (run in the directory where laconicd deployment was created): + - List the participants on stage 0 (run in the directory where laconicd deployment was created): ```bash laconic-so deployment --dir stage0-deployment exec laconicd "laconicd query onboarding list"