The minimum space in storage that can be modified is 32 bytes, an storage slot.
There are some possible optimizations, structs will pack its fields to save space, short strings are stored in a single storage slot.
Unless you know what you are doing I won't recommend using bytes32 for everything.
This is second-hand information and speculation. I tried to reach out to people who did the original event.
Logs were intended to be used as a proof for third party systems that something happened in a blockchain. Now logs are used by bridges between different blockchains for this purpose.
Logs were intended to be purgeable i.e. full nodes have logged only ...
Events use one of the LOG operations. The output of LOG operations is not accessible from smart contracts by design - it allows clients to avoid storing event/log data as an optimization and as a result the LOG operation has a low gas cost reflecting the reduced hardware cost. In other words, SSTORE is expensive because it provides a guarantee that smart ...
But I didn't find a mention to why is that,
because first: you don't need that in a contract, and event is a message from the inside to the outside, why would a contract need to access events of other contracts? Only for some weird use case. Second, you would spend a lot of Gas and your transaction wouldn't fit inside a block.
if it's cheaper to store data ...
the default for Linux is $HOME/.ethereum
user@host :~/.ethereum$ cd $HOME/.ethereum
user@host :~/.ethereum$ ls
blocks database details geth geth.ipc history keystore network.rlp protocol state
you can change this with --datadir parameter
when you sync the blocks are downloaded in about a few hours, but what takes a lot to ...