---
# System prepended metadata

title: 'Council daemon v2 deploy plan [MAINNET]'

---

# Council daemon v2 deploy plan [MAINNET]

### Before voting enaction
- [x] Review passed
- [ ] RabbitMQ deployed
- [ ] RabbitMQ dasboard ready
- [ ] Docker image build on testnet and mainnet
- [ ] CI works fine
- [ ] Old version works normally before the upgrade
    - [ ] Deposits performs
    - [ ] No erros in logs
    - [ ] Seeing deposits and ping messages in Depositor bot in Kafka
- [ ] Alerts are shared with guardians, [example](https://github.com/lidofinance/infra-mainnet/tree/master/ansible/roles/alerts_box/templates/tooling-alerts)
- [ ] Grafana dashboard example is shared with guardians
- [ ] Contracts deployed
- [ ] Addresses are changed (maybe it will required changes in nestjs-modules or js-sdk)
- [ ] Updated council daemon that deployed in our infra (in mainnet)
- [ ] New version ready
    - [ ] Uploaded to the dockerhub with a some tag (With CI by merging to the main branch)
    - [ ] There is a guide for external guardians how to setup the daemon ([Example](https://hackmd.io/vGAN9r2FTne6FuDgxIUo7A?view)) and Keys API. Important ⚠️ we ask to run daemon by hash not a tag!
    - [ ] Guide shared with guardians in the tg chat room (ask Zuzu (Kate) to help)
    - [ ] All participants informed that we asked to run a **separate** instance of the daemon
    - [ ] There is an ansible role to help guardians to setup a daemon
- [ ] Prepare credentials for Mainnet Rabbit MQ (separate creds for each member)
- [ ] Share credentials through 1password with each guardian (ask Zuzu)
- [ ] Recieve confirmations from all guardians that version is updated

### After voting enaction

- [ ] Contracts checks
    - [ ] Staking module is not paused
- [ ] Check that old daemon stopped sending messages
    - [ ] Ping messages (?)
    - [ ] Deposit messages
- [ ] Check that we reciving messages in the new message broker
    - [ ] Check amount of guardians
    - [ ] Check daemon versions
    - [ ] Check signatures
- [ ] Wait for deposits
- [ ] Update addresses to Mainnet in e2e tests (may have Goerli + mainnet)
    - [ ] Update secrets for e2e tests in the repository
- [ ] Run e2e tests
- [ ] Inform guardians that everything went well
- [ ] Ask guardians to turn off the old daemon
- [ ] After a few weeks need to turn off the Kafka claster. Probably replace with the cheper one for fallback option.