The v4 link protocol requires the initiator to set the most significant bit
tor-spec.txt says:
To prevent CircID collisions, when one node sends a CREATE cell to
another, it chooses from only one half of the possible values based
on the ORs' public identity keys. In link protocol version 3 or
lower, if the sending node has a lower key, it chooses a CircID with
an MSB of 0; otherwise, it chooses a CircID with an MSB of 1. (Public
keys are compared numerically by modulus.)
In link protocol version 4 or higher, whichever node initiated the
connection sets its MSB to 1, and whichever node didn't initiate the
connection sets its MSB to 0.
(An OP with no public key MAY choose any CircID it wishes, since an OP
never needs to process a CREATE cell.)
But this last sentence is only true for v3. For v4, if the most significant bit is not set by a client, relays close the connection with a message like:
Jul 11 20:20:18.000 [info] command_process_create_cell: Received create cell with unexpected circ_id 2147483647. Closing.