Several changes in this proposal to support the Rhizome Virtual Blockchain:
The timestamp will now act as a FLAG -- if set to -1 the transaction will be discarded from the main mempool and instead forwarded only to nodes running a particular virtual blockchain.
The TransactionInfo struct will now contain an additional 32 byte program ID (identifying the program the transaction data should be sent to) as well as a 128 byte data field which my be utilized to store arbitrary data. The full transaction data will be forwarded on to the virtual blockchain for processing.
Transaction hashing and data storage will remain the same -- only network transmission of transactions will change. LevelDB will not store the additional programID and data fields.
Furthermore, BlockStore will need to be updated to no longer use these functions when serializing/deserializing transactions to discard the targetProgram and data fields when writing to LevelDB
Several changes in this proposal to support the Rhizome Virtual Blockchain:
The newly proposed structure is as follows:
Modifications will need to be made to the serialization and deserialization functions below:
Furthermore, BlockStore will need to be updated to no longer use these functions when serializing/deserializing transactions to discard the targetProgram and data fields when writing to LevelDB