IRCd Migration

From MIXXnet Wiki

Migration Complete

The migration was completed as scheduled without problems on 2008-10-26.


MIXXnet has been running UnrealIRCd as our IRC daemon since the network's inception in 2004. Unreal has served us well over the years and has been very stable, however it lacks certain features that we feel will help make the IRC experience better for our users.

After over two years of research and testing, we have decided to migrate to a new IRC daemon called Inspire IRCd (InspIRCd). InspIRCd has several new features on the backend that will allow us to serve you better and provide an even more stable service. There will also be a few nice new features for users. InspIRCd has a very friendly and active development team who are constantly bringing new features to the software which will eventually make their way to MIXXnet. A huge thanks goes out to Insp developer w00t for all his help and working with us on new features and debugging.

Test Network

We have a fully functional test network setup and encourage anyone interested to connect, check things out, and help us test things before the final migration. Services are available on the test network and do have all nickname/channel data from the main network as of the testnet launch day, however any changes you make on the test network won't be applied to the main network and will need to be made again once the migration is complete.

You can connect to the test network now using the following info:

Ports: 6660 (regular), 6698 (SSL)

You must use one of the above two ports to get to the testnet; any other ports may bring you to the current network or not work at all.

Please keep in mind that this is a test network and we may need to make modifications which could require us to restart servers or services. Also, our testnet pool of servers consists of ALL MIXXnet's leaves and may not be constantly optimized based on performance or stability like our main pool.

Please ask any questions or report any problems in #help.

New User Features

  • User mode +c which requires a user to be in a common channel with you to be able to private message/notice you
  • Channel mode +J to prevent auto rejoin when kicking a user
  • Channel ban redirects to allow redirecting to a special channel when banned (+b nick!ident@host#redirectchan)
  • Allows users to devoice themselves
  • Channel mode +g for custom channel filter lists
  • /tban for timed channel bans
  • /uninvite to remove pending channel invites

Command/Mode Changes

Most user modes, channel modes, and commands are the same as our current configuration. There are a few exceptions which are listed below:

Channel Invites

Channel invites are handled somewhat different from how they are currently. With the new setup, only halfops or higher will be able to invite users to channels by default. Invites will bypass all channel restrictions such as bans, limits, channel keys, and invite only (+b/l/k/i). If you want to allow regular users to be able to invite other users on your channel you can set channel mode +A to allow invites from everyone, but please keep in mind all invites will bypass bans, limits, keys, etc.

Channel Flood Protection

The main difference in channel flood protection from now is the syntax. The current way uses channel a single channel mode +f with parameters like "[20j,50m,7n]:15", which would trigger flood protection if 20 joins, 50 messages, or 7 nick changes occurred within 15 seconds. The new method uses a few different channel modes to accomplish the same things:

  • Join Flood - Channel mode: +j joins:sec - If there are more than "joins" new joins per "sec" seconds, lock the channel for 60 seconds and prevent new users from joining.
  • Message Flood - Channel mode: +f lines:sec - Kick a user if they type more than "lines" lines in "sec" seconds. If "lines" is prefixed with a "*", the user will be kickbanned.
  • Nick Flood - Channel mode: +F nicks:sec - If there are more than "nicks" nick changes in "sec" seconds, prevent nickname changes for 60 seconds.

Specific Things To Test

We appreciate users testing all aspects of the network during the testing period, however here are a couple things that we have made code changes to which can be tested even more. There shouldn't be any issues with these but having more testing never hurts.

  • Invites. Try all combinations of inviting users to your channel and bypassing channel modes like +b/l/k. Try channel mode +A to allow regular users to invite as a test.
  • Channel redirects. If you have an alternate channel name you would like to redirect to your main channel, ask in #help. Then test joining that redirect and make sure you are always redirected properly.

Switching Over

The process for making the changeover will be painless with very little downtime. We expect less than a minute of complete downtime as the old processes are stopped and new ones are started.

All services data such as nicknames, channels, etc will be preserved and function exactly the same as before. Denora stats data will also be intact.

Required User Actions

Most things will be transferred over to the new network automatically, however there are a few actions that channel operators will need to take:

  • Note channel bans and re-apply them once the changeover is complete. If you use ChanServ's AKICK to manage your channel bans you will not need to do this, however if you use channel mode +b you will need to make a list of channel bans and reban them. You can get a channel's banlist by typing "/mode #channel +b".
  • Re-apply channel modes like keys (+k), limits and redirects (+l and +L), invite only (+i), secret (+s), private (+p), etc. You will only need to do this once upon changeover and then changes will be sync'd up across the network.

The above actions can be done at anytime on the test network before we make the final changeover and they should be carried over to the production network. Please note that at least one user must remain idle in the channel on the test network for these modes to stay when the changeover is made.

Migration Plans

  • [COMPLETED 2008-08-01] Plan approved by all staff members
  • [COMPLETED 2008-08-06] Finish patch for Insp invite changes and submit upstream
  • [COMPLETED 2008-08-11] Backport final invite changes from Insp 1.2
  • [COMPLETED 2008-08-11] Start testnet setup and staff testing
  • [COMPLETED 2008-09-16] Insp SVN update and rebuild after latest release
  • [COMPLETED 2008-09-19] Announce migration and launch test network to users
  • [COMPLETED 2008-10-07] One leaf's hard drive replacement
  • [COMPLETED 2008-10-26] Testing period with users to identify and fix any potential final issues
  • [COMPLETED 2008-10-26] Make the changeover to the new network


If you have any questions, comments, problems, etc, please join #help (on the testnet) and we will work through them with you.