How can data be encapsulated in an Ethereum transaction so that the block chain can record state of external system? Am I limited to using JavaScript type protocols? Are tools provided for storing this sort of data?