109 lines
4.8 KiB
Markdown
109 lines
4.8 KiB
Markdown
# Wormhole v2 Testnet
|
|
|
|
This Wormhole testnet connects the following chains:
|
|
|
|
- Solana [Tour de Sol testnet](https://docs.solana.com/clusters#testnet).
|
|
|
|
- Ethereum [Goerli testnet](https://goerli.net).
|
|
|
|
- Terra [Tequila-0004 testnet](https://finder.terra.money/tequila-0004/).
|
|
|
|
- Binance Smart Chain *(soon)*
|
|
|
|
It runs the [v2.0.0](https://github.com/certusone/wormhole/releases/tag/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`](https://goerli.etherscan.io/address/0x44F3e7c20850B3B5f3031114726A9240911D912a) |
|
|
| Ethereum Goerli (Impl) | [`0x78563ACB348209743F3b0968b91eC7563f2fB535`](https://goerli.etherscan.io/address/0x78563ACB348209743F3b0968b91eC7563f2fB535) |
|
|
| Solana Tour de Sol | [`H3SjyXYezgWj1ktCrazLkD8ydj9gzmEi4w9zRCXg2G4R`](https://explorer.solana.com/address/H3SjyXYezgWj1ktCrazLkD8ydj9gzmEi4w9zRCXg2G4R?cluster=testnet) |
|
|
| Terra Tequila-0004 | [`terra1whed88ncakawrnwgq7vyqly5elftw3wvnjjrps`](https://finder.terra.money/tequila-0004/address/terra1whed88ncakawrnwgq7vyqly5elftw3wvnjjrps) |
|
|
|
|
## Guardian set
|
|
|
|
Current generation: **0**, containing only the Certus One bootstrap node with the
|
|
address `0x13947Bd48b18E53fdAeEe77F3473391aC727C638`.
|
|
|
|
See [v1.prototext](guardianset/v1.prototxt) 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](https://github.com/certusone/wormhole/blob/dev.v2/docs/operations.md) 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
|
|
```
|