Where can I find explanation about the different versions(from 1 to 9)? Is there a way to change the version to RingCT's version on testnet (started from scratch - block 0) without causing troubles with constructing transactions or receiving?
There is a table with some information about the protocol versions in the README file of the Monero source code (https://github.com/monero-project/monero/blob/master/README.md).
Extract from the table:
|---------+------------+----------+-----------+--------------------------------------| | Block | Date | Protocol | Minimum | Details | | height | | version | software | | | | | | version | | |---------+------------+----------+-----------+--------------------------------------| | 1009827 | 2016-03-22 | v2 | v0.9.4 | Allow only >= ringsize 3, | | | | | | blocktime = 120 seconds, | | | | | | fee-free blocksize 60 kb | |---------+------------+----------+-----------+--------------------------------------| | 1141317 | 2016-09-21 | v3 | v0.9.4 | Splits coinbase into denominations | |---------+------------+----------+-----------+--------------------------------------| | 1220516 | 2017-01-05 | v4 | v0.10.1 | Allow normal and RingCT transactions | |---------+------------+----------+-----------+--------------------------------------| | 1288616 | 2017-04-15 | v5 | v0.10.3.0 | Adjusted minimum blocksize and fee | | | | | | algorithm | |---------+------------+----------+-----------+--------------------------------------| | 1400000 | 2017-09-16 | v6 | v0.11.0.0 | Allow only RingCT transactions, | | | | | | allow only >= ringsize 5 | |---------+------------+----------+-----------+--------------------------------------| | 1546000 | 2018-04-06 | v7 | v0.12.0.0 | Cryptonight variant 1, | | | | | | ringsize >= 7, | | | | | | sorted inputs | |---------+------------+----------+-----------+--------------------------------------| | 1685555 | 2018-10-18 | v8 | v0.13.0.0 | max transaction size at half the | | | | | | penalty free block size, | | | | | | bulletproofs enabled, | | | | | | cryptonight variant 2, | | | | | | fixed ringsize 11 | |---------+------------+----------+-----------+--------------------------------------| | 1686275 | 2018-10-19 | v9 | v0.13.0.0 | bulletproofs required | |---------+------------+----------+-----------+--------------------------------------|
The block heights for protocol upgrades are defined in the file src/cryptonote_core/blockchain.cpp. You can probably change the heights of the testnet protocol upgrades for your personal testnet, but I have never tried and there might be some other things to change for things to work well.