Skip to content

Releases: wormhole-foundation/wormhole

guardiand v2.5.0

26 Oct 23:47
Compare
Choose a tag to compare

New features:

  • A Polygon connection is now supported/required using the --polygonRPC and --polygonContract command line options.

Improvements:

  • The schema for injected ContractUpgrade governance VAAs now uses hex-encoded addresses for consistency.
  • Harmless received observation by unknown guardian messages were demoted to DEBUG level to avoid confusion.

guardiand v2.4.1

11 Oct 23:24
Compare
Choose a tag to compare

Backwards-incompatible changes:

  • The unused --terraChainID flag was removed.

New features:

  • guardiand now supports generating NFT/token bridge upgrade governance VAAs.

  • Support for posting alerts to Discord was added (can be seen in action in #alerts on Discord).

  • A guardiand admin find-missing-messages command was added, which searches the local VAA store for sequence number gaps for a specific emitter address. This can be used to verify whether the local node is missing any signed VAAs - there should be zero gaps.

    For example, this is how you could search for missing messages for recent emitters on mainnet using this new feature:

    grep -aF "observed and signed confirmed message publication" /var/log/wormhole.log | \
      head -n 500 | grep -Po '{.*}'  | jq -r '.message_id | split("/")[:-1] | join(" ")' | sort | uniq | \
      xargs -n2 echo sudo -u wormhole guardiand admin find-missing-messages --socket /run/guardiand/admin.socket
    

Improvements:

  • No longer run the scheduled recovery on startup.
  • Some Prometheus per-chain metrics were fixed to include the correct source label rather than "unknown".
  • Messages with a sequence number larger than INT64_MAX can now be requested from the API.
  • Gossip observations now include a MessageID field, which is logged. This helps debugging observations without local state. The previous release already added a TxHash field for the same reason.

guardiand v2.4.0

01 Oct 15:39
Compare
Choose a tag to compare

Scheduled recovery:

This release contains a scheduled message recovery. The network failed to reach consensus on seven messages due to Solana RPC timeouts experienced by a superminority of nodes.

On Oct 5 2021 11:00 UTC, the guardiand node fetches a list of transactions from GitHub to re-observe these accounts and achieve consensus. The list of accounts is untrusted - guardiand still relies on the connected RPC node for finality, it merely re-triggers the observation using the same code path.

This release includes retry logic to improve handling of RPC timeouts, so hopefully this is the first and only time we need to use this new feature :-)

Breaking changes:

  • The guardiand bridge command was renamed to guardiand node to avoid any confusion with token bridge functionality. The build command is now make node. Two command line flags were also changed:

    • --solanaBridgeAddress is now --solanaContract
    • --bridgeKey is now --guardianKey

    The Heartbeat proto message had one of its fields renamed from BridgeAddress to ContractAddress. If you were using the REST API (rather than the gRPC API, which is unaffected), you might have to update your code to use contract_address instead of bridge_address.

  • Support for raw heartbeat streams was removed from the public API. The GetLastHeartbeats / v1/heartbeats API with server-side aggregation should be used instead.

  • --publicREST has been extended with grpc-web and TLS support and renamed to --publicWeb (see below).

  • Go 1.17 is now required to build the guardiand node.

New features:

  • The admin CLI now supports injecting token and NFT bridge chain registration messages.

  • admin list-nodes now supports a --showDetails flag to display contract addresses and error counts.

  • guardiand now comes with a built-in REST and grpc-web API endpoint for web UIs to retrieve signed messages. Guardians are encouraged to run a public API endpoint for web UIs to use - please refer to the docs for more details.

    • The node exports Prometheus metrics for gRPC requests made to the publicWeb service.
  • Signed VAA messages are now broadcast on the gossip network, allowing all nodes to store them even if they missed the original observation.

Improvements:

  • guardiand startup time has been improved to a few seconds down from ~15s by improving Ethereum guardian set fetching.

  • invalid signed heartbeat received messages are no longer logged at INFO level. These messages occur when nodes that aren't part of the guardian set broadcast signatures, which is normal.

  • guardiand now maintains state for messages it observed but failed to reach consensus for up to 24 hours, allowing the network to submit observations late. This is meant to facilitate manual governance consensus and nodes falling behind and catching back up.

  • guardiand now retries failed Solana slot and account fetches up to five times.

  • A workaround was added for a suspected Solana bug, causing finalized transactions to be missed in rare occasions. This increases the number of GetConfirmedBlock calls by about 10% (skipped blocks are no longer excluded).

  • Log output for message observations was improved to include more context for lookups.

v2.3.0

10 Aug 17:32
Compare
Choose a tag to compare

This release is suitable for mainnet and testnet.

New features:

  • guardiand now maintains state for all active guardian nodes. The admin list-nodes command displays detailed info on node status, and corresponding GetCurrentGuardianSet and GetLastHeartbeats RPC calls were added. The old streaming output with on-the-fly aggregation is still available via admin list-nodes-stream.

  • Heartbeats now contain a boot timestamp to calculate uptime.

  • Heartbeats now include an error counter.

  • Prometheus metrics now include network-wide metrics via wormhole_network_node_height and wormhole_network_node_errors_count.

  • The example Grafana dashboard was updated for Wormhole v2.

Bugfixes:

  • --statusAddr now works (thanks @winslyn!)
  • A bug related Ethereum and BSC guardian set fetching was fixed.

v2.2.0 - v2 mainnet release

04 Aug 14:28
Compare
Choose a tag to compare

Initial release for the Wormhole v2 mainnet.

v2.1.1: node/pkg/solana: fix solanaConnectionErrors panic

30 Jul 20:54
Compare
Choose a tag to compare

This is a testnet release - do not use on mainnet!

This release fixes a panic encountered when Solana watcher requests fail.

v2.1.0 - BSC support, Solana watcher

30 Jul 15:11
Compare
Choose a tag to compare

This is a testnet release - do not use on mainnet!
Wait for instructions by the Wormhole team before upgrading your nodes.

⚠️ PLEASE USE THE v2.1.1 BUGFIX RELEASE INSTEAD ⚠️

BSC support

Wormhole now supports Binance Smart Chain. The following required parameters were added:

  • --bscContract
  • --bscRPC

Refer to https://github.com/certusone/wormhole-networks/blob/master/testnetv2/info.md for updated instructions.

New Solana watcher

Wormhole's Solana watcher has been upgraded to a new mechanism, fetching individual slots instead of program accounts (see #248 for details).

This new mechanism significantly improves latency when fetching Solana accounts and reduces the load on your RPC nodes. You need to change your Solana RPC node config: https://github.com/certusone/wormhole/blob/dev.v2/docs/operations.md#solana-node-requirements

v2.0.0 - v2 initial release 🎉

21 Jul 20:13
Compare
Choose a tag to compare

Testnet release for Wormhole v2.

v1.2.1 - Terra testnet release

01 Apr 22:23
bfa8a97
Compare
Choose a tag to compare

This is a testnet release - do not use on mainnet yet!

Changes:

  • Terra smart contact has been updated and will be redeployed to testnet (new fee logic, killswitch removal, VAA verification API for extensibility).
  • A crash due to a race condition during node startup has been fixed.

v1.2.0 - Terra testnet release

10 Feb 01:37
Compare
Choose a tag to compare

Terra 💱

This release includes initial support for Terra, including a comprehensive test suite! Terra support was built by the awesome folk at Everstake (shout out to @ysavchenko).

This release will be used for the upcoming Wormhole Testnet update.

Other Improvements

  • Various non-critical stability improvements in guardiand.
  • guardiand now includes a debug decode-vaa utility to parse binary VAAs.
  • Heartbeats now include node-level network metrics for observability purposes.