The constant is called MAX_BLOCKFILE_SIZE
and is set in src/validation.h
. It is currently set to 0x8000000
which is 128 MiB (134,217,728 bytes).
You can see where it is checked in FindBlockPos()
in src/validation.cpp
.
There isn't any indication of why this specific size was chosen and it may be arbitrary. It is desirable to have some limit because some operating systems (or specific filesystems) have limits on maximum file size, usually above 2 GB or so. So at least this limit ensures we never get anywhere close to an OS limit.