# Chrysalis Testnet Update 19.02.21
The IOTA Chrysalis phase 2 network has been upgraded with following breaking changes:
* Instead of signing essences of transactions and milestones directly, the Blake2b-256 hash of the essence data is signed/verified. This is done to reduce the size of the message to sign which useful if the signers are constrained devices, such as hardware wallets.
* Any data models regarding WOTS are removed and the type denotations for Ed25519 related models has been adjusted.
* The indexation payload's index field no longer has to be a utf-8 valid string but is instead simply a dynamic byte array.
* The network ID has been changed to `testnet5`.
* The genesis snapshot is new and the total supply resides on address `atoi1qx82lpavrafwkp0jclqvz4gzm7vs5g5g8rwr00gcm62s8456l5jh67vutux`/`8eaf87ac1f52eb05f2c7c0c15502df990a228838dc37bd18de9503d69afd257d`.
* The Coordinator starts publishing milestones from index 0 on-wards again and milestone public keys remain unchanged.
Tools:
* CLI-Wallet https://github.com/iotaledger/cli-wallet/releases/tag/app-v0.3.4
### Upgrading Hornet
:::warning
You must delete your previous snapshot files and `testnetdb`. Please keep `p2pstore` as it contains your node's identity.
:::
:::info
This setup assumes a docker-compose.yml deployment of Hornet.
:::
The simplest way to upgrade is:
* Stop your current Hornet node via:
```
$ docker-compose down
```
* Clone the [Hornet repository](https://github.com/gohornet/hornet):
```
$ git clone https://github.com/gohornet/hornet.git
```
* Checkout the `develop` branch/updating it (you should see several file changes in the git log output):
```
$ git checkout develop
$ git pull origin develop
```
The last commit should be equal/newer than commit `13fc46a1d54fc907cd570fc34de497cbff73d49d`.
* Adjust your config file according to [config_chrysalis_testnet.json](https://github.com/gohornet/hornet/blob/develop/config_chrysalis_testnet.json). Mainly the `protocol.networkID` has been changed to `testnet5`
* Build a new docker image:
```
$ docker build -f docker/Dockerfile.dev -t hornet:dev .
```
Example docker-compose.yml file:
:::info
Any writable mount bind must be under `/tmp` with images using `docker/Dockerfile.dev`
:::
```
version: '3.3'
services:
hornet:
image: hornet:dev
hostname: hornet-testnet
container_name: hornet_testnet
stdin_open: true
tty: true
restart: "no"
working_dir: /app
expose:
- "14265"
- "15600"
- "8081"
- "6060"
- "1883"
ports:
- "0.0.0.0:15600:15600/tcp"
- "0.0.0.0:14265:14265/tcp"
- "0.0.0.0:8081:8081/tcp"
- "0.0.0.0:6060:6060/tcp"
- "0.0.0.0:1883:1883/tcp"
volumes:
- './config.json:/app/config.json:ro'
- './peering.json:/app/peering.json'
- './data:/tmp'
- '/etc/ssl/certs:/etc/ssl/certs:ro'
- '/etc/localtime:/etc/localtime:ro'
```
* Given the [config_chrysalis_testnet.json](https://github.com/gohornet/hornet/blob/develop/config_chrysalis_testnet.json) config file, your node will automatically fetch the latest snapshot from dbfiles.testnet.chrysalis2.com.
* Boot up your node:
```
$ docker-compose up -d
```
* Check whether your node connects to your neighbors and is able to synchronize:
```
$ docker logs -f hornet_testnet
```
:::info
If you see messages like:
> 2021-01-18T09:30:06+01:00 ERROR GossipService unable to create gossip stream to 12D3KooWMajsSUxSUFb3CRgmJvygYCGd27uMDdppVYNGud7xuKG5: protocol not supported
>
you or your neighbor has not updated their `protocol.networkID` correctly.
:::