fixturenet-laconicd-stack/stack-orchestrator/stacks/fixturenet-laconicd/records-demo.md
Prathamesh Musale 57f4648be1 Run laconic-console stack as part of fixturenet deployment (#1)
Part of [Create an external fixturenet-laconicd stack](https://www.notion.so/Create-an-external-fixturenet-laconicd-stack-3b33cc2317444f4da209c4472f4244ed)

Reviewed-on: #1
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
2024-06-25 06:43:22 +00:00

4.7 KiB

records-demo

Setup

  • Set account key and bond id in the CLI config:

    # Set bond id to the bond created earlier or create a new one
    BOND_ID=<bond-id>
    
    # Update CLI config
    laconic-so deployment --dir laconic-console-deployment exec cli "CERC_LACONICD_USER_KEY=${ALICE_PK} CERC_LACONICD_BOND_ID=${BOND_ID} /app/create-config.sh"
    
    # Note: Update the values in 'laconic-console-deployment/config.env' accordingly before restarting
    

Run

  • Copy over all records from a dir to the data dir in laconic-console-deployment (laconic-console-deployment/data/laconic-registry-data) and publish the records:

    # Example: for demo records
    # Copy over the records
    cp -r /home/user/fixturenet-laconicd-stack/stack-orchestrator/config/demo-records laconic-console-deployment/data/laconic-registry-data/
    
    # Publish the records from `laconic-registry-data` directory
    laconic-so deployment --dir laconic-console-deployment exec cli "yarn ts-node demo/scripts/publish-records.ts --config config.yml --records /laconic-registry-data/demo-records"
    

    OR

    # Example: for testnet records
    # Copy over the records
    cp -r /home/user/laconic-testnet-data/records/repo laconic-console-deployment/data/laconic-registry-data/repo-records
    rsync -av --exclude 'repo' /home/user/laconic-testnet-data/records laconic-console-deployment/data/laconic-registry-data/
    
    # Publish repository records first
    laconic-so deployment --dir laconic-console-deployment exec cli "yarn ts-node demo/scripts/publish-records.ts --config config.yml --records /laconic-registry-data/repo-records"
    
    # Publish rest of the records
    laconic-so deployment --dir laconic-console-deployment exec cli "yarn ts-node demo/scripts/publish-records.ts --config config.yml --records /laconic-registry-data/records"
    

Query

  • All the published records can be viewed on the console at http://localhost:8080
    • explore the console for more information
    • click on the link aside a record that opens the GraphQL console
    • the query is pre-loaded, run it and inspect the output

CLI Examples

  • Query all records:

    laconic-so deployment --dir laconic-console-deployment exec cli "laconic registry record list"
    
  • Query for geth service deployment(s):

    • Find the ServiceRecord for geth:

      SERVICE_RECORD_ID=$(laconic-so deployment --dir laconic-console-deployment exec cli "laconic registry record list --all --type ServiceRecord --name geth | jq -r '.[].id'")
      
    • Find corresponding deployment(s):

      laconic-so deployment --dir laconic-console-deployment exec cli "laconic registry record list --all --type ServiceDeploymentRecord service $SERVICE_RECORD_ID"
      
      # Get the deployment URL(s)
      laconic-so deployment --dir laconic-console-deployment exec cli "laconic registry record list --all --type ServiceDeploymentRecord service $SERVICE_RECORD_ID | jq -r '.[].attributes.url'"
      
      # Expected output:
      # https://geth-rpc-endpoint-1.example.com
      # https://geth-rpc-endpoint-2.example.com
      
  • Query for azimuth-watcher deployment(s):

    • Find the WatcherRecord for azimuth-watcher:

      WATCHER_RECORD_ID=$(laconic-so deployment --dir laconic-console-deployment exec cli "laconic registry record list --all --type WatcherRecord --name azimuth-watcher | jq -r '.[].id'")
      
    • Find corresponding deployment(s):

      laconic-so deployment --dir laconic-console-deployment exec cli "laconic registry record list --all --type WatcherDeploymentRecord watcher $WATCHER_RECORD_ID"
      
      # Get the deployment URL(s)
      laconic-so deployment --dir laconic-console-deployment exec cli "laconic registry record list --all --type WatcherDeploymentRecord watcher $WATCHER_RECORD_ID | jq -r '.[].attributes.url'"
      
      # Expected output:
      https://azimuth-watcher-endpoint.example.com
      
  • Query for bsc-node stack:

    • Find the StackRecord for bsc-node stack:

      laconic-so deployment --dir laconic-console-deployment exec cli "laconic registry record list --all --type StackRecord --name bsc-node"
      
      # Get the repo record id
      STACK_REPO_RECORD_ID=$(laconic-so deployment --dir laconic-console-deployment exec cli "laconic registry record list --all --type StackRecord --name bsc-node | jq -r '.[].attributes.repository'")
      
    • Find the corresponding RepositoryRecord:

      laconic-so deployment --dir laconic-console-deployment exec cli "laconic registry record get --id $STACK_REPO_RECORD_ID"
      
      # Get the repo URL
      laconic-so deployment --dir laconic-console-deployment exec cli "laconic registry record get --id $STACK_REPO_RECORD_ID | jq -r '.[].attributes.url'"