Part of [Create a public laconicd testnet](https://www.notion.so/Create-a-public-laconicd-testnet-896a11bdd8094eff8f1b49c0be0ca3b8)
- Reset block height for authorities being imported from genesis, same is being done for name records
Reviewed-on: #61
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Part of [Create a public laconicd testnet](https://www.notion.so/Create-a-public-laconicd-testnet-896a11bdd8094eff8f1b49c0be0ca3b8)
- Add `bc` installation in Dockerfile (required for stage1 to stage2 testnet migration)
- Populate attributes map index when importing records from genesis to allow fetching records with filters from a chain with imported state
Reviewed-on: #60
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Part of [Add a CLI query to list all authorities with owner filter](#41)
Usage:
```bash
$ laconicd query registry list-authorities -h
List authorities (optionally by owner)
Usage:
laconicd query registry list-authorities [flags]
Flags:
--grpc-addr string the gRPC endpoint to use for this chain
--grpc-insecure allow gRPC over insecure channels, if not the server must use TLS
--height int Use a specific height to query state at (this can error if the node is pruning state)
-h, --help help for list-authorities
--no-indent Do not indent JSON output
--node string <host>:<port> to CometBFT RPC interface for this chain (default "tcp://localhost:26657")
-o, --output string Output format (text|json) (default "text")
--owner string Owner to get the authorities for
```
Example:
```bash
# Without owner filter
$ laconicd query registry list-authorities
authorities:
- entry:
expiry_time: "2024-07-26T06:54:28.491158167Z"
height: "247"
owner_address: laconic1e23vfttpvk045pqeydr4mujmlemx8hf9zjm7h2
owner_public_key: A6RlTGLIpyA8nnEQN4V3sz3uaLMY0fHtB7aS7u1zTOdD
status: active
name: cerc
- entry:
expiry_time: "2024-07-26T06:47:58.971429925Z"
height: "118"
owner_address: laconic10ztdu07xn7rracvzvehelgwvsytqlrvj6pvput
owner_public_key: AvBxGIXBFmWCF+OHFwydqEtp2bfP+aimObO3teunbve7
status: active
name: laconic
# With owner filter
$ laconicd query registry list-authorities --owner laconic1e23vfttpvk045pqeydr4mujmlemx8hf9zjm7h2
authorities:
- entry:
expiry_time: "2024-07-26T06:54:28.491158167Z"
height: "247"
owner_address: laconic1e23vfttpvk045pqeydr4mujmlemx8hf9zjm7h2
owner_public_key: A6RlTGLIpyA8nnEQN4V3sz3uaLMY0fHtB7aS7u1zTOdD
status: active
name: cerc
```
Reviewed-on: #42
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
- Registry module
- Update module state to track record / authority expiry queues
- Handle expired records and authorities at the end of each block
- Add a command to handle record renewal
Reviewed-on: deep-stack/laconic2d#7
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
For registry module:
- Add commands to:
- get records by bond id
- reserve name authority
- get name authority
- set authority bond id
- set name
- get and list names
- resolve name to a record
- delete name
- Handle:
- genesis import / export
- returning names when fetching record(s)
- sub-authority reservation
- To be handled in an upcoming PR:
- module end blocker
- record expiry
- command to renew records
- bond-association commands
Reviewed-on: deep-stack/laconic2d#6
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>