Instructions

This page details the procedure to join the incentivized testnet.

For clusters

Step 1: Preliminaries

  • Refer to the architecture diagram here and understand the interactions
  • Preferably, set up marlinctl (available here) to make the setup process smoother
  • If you prefer a manual setup or marlinctl doesn't cover your use case, clone and build OpenWeaver
  • Create an identity keystore file (can use geth or myetherwallet)
  • Create a file with the passphrase used to create the keystore above

Step 2: Set up beacon

  • Run a beacon node
  • Ensure the beacon is reachable from outside
  • Pass "34.82.79.68:8003" as the beacon address while starting the beacon to register it with the wider testnet
  • Pass the keystore file and its passphrase to set the beacon identity
# Using marlinctl
$ sudo marlinctl beacon create --discovery-addr "0.0.0.0:8002" --heartbeat-addr "0.0.0.0:8003" --bootstrap-addr "34.82.79.68:8003" --keystore-path /path/to/keystore --keystore-pass-path /path/to/passphrase

# Manually
$ ./beacon/beacon --discovery-addr "0.0.0.0:8002" --heartbeat-addr "0.0.0.0:8003" --beacon-addr "34.82.79.68:8003" --keystore-path /path/to/keystore --keystore-pass-path /path/to/passphrase

Step 3: Set up relays

  • Run a relay node
  • Set the discovery-addrs parameter to point to the discovery-addr of your beacon set up above
  • Set the heartbeat-addrs parameter to point to the heartbeat-addr of your beacon set up above
  • Set the datadir parameter to the datadir of the blockchain node
  • Set the address parameter to an address you would like to get rewards in
# Using marlinctl
$ sudo marlinctl relay eth create --discovery-addrs "beaconip:8002" --heartbeat-addrs "beaconip:8003" --address "0x..."

# Manually
$ ./geth --datadir /path/to/datadir/ --syncmode=light
$ ./relay/eth_relay "beaconip:8002" "beaconip:8003" "/path/to/datadir/" --address "0x..."

Note: Relays need to be tuned for optimal performance. Ref: Discord

Step 4: Set up firewalls

  • Expose for public access

    • Discovery port of beacon
    • Discovery port of relay
    • Pubsub port of relay
    • Any ports needed for the blockchain node
  • Expose only for cluster access

    • Heartbeat port of beacon

For individual relayers

Step 1: Set up a relay

  • Find an existing cluster you can be a part of, a public cluster is available for testing with 35.197.83.116 as the beacon IP
  • Run a relay node
  • Set the discovery-addrs parameter to point to the discovery-addr of the beacon of the cluster chosen above
  • Set the heartbeat-addrs parameter to point to the heartbeat-addr of the beacon of the cluster chosen above
  • Set the datadir parameter to the datadir of the blockchain node
  • Set the address parameter to an address you would like to get rewards in
# Using marlinctl
$ sudo marlinctl relay create --chain "eth" --discovery-addrs "beaconip:8002" --heartbeat-addrs "beaconip:8003" --address "0x..."

# Manually
$ ./geth --datadir /path/to/datadir/ --syncmode=light
$ ./relay/eth_relay "beaconip:8002" "beaconip:8003" "/path/to/datadir/" --address "0x..."

Step 2: Set up firewalls

  • Expose for public access
    • Discovery port of relay
    • Pubsub port of relay
    • Any ports needed for the blockchain node