Bitcoin Forum
November 09, 2024, 09:41:10 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Как выглядит блок?  (Read 1855 times)
kaznachey (OP)
Sr. Member
****
Offline Offline

Activity: 328
Merit: 258


View Profile
December 30, 2016, 05:17:03 PM
 #1

А где можно посмотреть как выглядет тот самый блок который получается когда майнеры майнят биткоины и как в него записывается информация? Где можно посмотреть пример реального блока который используется в цепочке блоков биткоина? Какой объем памяти занимает блок и все ли блоки одинакового размера?
Rashid Ahmed
Sr. Member
****
Offline Offline

Activity: 298
Merit: 267


View Profile
December 31, 2016, 01:27:37 AM
Merited by fruit (2)
 #2

А где можно посмотреть как выглядет тот самый блок который получается когда майнеры майнят биткоины и как в него записывается информация? Где можно посмотреть пример реального блока который используется в цепочке блоков биткоина? Какой объем памяти занимает блок и все ли блоки одинакового размера?

Тут хоть речь идёт о сегвите, но про блок всё разжаловано очень годно. Рекомендую посмотреть.

https://www.youtube.com/watch?v=1-1qJ91aBH4&t
bitaps
Member
**
Offline Offline

Activity: 148
Merit: 45

https://bitaps.com/


View Profile WWW
January 02, 2017, 12:30:34 PM
 #3

Вот здесь описана структура блока

https://en.bitcoin.it/wiki/Block

AndreyBelts
Newbie
*
Offline Offline

Activity: 140
Merit: 0


View Profile WWW
January 20, 2018, 02:01:31 PM
 #4

А где можно посмотреть как выглядет тот самый блок который получается когда майнеры майнят биткоины и как в него записывается информация? Где можно посмотреть пример реального блока который используется в цепочке блоков биткоина? Какой объем памяти занимает блок и все ли блоки одинакового размера?
Да. Так же заинтересовался этим вопросом.
Sad
NAgain
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
January 20, 2018, 08:09:08 PM
 #5

Дабы не создавать новую тему, спрошу тут.

Не могу понять, как и где в блоке хранятся адреса кошельков?
kzv
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
January 20, 2018, 09:40:06 PM
 #6

Дабы не создавать новую тему, спрошу тут.

Не могу понять, как и где в блоке хранятся адреса кошельков?
В блоки записываются не адреса кошельков, а скрипт транзакции. Декодируете скрипт - можете получить адрес кошелька... А можете не получить. В общем случае транзакция это произвольный контракт. В частном случае контракт звучит так: "потратить коины с этого входа может тот кто докажет, что такой-то адрес принадлежит ему".

OpenTrade - Open Source Cryptocurrency Exchange
NAgain
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
January 20, 2018, 10:07:24 PM
 #7

Дабы не создавать новую тему, спрошу тут.

Не могу понять, как и где в блоке хранятся адреса кошельков?
В блоки записываются не адреса кошельков, а скрипт транзакции. Декодируете скрипт - можете получить адрес кошелька... А можете не получить. В общем случае транзакция это произвольный контракт. В частном случае контракт звучит так: "потратить коины с этого входа может тот кто докажет, что такой-то адрес принадлежит ему".

Вроде бы я так и понял из спеки, но не был уверен в этом до конца. Хорошо, а как тогда блок-эксплореры показывают статистику по адресам с их балансом?

Заранее извиняюсь за, вероятно, нубские вопросы - просто хочу до конца разобраться.
kzv
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
January 20, 2018, 10:25:58 PM
Merited by fruit (2)
 #8

Дабы не создавать новую тему, спрошу тут.

Не могу понять, как и где в блоке хранятся адреса кошельков?
В блоки записываются не адреса кошельков, а скрипт транзакции. Декодируете скрипт - можете получить адрес кошелька... А можете не получить. В общем случае транзакция это произвольный контракт. В частном случае контракт звучит так: "потратить коины с этого входа может тот кто докажет, что такой-то адрес принадлежит ему".

Вроде бы я так и понял из спеки, но не был уверен в этом до конца. Хорошо, а как тогда блок-эксплореры показывают статистику по адресам с их балансом?

Заранее извиняюсь за, вероятно, нубские вопросы - просто хочу до конца разобраться.
99% транзакций - стандартные. Расшифровать скрипт стандартной транзакции проблем нет.

https://en.bitcoin.it/wiki/Script

Code:
OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG

OpenTrade - Open Source Cryptocurrency Exchange
NAgain
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
January 21, 2018, 12:18:38 AM
 #9

99% транзакций - стандартные. Расшифровать скрипт стандартной транзакции проблем нет.

А можно на пальцах объяснить как именно? Что-то никак не могу вкурить по описанию на вики как это сделать.
Coin-1
Legendary
*
Offline Offline

Activity: 2618
Merit: 2304



View Profile
January 21, 2018, 06:41:12 PM
 #10

99% транзакций - стандартные. Расшифровать скрипт стандартной транзакции проблем нет.

А можно на пальцах объяснить как именно? Что-то никак не могу вкурить по описанию на вики как это сделать.
Лучше посмотрите, как реализовано декодирование блоков в исходниках Bitcoin Core:
https://github.com/bitcoin/bitcoin
kzv
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
January 21, 2018, 07:17:06 PM
 #11

99% транзакций - стандартные. Расшифровать скрипт стандартной транзакции проблем нет.

А можно на пальцах объяснить как именно? Что-то никак не могу вкурить по описанию на вики как это сделать.

А зачем вам двоичный файл руками парсить? У битка есть RPC API, которые специально для таких целей предназначены.
Я могу конечно выложить сюда дамп блока и жирным выделить где там адреса, но нафига? Кроме родной RPC API, есть 100500 сторонних либ, которые умеют все это дело парсить.

OpenTrade - Open Source Cryptocurrency Exchange
NAgain
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
January 21, 2018, 07:19:45 PM
 #12

А зачем вам двоичный файл руками парсить? У битка есть RPC API, которые специально для таких целей предназначены.
Я могу конечно выложить сюда дамп блока и жирным выделить где там адреса, но нафига? Кроме родной RPC API, есть 100500 сторонних либ, которые умеют все это дело парсить.

Ключевая фраза - "разобраться для себя". В тупую юзать сторонние либы ума много не надо, а хочется въехать самому. По той же причине и RPC не использую. Так что если не сложно - выложите пжлст.
kzv
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
January 22, 2018, 08:19:09 AM
Merited by fruit (2)
 #13

Формат файлов с блоками
тут https://bitcointalk.org/index.php?topic=101514.msg1111214#msg1111214
или тут https://en.bitcoin.it/wiki/Protocol_documentation

Quote
Magic Bytes (4 bytes)
BlockSize w/ header (4 bytes)
Raw Header (80 bytes)
Number of Tx, N (VAR_INT)
Raw Tx1
Raw Tx2
...
Raw TxN
Magic Bytes (4 bytes)
BlockSize w/ header (4 bytes)
Raw Header (80 bytes)
Number of Tx, N (VAR_INT)
Raw Tx1
Raw Tx2
...
Raw TxN
Magic Bytes (4 bytes)
BlockSize w/ header (4 bytes)
Raw Header (80 bytes)
Number of Tx, N (VAR_INT)
Raw Tx1
Raw Tx2
...
Raw TxN
...
Формат рав транзакций тут https://www.siliconian.com/blog/16-bitcoin-blockchain/22-deconstructing-bitcoin-transactions

Вот ваш адрес в биг-ендиан формате. 0207c9ece04a9b5ef3ff441f3aad6bb63e323c05047a820ab45ebbe61385aa7446
Если в таком формате не нравится, вот тут написано, как из биг-ендиан получить базе58-чек https://github.com/bitcoin/bitcoin/blob/master/src/base58.cpp#L124

Разбирайтесь на здоровье ))

OpenTrade - Open Source Cryptocurrency Exchange
A-Bolt
Legendary
*
Offline Offline

Activity: 2334
Merit: 2374


View Profile
January 22, 2018, 03:13:32 PM
 #14

Quote
Хорошо, а как тогда блок-эксплореры показывают статистику по адресам с их балансом?

Чтобы определить баланс для конкретного адреса А нужно просканировать все блоки и найти транзакции с выходами, позволяющими обладателю приватного ключа от адреса А потратить эти выходы. Среди этих выходов необходимо найти непотраченные на текущий момент выходы (UTXO). Сумма непотраченных выходов и будет составлять баланс.
NAgain
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
January 22, 2018, 04:56:41 PM
 #15

kzv - Благодарю. Большинство видел, но есть пара упущенных моментов.

Quote
Хорошо, а как тогда блок-эксплореры показывают статистику по адресам с их балансом?

Чтобы определить баланс для конкретного адреса А нужно просканировать все блоки и найти транзакции с выходами, позволяющими обладателю приватного ключа от адреса А потратить эти выходы. Среди этих выходов необходимо найти непотраченные на текущий момент выходы (UTXO). Сумма непотраченных выходов и будет составлять баланс.

Это понятно. Я же имел ввиду то, что "как-то же блок-эксплореры получают адреса кошельков из транзакций, чтобы отобразить баланс каждого".

*Всем спасибо за помощь
DDL
Full Member
***
Offline Offline

Activity: 196
Merit: 100


Stipend - The Freelancer's Currency


View Profile
January 24, 2018, 08:30:41 PM
 #16

Откройте эксплорер любой монеты и посмотрите как он выглядит.

readonly
Jr. Member
*
Offline Offline

Activity: 238
Merit: 6


View Profile
January 27, 2018, 05:36:08 PM
 #17

А зачем вам двоичный файл руками парсить? У битка есть RPC API, которые специально для таких целей предназначены.
Я могу конечно выложить сюда дамп блока и жирным выделить где там адреса, но нафига? Кроме родной RPC API, есть 100500 сторонних либ, которые умеют все это дело парсить.

Ключевая фраза - "разобраться для себя". В тупую юзать сторонние либы ума много не надо, а хочется въехать самому. По той же причине и RPC не использую. Так что если не сложно - выложите пжлст.

вам же дали исходники выше. кто мешает разобраться для себя?

LETHEAN (https://lethean.io/) ★ BLOCKCHAIN BACKED P2P VPN ★ VPN Whitepaper (https://lethean.io/vpn-whitepaper/)
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!