MainNet is where actual transactions occur on the distributed ledger. Real exchanges of real tokens are happening here. Within MainNet, any user of any node connected to the network can read all the contract code and data. The only limitation that is implemented on MainNet is the permission check in contract code, which determines which accounts can update the state of a contract.
A proof-of-authority testnet that works across clients.
A proof-of-authority testnet for those running OpenEthereum clients.
A proof-of-authority testnet for running Geth client.
A proof-of-work testnet. This means it’s the best like-for-like representation of Ethereum.
As mentioned before, currency used in testnets have no real value, so there are no markets for testnet currency. To get some currency for testing purposes, one can retrive some from a testnet network faucet. Most faucets are webapps where after entering a virtual wallet address, a request is made and then test current is sent to the wallet.
Private networks are isolated networks since their nodes are not connected to any public network, neither MainNet nor testnet.
Is it possible to send tokens between networks?
How do networks sync?