tron-goblin-node v1.2.1
Consensus fix: a transaction's id and signature-recovery preimage are now
derived from its ORIGINAL wire bytes.
java hashes a tx's raw_data exactly as it arrived on the wire
(TransactionCapsule.getRawHash), keeping unknown protobuf fields; our tx id
previously hashed a prost re-encode, which drops them. For mainnet txs that
append a stray field to raw_data (seen on some energy-rental
Delegate/UnDelegateResource txs) this produced a wrong tx id and a garbage
recovered signer, so the node falsely rejected — with PermissionDenied — a
transaction the network accepted, diverging state.
- The tx id and signature preimage now hash the raw_data wire span
(byte-identical to the previous re-encode for canonical txs), threaded from
the block bytes through the apply, pipeline, Block-STM, mempool, index,
RPC/gRPC, firehose and both reorg paths; blocks are stored verbatim. - A transaction whose owner account does not yet exist now synthesizes java's
default owner / active permission instead of being rejected (a separate
permission-parity gap).
No API or config changes. Workspace tests 3282 -> 3297.