Both the block size and the transaction size are defined as protocol parameters. These can be changed at any time by IOG, or voted on once we have Voltaire. Blocks come on average every 20 seconds, but the closest blocks can be currently is every second.
maxBlockBodySize is 65536 bytes and maxTxSize is 16384 bytes. As the network becomes more useful and congested, these parameters can be changed to accommodate the additional traffic.
We can also modify the activeSlotsCoefficient which is currently 0.05. By modifying this we can make blocks appear more frequently on average instead of 20 seconds.
Cardano has a verify flexible protocol so it can adjust quite a bit on its own before we need to worry about implementing hydra for additional scalability.
{
"txFeePerByte": 44,
"minUTxOValue": 1000000,
"stakePoolDeposit": 500000000,
"decentralization": 0,
"poolRetireMaxEpoch": 18,
"extraPraosEntropy": null,
"stakePoolTargetNum": 500,
"maxBlockBodySize": 65536,
"maxTxSize": 16384,
"treasuryCut": 0.2,
"minPoolCost": 340000000,
"maxBlockHeaderSize": 1100,
"protocolVersion": {
"minor": 0,
"major": 4
},
"txFeeFixed": 155381,
"stakeAddressDeposit": 2000000,
"monetaryExpansion": 3.0e-3,
"poolPledgeInfluence": 0.3
}