wormhole-networks/testnetv2/info.md

4.8 KiB

Wormhole v2 Testnet

This Wormhole testnet connects the following chains:

It runs the v2.0.0 guardiand reference implementation.

Important differences from v2

Wormhole v2 is a full redesign and not backwards compatible.

When it comes to guardiand operation, the basics stay the same - we observe events from various connected chains, sign them and broadcast the signature to the network. Here's the main operational differences compared to v1:

  • guardiand now has a data directory and is no longer stateless. guardiand will start maintaining local network state like a gossip address book, persisted signed VAAs and a high watermark to catch up on missed blocks. You do not need to back up the data directory, but it's recommended to copy it when migrating between servers - doing so will improve network health.

  • Terra is no longer optional - you need to connect a Terra node.

  • guardiand no longer sends on-chain transactions. This means that no wallets or funds are required anymore 🎉 It also means that the Rust agent is no longer required.

Network parameters

Gossip network name:

/wormhole/testnet/2

Gossip bootstrap node:

/dns4/wormhole-testnet-v2-bootstrap.certus.one/udp/8999/quic/p2p/12D3KooWRzE71KXnZ8NF3N1Za6koiQh9CwzuyFnuisNHg6tB8RKV

Connected chain contracts:

Network Bridge contract addresss
Ethereum Goerli (Bridge) 0x44F3e7c20850B3B5f3031114726A9240911D912a
Ethereum Goerli (Impl) 0x78563ACB348209743F3b0968b91eC7563f2fB535
Solana Tour de Sol H3SjyXYezgWj1ktCrazLkD8ydj9gzmEi4w9zRCXg2G4R
Terra Tequila-0004 terra1whed88ncakawrnwgq7vyqly5elftw3wvnjjrps

Guardian set

Current generation: 0, containing only the Certus One bootstrap node with the address 0x13947Bd48b18E53fdAeEe77F3473391aC727C638.

See v1.prototext for the first guardian set update that will be executed once everyone's node on the network is live.

Example command line options

Refer to the operations guide on how to set up a node. Example systemd unit file:

[Unit]
Description=wormhole v2 guardiand
Requires=network.target
After=network.target

[Service]
User=wormhole
Group=wormhole
ExecStart=/opt/wormhole/wormhole/build/bin/guardiand bridge \
    --bootstrap "/dns4/wormhole-testnet-v2-bootstrap.certus.one/udp/8999/quic/p2p/12D3KooWRzE71KXnZ8NF3N1Za6koiQh9CwzuyFnuisNHg6tB8RKV" \
    --network "/wormhole/testnet/2" \
    --ethContract "0x44F3e7c20850B3B5f3031114726A9240911D912a" \
    --solanaBridgeAddress "H3SjyXYezgWj1ktCrazLkD8ydj9gzmEi4w9zRCXg2G4R" \
    --terraContract "terra1whed88ncakawrnwgq7vyqly5elftw3wvnjjrps" \
    --adminSocket /run/guardiand/admin.socket \
    --dataDir /opt/wormhole/data \
    --terraChainID "tequila-4" \
    --nodeName "NodeyMcNodeface" \                            # <--- your node's name (for network explorer usage)
    --nodeKey "/opt/wormhole/keys/wormhole-node.key" \        # <-- node key (auto-generated if not present)
    --bridgeKey "/opt/wormhole/keys/wormhole-guardian.key" \  # <-- your guardian key generated by "guardiand keygen"
    --ethRPC "wss://your-eth-node" \                          # <-- your ETH full/light node websocket URI (ws:// or wss://)
    --solanaRPC "http://solana-node:8899" \                   # <-- Solana RPC URI
    --solanaWS "ws://solana-node:8900" \                      # <-- Solana WS URI (typically RPC +1)
    --terraWS "ws://terra-node/websocket" \                   # <-- Terra node websocket URI
    --terraLCD "http://terra-node:1317" \                     # <-- Terra LCD server HTTP URI
    --statusAddr=[::]:6060                                    # <-- exposes Prometheus metrics - firewall recommended
RuntimeDirectory=guardiand
RuntimeDirectoryMode=700
RuntimeDirectoryPreserve=yes
PermissionsStartOnly=yes
PrivateTmp=yes
PrivateDevices=yes
SecureBits=keep-caps
AmbientCapabilities=CAP_IPC_LOCK
CapabilityBoundingSet=CAP_IPC_LOCK
NoNewPrivileges=yes
Restart=on-failure
RestartSec=5s
LimitNOFILE=65536
LimitMEMLOCK=infinity

[Install]
WantedBy=multi-user.target