# 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. :::