pub struct Header {
pub version: Version,
pub compact_target: Uint32,
pub timestamp: Timestamp,
pub number: BlockNumber,
pub epoch: EpochNumberWithFraction,
pub parent_hash: H256,
pub transactions_root: H256,
pub proposals_hash: H256,
pub extra_hash: H256,
pub dao: Byte32,
pub nonce: Uint128,
}
Expand description
The block header.
Refer to RFC CKB Block Structure.
Fields§
§version: Version
The block version.
It must equal to 0 now and is reserved for future upgrades.
compact_target: Uint32
The block difficulty target.
It can be converted to a 256-bit target. Miners must ensure the Eaglesong of the header is within the target.
timestamp: Timestamp
The block timestamp.
It is a Unix timestamp in milliseconds (1 second = 1000 milliseconds).
Miners should put the time when the block is created in the header, however, the precision is not guaranteed. A block with a higher block number may even have a smaller timestamp.
number: BlockNumber
The consecutive block number starting from 0.
epoch: EpochNumberWithFraction
The epoch information of this block.
See EpochNumberWithFraction
for details.
parent_hash: H256
The header hash of the parent block.
transactions_root: H256
The commitment to all the transactions in the block.
It is a hash on two Merkle Tree roots:
- The root of a CKB Merkle Tree, which items are the transaction hashes of all the transactions in the block.
- The root of a CKB Merkle Tree, but the items are the transaction witness hashes of all the transactions in the block.
proposals_hash: H256
The hash on proposals
in the block body.
It is all zeros when proposals
is empty, or the hash on all the bytes concatenated together.
extra_hash: H256
The hash on uncles
and extension in the block body.
The uncles hash is all zeros when uncles
is empty, or the hash on all the uncle header hashes concatenated together.
The extension hash is the hash of the extension.
The extra hash is the hash on uncles hash and extension hash concatenated together.
Notice
This field is renamed from uncles_hash
since 0.100.0.
More details can be found in CKB RFC 0031.
dao: Byte32
DAO fields.
See RFC Deposit and Withdraw in Nervos DAO.
nonce: Uint128
Miner can modify this field to find a proper value such that the Eaglesong of the header is
within the target encoded from compact_target
.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Header
impl<'de> Deserialize<'de> for Header
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for Header
impl JsonSchema for Header
Source§fn schema_name() -> String
fn schema_name() -> String
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(gen: &mut SchemaGenerator) -> Schema
fn json_schema(gen: &mut SchemaGenerator) -> Schema
Source§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref
keyword. Read moreimpl Eq for Header
impl StructuralPartialEq for Header
Auto Trait Implementations§
impl Freeze for Header
impl RefUnwindSafe for Header
impl Send for Header
impl Sync for Header
impl Unpin for Header
impl UnwindSafe for Header
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)