Skip to content

Support https for grpc from the guardian to wormchain #4763

@SEJeff

Description

@SEJeff

Description

A guardian wanted to use https for the --wormchainURL and were getting lots of errors from the global accountant.

An example would be:

2026-04-22 12:38:37.031 ERROR {
  "severity": "ERROR",
  "timestamp": "2026-04-22T16:38:37.031480278Z",
  "logger": "root",
  "message": "failed to submit any observations in batch to accountant",
  "component": "gacct",
  "numMsgs": 1,
  "error": "failed to send broadcast: failed to fetch account: rpc error: code = Unavailable desc = connection error: desc = \"error reading server preface: http2: frame too large\""
}

2026-04-22 12:31:57.228 ERROR {
  "severity": "ERROR",
  "timestamp": "2026-04-22T16:31:57.228257006Z",
  "logger": "root",
  "message": "failed to submit observation to accountant",
  "component": "gacct",
  "idx": 0,
  "msgId": "30/0000000000000000000000008d2de8d2f73f1f4cab472ac9a881c9b123c79627/253330"
}

2026-04-22 12:30:34.409 ERROR {
  "severity": "ERROR",
  "timestamp": "2026-04-22T16:30:34.40989751Z",
  "logger": "root",
  "message": "unsure of status of pending transfer due to query error",
  "component": "gacct",
  "msgId": "23/000000000000000000000000d1a8ab69e00266e8b791a15bc47514153a5045a6/7869"
}

The flags the guardian passed looked like:

--wormchainURL ${HOSTNAME}:443 \
      --accountantCheckEnabled "True" \
      --accountantContract wormhole14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9srrg465 \
      --accountantWS https://${HOSTNAME}:443 \
      --accountantNttContract wormhole1mc23vtzxh46e63vq22e8cnv23an06akvkqws04kghkrxrauzpgwq2hmwm7 \
      --gatewayLCD 'https://${HOSTNAME}/' \
      --gatewayWS 'wss://${HOSTNAME}}/websocket' \
      --ibcBlockHeightURL 'https://${HOSTNAME}/' \
      --ibcLCD 'https://${HOSTNAME}/' \
      --ibcWS 'wss://${HOSTNAME}/websocket' \

Recommendation

This code

func NewConn(ctx context.Context, target string, privateKey cryptotypes.PrivKey, chainId string) (*ClientConn, error) {
c, err := grpc.DialContext(
ctx,
target,
grpc.WithTransportCredentials(insecure.NewCredentials()),
)

Needs to support secure connections in addition to insecure connections.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions