Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Mais Sobre o Cabeçalho do Bloco | Blocos e Transações
Quizzes & Challenges
Quizzes
Challenges
/
Introdução ao Blockchain

bookMais Sobre o Cabeçalho do Bloco

Antes de explorarmos o cabeçalho do bloco em detalhes, é importante compreender a diferença entre os formatos big endian e little endian.

Little Endian e Big Endian

Primeiro, é necessário entender o que significa endianness.

Note
Estude Mais

Endianness refere-se à ordem em que bytes (cada byte equivale a 8 bits) são organizados em tipos de dados maiores na memória do computador.

O formato big endian armazena o byte mais significativo primeiro, o que está alinhado com a forma como os humanos normalmente leem números. Vamos usar o número decimal 234567890 como exemplo e convertê-lo para hexadecimal e binário usando Python e exibir os resultados:

123
decimal_number = 234567890 print(hex(decimal_number)) print(bin(decimal_number))
copy

Como os computadores armazenam inteiros usando um número inteiro de bytes, e cada 2 dígitos hexadecimais correspondem a um byte, precisamos de um número par de dígitos. A representação hexadecimal do nosso número, 0xDFB38D2, contém 7 dígitos, então precisamos adicionar zero 0 à esquerda. O número resultante, 0x0DFB38D2, agora possui 8 dígitos hexadecimais (encaixa exatamente em 4 bytes) e o mesmo valor.

Da mesma forma, nosso número binário possui 28 bits, e cada 8 bits correspondem a 1 byte, então precisamos que o número de bits seja divisível por 8, adicionando 4 zeros 0 à esquerda. O número resultante, 0b00001101111110110011100011010010, agora possui 32 bits (encaixa exatamente em 4 bytes) e o mesmo valor.

Usando Python, obtivemos o formato big endian, que também obteríamos se convertêssemos manualmente, e nosso número fica assim:

  • 0x0DFB38D2 em hexadecimal;
  • 0b00001101111110110011100011010010 em binário.

Consulte a tabela abaixo para entender o formato big endian:

Por outro lado, o formato little endian armazena o byte menos significativo primeiro, invertendo a ordem intuitiva:

Como pode ser observado, nosso número no formato little endian fica da seguinte forma:

  • 0xD238FB0D em hexadecimal;

  • 0b11010010001110001111101100001101 em binário.

Retornando ao Cabeçalho do Bloco

Recapitulando, o cabeçalho possui exatamente 80 bytes contendo seis campos de dados, cada um deles no formato little endian. Agora, vamos analisar o cabeçalho do bloco 645536:

Como o cabeçalho do bloco ocupa exatamente 80 bytes, há exatamente 160 dígitos hexadecimais (cada byte corresponde a 2 dígitos hexadecimais). O campo version, por exemplo, ocupa 4 bytes, então há 8 dígitos hexadecimais.

Aqui estão as informações detalhadas sobre este bloco no explorador:

Os campos aqui são exibidos no formato big endian. Vamos analisar o campo bits, por exemplo, e compará-lo com sua representação no cabeçalho do bloco. Sua representação hexadecimal é 0x171007ea no formato big endian:

Se o convertermos para o formato little endian, ficará da seguinte forma:

Como você pode ver, é exatamente isso que tínhamos no cabeçalho do bloco.

1. A que se refere "endianness" no contexto de blockchain e sistemas computacionais?

2. Associe os componentes do bloco com suas definições.

question mark

A que se refere "endianness" no contexto de blockchain e sistemas computacionais?

Select the correct answer

question-icon

Associe os componentes do bloco com suas definições.

A number that miners change to get the resulting block hash which meets the difficulty target:
A compact representation of the target threshold that the block's hash must meet in order to be added to the blockchain:

A single hash that represents all the transactions included in the block:

Clique ou arraste solte itens e preencha os espaços

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 3

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Suggested prompts:

Can you explain why little endian is used in the block header?

How do I convert other fields from little endian to big endian?

What is the significance of the "bits" field in the block header?

Awesome!

Completion rate improved to 6.25

bookMais Sobre o Cabeçalho do Bloco

Deslize para mostrar o menu

Antes de explorarmos o cabeçalho do bloco em detalhes, é importante compreender a diferença entre os formatos big endian e little endian.

Little Endian e Big Endian

Primeiro, é necessário entender o que significa endianness.

Note
Estude Mais

Endianness refere-se à ordem em que bytes (cada byte equivale a 8 bits) são organizados em tipos de dados maiores na memória do computador.

O formato big endian armazena o byte mais significativo primeiro, o que está alinhado com a forma como os humanos normalmente leem números. Vamos usar o número decimal 234567890 como exemplo e convertê-lo para hexadecimal e binário usando Python e exibir os resultados:

123
decimal_number = 234567890 print(hex(decimal_number)) print(bin(decimal_number))
copy

Como os computadores armazenam inteiros usando um número inteiro de bytes, e cada 2 dígitos hexadecimais correspondem a um byte, precisamos de um número par de dígitos. A representação hexadecimal do nosso número, 0xDFB38D2, contém 7 dígitos, então precisamos adicionar zero 0 à esquerda. O número resultante, 0x0DFB38D2, agora possui 8 dígitos hexadecimais (encaixa exatamente em 4 bytes) e o mesmo valor.

Da mesma forma, nosso número binário possui 28 bits, e cada 8 bits correspondem a 1 byte, então precisamos que o número de bits seja divisível por 8, adicionando 4 zeros 0 à esquerda. O número resultante, 0b00001101111110110011100011010010, agora possui 32 bits (encaixa exatamente em 4 bytes) e o mesmo valor.

Usando Python, obtivemos o formato big endian, que também obteríamos se convertêssemos manualmente, e nosso número fica assim:

  • 0x0DFB38D2 em hexadecimal;
  • 0b00001101111110110011100011010010 em binário.

Consulte a tabela abaixo para entender o formato big endian:

Por outro lado, o formato little endian armazena o byte menos significativo primeiro, invertendo a ordem intuitiva:

Como pode ser observado, nosso número no formato little endian fica da seguinte forma:

  • 0xD238FB0D em hexadecimal;

  • 0b11010010001110001111101100001101 em binário.

Retornando ao Cabeçalho do Bloco

Recapitulando, o cabeçalho possui exatamente 80 bytes contendo seis campos de dados, cada um deles no formato little endian. Agora, vamos analisar o cabeçalho do bloco 645536:

Como o cabeçalho do bloco ocupa exatamente 80 bytes, há exatamente 160 dígitos hexadecimais (cada byte corresponde a 2 dígitos hexadecimais). O campo version, por exemplo, ocupa 4 bytes, então há 8 dígitos hexadecimais.

Aqui estão as informações detalhadas sobre este bloco no explorador:

Os campos aqui são exibidos no formato big endian. Vamos analisar o campo bits, por exemplo, e compará-lo com sua representação no cabeçalho do bloco. Sua representação hexadecimal é 0x171007ea no formato big endian:

Se o convertermos para o formato little endian, ficará da seguinte forma:

Como você pode ver, é exatamente isso que tínhamos no cabeçalho do bloco.

1. A que se refere "endianness" no contexto de blockchain e sistemas computacionais?

2. Associe os componentes do bloco com suas definições.

question mark

A que se refere "endianness" no contexto de blockchain e sistemas computacionais?

Select the correct answer

question-icon

Associe os componentes do bloco com suas definições.

A number that miners change to get the resulting block hash which meets the difficulty target:
A compact representation of the target threshold that the block's hash must meet in order to be added to the blockchain:

A single hash that represents all the transactions included in the block:

Clique ou arraste solte itens e preencha os espaços

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 3
some-alt