---
# System prepended metadata

title: Bridge Upgrade Guide

---

# Bridge Upgrade Guide

The CENNZnet/Ethereum bridging protocol will allow Ethereum tokens, CENNZnet tokens, and events to move freely between both networks.
This creates new liquidity options on CENNZnet and enables faster, cheaper transaction speeds for Ethereum users.

CENNZnet validators act as bridge authorities by witnessing transactions on Ethereum and casting votes about their authenticity on CENNZnet.

See the explainer [article](https://cennz.net/knowledge-hub/core-modules/emery-cennznet-ethereum-token-bridge/) for a further overview of the bridge design and features.

After this update, the CENNZnet mainnet will be bridged to the Ethereum Mainnet.

## Upgrade Overview
The runtime update will begin on Mainnet at:
[Thursday 18th November, 11pm UTC](https://www.timeanddate.com/worldclock/fixedtime.html?msg=CENNZnet+Bridge+Update&iso=20211118T2330&p1=1440)

CENNZnet will continue to function as normal after the runtime update but will require additional steps by *validators* to activate the new bridging protocol.

The important steps to update your validator node are:
1) Update the CENNZnet client version to 2.0.0
2) Connect to an Ethereum full node
3) Rotate session keys

### 1) Update Validator client


If using docker download new image: `cennznet/cennznet:2.0.0` ***OR*** build [from source](https://github.com/cennznet/cennznet/releases/2.0.0)


### 2) Connect Ethereum RPC provider

After this update, validators need a connection to Ethereum mainnet in order to witness transactions for the bridge protocol.
The simplest way is to use an Ethereum RPC provider service, a process which takes only a few minutes to setup.
It is also fine to host your own Ethereum node for this purpose.

Here are some services which provide free ethereum full nodes: 
- https://zmok.io
- https://infura.io
- https://www.alchemy.com/
- https://moralis.io/

Once an Ethereum full node connection is active, restart your CENNZnet validator providing the full node endpoint with the `--eth-http` flag.
This will allow the validator to connect with Ethereum and participate in the Emery bridging protocol.

**Example**:
```bash
docker run cennznet/cennznet:2.0.0 \
  --name='example-node'
  # provide Ethereum full node HTTP endpoint (Mainnet)
  --eth-http='https://eth-mainnet.alchemyapi.io/v2/<API_KEY_REDACTED>' \
  --chain=/cennznet/genesis/azalea.raw.json \
  --validator
```

⚠️ If running multiple validators it is possible to share the same API key but be aware of your provider's rate limiting configuration.

### 3) Rotate session keys

The bridge protocol requires validators refresh their session keys which will generate a new Ethereum compatible key for signing bridge messages.

To rotate your node's session keys run:
```bash
curl \
    -H "Content-Type: application/json" \
    -d '{"id":1, "jsonrpc":"2.0", "method": "author_rotateKeys", "params": []}' \
    localhost:9933
```

this will output your new public session keys
⚠️ make sure to save this value for the next and final step.

**example output:**
```
{
  "jsonrpc":"2.0",
  "result":"0x39aa6645b628f8a53e182172f2c38485c7755854fc5e4addf997ecd836fb18c0b245dd9bced846e504d030a7b8830c40b5ac53de4b74421ab252d920a1f00621e08c2fff8b19cc1a1ff767f41333b28ee7e097eeb2a7d4422bb958cc55b3537d2299cd89b4f79ff8639415ff1137c68b0726a42e7ecdb04840a5fbbfc9961333032b575057537dceab1fd15a7ef92ed366116f7c0537ed9d8f5c5db483b640f3be",
  "id":1
}
```

### 4) Claim Session Keys
Take the `result` from the previous step and head to [https://cennznet.io/#/extrinsics](https://cennznet.io/#/extrinsics)
to officially claim your validator's new keys.
The transaction should be sent by your registered 'controller' account.  

```
# example only!
0x39aa6645b628f8a53e182172f2c38485c7755854fc5e4addf997ecd836fb18c0b245dd9bced846e504d030a7b8830c40b5ac53de4b74421ab252d920a1f00621e08c2fff8b19cc1a1ff767f41333b28ee7e097eeb2a7d4422bb958cc55b3537d2299cd89b4f79ff8639415ff1137c68b0726a42e7ecdb04840a5fbbfc9961333032b575057537dceab1fd15a7ef92ed366116f7c0537ed9d8f5c5db483b640f3be
```

![](https://i.imgur.com/3yHhzPl.png)
Submit the transaction.
Restart your validator to ensure the new session keys take effect.

# Done :tada: 

Your validator will now actively participate in the Ethereum bridge protocol and earn CPAY rewards.


# FAQ

## Will it cost gas?
No gas costs for validators. Only the bridge users need to pay gas to transfer tokens.


## Do I need to run an Ethereum node?
No, this is optional. It is recommended to use an Ethereum RPC provider service.

## Is bridging incentivised?

Yes. After this update, bridging is a part of the core CENNZnet protocol and will accrue reward points for validators that participate in a similar way to producing blocks.
