To be able to label incoming tor connections as different from normal localhost connections in e.g. `getpeerinfo` and the peers list in the GUI it'd be useful to have them connect on an alternative local-only port. Or even better, a UNIX socket.

For manually set-up hidden services this would have to be configured manually and could add a `hsport` option or such. The external port would still appear as `XXXXXXXXX.onion:8333`, however internally it would redirect to a that port.

In the case of `torcontrol` this would be easy to set up automatically. It could add a new (localhost) binding port automatically and this code would have to be changed:
- https://github.com/bitcoin/bitcoin/blob/master/src/torcontrol.cpp#L441
- https://github.com/bitcoin/bitcoin/blob/master/src/torcontrol.cpp#L477

}
            bool failed_rewind{false};
            
            
            for (CChainState* chainstate : WITH_LOCK(::cs_main, return chainman.GetAll())) {
                if (!fReset) {
                    
                    
                    
                    uiInterface.InitMessage(_("Rewinding blocks...").translated);
                    if (!chainstate->RewindBlockIndex(chainparams)) {
                        strLoadError = _(
                            "Unable to rewind the database to a pre-fork state. "
                            "You will need to redownload the blockchain");
                        failed_rewind = true;
                        break; 
                    }
                }
            }
            if (failed_rewind) {
                break; 
            }
            bool failed_verification = false;
            try {
                LOCK(cs_main);
                for (CChainState* chainstate : chainman.GetAll()) {
                    if (!is_coinsview_empty(chainstate)) {
                        uiInterface.InitMessage(_("Verifying blocks...").translated);
                        if (fHavePruned && args.GetArg("-checkblocks", DEFAULT_CHECKBLOCKS) > MIN_BLOCKS_TO_KEEP) {
                            LogPrintf("Prune: pruned datadir may not have more than %d blocks; only checking available blocks\n",