So in Ethereum we have data that is traveling potentially through application code (like python) and that can then be sent through to a contract. I'm wondering how one goes about tracing requests through the system to include these layers. For example, when I send a transaction to an Ethereum contract, shouldn't I have different rejection codes (plus a success code) as I would have HTTP response codes in an http-based system? Seems like there are only disconnect codes in the wire protocol spec. Maybe contracts should allow some way to return a small message that can be customized? Such a return statement (and/or modification of STOP) would allow something significant to be sent in the returning TCP ACK that can be parsed at the application layer for logging/debugging purposes.