I've searched for a while, but only found a simpler version of an answer. I saw where a transaction's addresses and value field would be recorded, but I'm not clear on what else might be. If I send a transaction to invoke a contract, providing the contract address and a contract function input, what is actually recorded? Is it just the hash of the transaction? Is it all of the actual arguments in the transaction? If I wanted to record multiple pieces of user data, could I just gang them up (as an array) and provide that as a contract function input? Is there any maximum length/size for this? I saw a post where one could view this as a cheap form of long term storage by using logs and events in the contract body that did a Print or console call instead of assigning to explicit contract state. Or, should I create a hash of the data I want to record, save the data and its hash myself in a local database, and just pass this data hash as a single contract function input? Thanks for any clarification/guidance.
In short, everything is recorded, and everything has an associated cost.
https://programtheblockchain.com/posts/2017/12/29/how-ethereum-transactions-work/ might be helpful reading for you.