message: Use thread safe get_uncached_id()
diff: @@ -552,7 +552,9 @@ namespace eosio {
  */
  for( const auto& receipt : s->block->transactions ) {
  if( receipt.trx.which() == 1 ) {
  - const auto tid = receipt.trx.get<packed_transaction>().id();
  + const auto& pt = receipt.trx.get<packed_transaction>();
  + // get id via get_uncached_id() as packed_transaction.id() mutates internal transaction state
  + const auto& tid = pt.get_uncached_id();
  auto itr = _transaction_status.find( tid );
  if( itr != _transaction_status.end() )
  _transaction_status.erase(itr);
  @@ -1009,7 +1011,9 @@ namespace eosio {
  void mark_block_transactions_known_by_peer( const signed_block_ptr& b ) {
  for( const auto& receipt : b->transactions ) {
  if( receipt.trx.which() == 1 ) {
  - auto id = receipt.trx.get<packed_transaction>().id();
  + const auto& pt = receipt.trx.get<packed_transaction>();
  + // get id via get_uncached_id() as packed_transaction.id() mutates internal transaction state
  + const auto& id = pt.get_uncached_id();
  mark_transaction_known_by_peer(id);
  }
  }
  @@ -1044,10 +1048,12 @@ namespace eosio {
  if( app().get_plugin<chain_plugin>().chain().get_read_mode() == chain::db_read_mode::READ_ONLY )
  return;
  - auto id = p->id();
  // ilog( "recv trx ${n}", ("n", id) );
  if( p->expiration() < fc::time_point::now() ) return;
  + // get id via get_uncached_id() as packed_transaction.id() mutates internal transaction state
  + const auto& id = p->get_uncached_id();
  +
  if( mark_transaction_known_by_peer( id ) )
  return;
  