I've had a lot of people asking me about IBTP. We haven't dropped source code yet for our feature set. But, what IBTP is doing conceptually is filtering on pchMessageStart and maintaining a directory. You modify the message loop so that it doesn't just drop peers with a different pchMessageStart, but tags them instead. Then in the message loop you just put a check on the flag in all of the default messages so that it doesn't exchange block inventory etc. with non-native blockchains. That's it, its very simple. Once you do that then its just a matter of adding whatever shared serialized payload classes you want into both node clients and message filtering in the bitcoin message loop in main.cpp. It is very straightforward, and from that simple base you can pretty much build anything you can think of on top of it. No side-channels or proxies or anything required, just out of the box bitcoin peering.