| CIP | Title | Author | Status | Type | Created | 
|---|---|---|---|---|---|
| 112 | Fix Block Headers customField Serde | Peilun Li (@peilun-conflux) | Draft | Spec Breaking | 2023-05-08 | 
Simple Summary
Fix the incorrect encoding and decoding implementation of the custom field of block headers.
Abstract
Currently, in the block header RLP encoding, each element in the custom list is appended to the RLP list as raw bytes, where its RLP-encoded data should be appended instead. Decoding such an field as raw bytes may result in a different custom field from the encoded data.
Motivation
We should encode and decode the custom field as expected so that the correct data can be extracted.
Specification
Each element of the custom field would be appended to the block header RLP list normally, which means its RLP-encoded data are appended. And decoding will also treat each element as RLP-encoded bytes.
Rationale
Nothing needs to explain.
Backwards Compatibility
This changes the block header encoding and decoding in P2P transmission, so it’s protocol breaking.
Test Cases
TBA
Implementation
N/A
Security Considerations
This fix will be enabled with a hardfork, so all upgraded nodes should encode/decode the block headers with the same rule.
Copyright
Copyright and related rights waived via CC0.
