# Chrysalis Testnet Update 18.01.21
The IOTA Chrysalis phase 2 network has been upgraded with following breaking changes:
* It now implements dust protection according to [RFC 32](https://github.com/iotaledger/protocol-rfcs/pull/32).
* The HTTP API and MQTT streams have been adjusted in accordance with [RFC 27](https://github.com/iotaledger/protocol-rfcs/pull/27) and [RFC 33](https://github.com/iotaledger/protocol-rfcs/pull/33).
* The faucet will now deposit 10Mi per request.
* The network ID has been changed to `testnet2`.
* The HRP for Bech32 addresses is `atoi`.
* 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.
* Max sizes for payloads are enforced:
* 32768 bytes for messages
* 64 bytes for the index field of indexation payloads
:::warning
You can no longer create `SigLockedSingleOutput`s with less than 1Mi of deposit and transactions must obey to the dust allowance semantics.
:::
### 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 `1de8b74683c2a4143531c31f0e34d0dbcb534443`.
* 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 `testnet2` and a new key `protocol.bech32HRP` with value `atoi` has been added. Please make sure that other config parameters are also intact.
* 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.
:::