This Wormhole testnet connects the following chains:
-
Solana Tour de Sol testnet.
-
Ethereum Goerli testnet.
-
Terra Tequila-0004 testnet.
-
Binance Smart Chain (mainnet, there's no testnet).
It runs the v2.1.1 guardiand reference implementation.
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.
Gossip network name:
/wormhole/testnet/2/1
Gossip bootstrap node:
/dns4/wormhole-testnet-v2-bootstrap.certus.one/udp/8999/quic/p2p/12D3KooWBY9ty9CXLBXGQzMuqkziLntsVcyz4pk1zWaJRvJn6Mmt
gRPC-web/REST API:
https://wormhole-v2-testnet-api.certus.one
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.
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 node \
--bootstrap "/dns4/wormhole-testnet-v2-bootstrap.certus.one/udp/8999/quic/p2p/12D3KooWBY9ty9CXLBXGQzMuqkziLntsVcyz4pk1zWaJRvJn6Mmt" \
--network "/wormhole/testnet/2" \
--ethContract "0x44F3e7c20850B3B5f3031114726A9240911D912a" \
--bscContract "0x47e6ab734c7ed257716bcc177fb1c35738eac6b8" \
--solanaContract "Brdguy7BmNB4qwEbcqqMbyV5CyJd2sxQNUn6NEpMSsUb" \
--terraContract "terra1whed88ncakawrnwgq7vyqly5elftw3wvnjjrps" \
--adminSocket /run/guardiand/admin.socket \
--dataDir /opt/wormhole/data \
--nodeName "NodeyMcNodeface" \ # <--- your node's name (for network explorer usage)
--nodeKey "/opt/wormhole/keys/wormhole-node.key" \ # <-- node key (auto-generated if not present)
--guardianKey "/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://)
--bscRPC "wss://bsc-node.example.com" \ # <-- your BSC full/light node websocket URI
--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