Author

Topic: Как выглядит блок? (Read 1856 times)

jr. member
Activity: 238
Merit: 6
January 27, 2018, 12:36:08 PM
#17
А зачем вам двоичный файл руками парсить? У битка есть RPC API, которые специально для таких целей предназначены.
Я могу конечно выложить сюда дамп блока и жирным выделить где там адреса, но нафига? Кроме родной RPC API, есть 100500 сторонних либ, которые умеют все это дело парсить.

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

вам же дали исходники выше. кто мешает разобраться для себя?
DDL
full member
Activity: 196
Merit: 100
Stipend - The Freelancer's Currency
January 24, 2018, 03:30:41 PM
#16
Откройте эксплорер любой монеты и посмотрите как он выглядит.
newbie
Activity: 7
Merit: 0
January 22, 2018, 11:56:41 AM
#15
kzv - Благодарю. Большинство видел, но есть пара упущенных моментов.

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

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

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

*Всем спасибо за помощь
legendary
Activity: 2317
Merit: 2318
January 22, 2018, 10:13:32 AM
#14
Quote
Хорошо, а как тогда блок-эксплореры показывают статистику по адресам с их балансом?

Чтобы определить баланс для конкретного адреса А нужно просканировать все блоки и найти транзакции с выходами, позволяющими обладателю приватного ключа от адреса А потратить эти выходы. Среди этих выходов необходимо найти непотраченные на текущий момент выходы (UTXO). Сумма непотраченных выходов и будет составлять баланс.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
January 22, 2018, 03:19:09 AM
#13
Формат файлов с блоками
тут https://bitcointalksearch.org/topic/m.1111214
или тут 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

Разбирайтесь на здоровье ))
newbie
Activity: 7
Merit: 0
January 21, 2018, 02:19:45 PM
#12
А зачем вам двоичный файл руками парсить? У битка есть RPC API, которые специально для таких целей предназначены.
Я могу конечно выложить сюда дамп блока и жирным выделить где там адреса, но нафига? Кроме родной RPC API, есть 100500 сторонних либ, которые умеют все это дело парсить.

Ключевая фраза - "разобраться для себя". В тупую юзать сторонние либы ума много не надо, а хочется въехать самому. По той же причине и RPC не использую. Так что если не сложно - выложите пжлст.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
January 21, 2018, 02:17:06 PM
#11
99% транзакций - стандартные. Расшифровать скрипт стандартной транзакции проблем нет.

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

А зачем вам двоичный файл руками парсить? У битка есть RPC API, которые специально для таких целей предназначены.
Я могу конечно выложить сюда дамп блока и жирным выделить где там адреса, но нафига? Кроме родной RPC API, есть 100500 сторонних либ, которые умеют все это дело парсить.
legendary
Activity: 2618
Merit: 2304
January 21, 2018, 01:41:12 PM
#10
99% транзакций - стандартные. Расшифровать скрипт стандартной транзакции проблем нет.

А можно на пальцах объяснить как именно? Что-то никак не могу вкурить по описанию на вики как это сделать.
Лучше посмотрите, как реализовано декодирование блоков в исходниках Bitcoin Core:
https://github.com/bitcoin/bitcoin
newbie
Activity: 7
Merit: 0
January 20, 2018, 07:18:38 PM
#9
99% транзакций - стандартные. Расшифровать скрипт стандартной транзакции проблем нет.

А можно на пальцах объяснить как именно? Что-то никак не могу вкурить по описанию на вики как это сделать.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
January 20, 2018, 05:25:58 PM
#8
Дабы не создавать новую тему, спрошу тут.

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

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

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

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

Code:
OP_DUP OP_HASH160  OP_EQUALVERIFY OP_CHECKSIG
newbie
Activity: 7
Merit: 0
January 20, 2018, 05:07:24 PM
#7
Дабы не создавать новую тему, спрошу тут.

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

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

Заранее извиняюсь за, вероятно, нубские вопросы - просто хочу до конца разобраться.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
January 20, 2018, 04:40:06 PM
#6
Дабы не создавать новую тему, спрошу тут.

Не могу понять, как и где в блоке хранятся адреса кошельков?
В блоки записываются не адреса кошельков, а скрипт транзакции. Декодируете скрипт - можете получить адрес кошелька... А можете не получить. В общем случае транзакция это произвольный контракт. В частном случае контракт звучит так: "потратить коины с этого входа может тот кто докажет, что такой-то адрес принадлежит ему".
newbie
Activity: 7
Merit: 0
January 20, 2018, 03:09:08 PM
#5
Дабы не создавать новую тему, спрошу тут.

Не могу понять, как и где в блоке хранятся адреса кошельков?
newbie
Activity: 140
Merit: 0
January 20, 2018, 09:01:31 AM
#4
А где можно посмотреть как выглядет тот самый блок который получается когда майнеры майнят биткоины и как в него записывается информация? Где можно посмотреть пример реального блока который используется в цепочке блоков биткоина? Какой объем памяти занимает блок и все ли блоки одинакового размера?
Да. Так же заинтересовался этим вопросом.
Sad
member
Activity: 148
Merit: 45
https://bitaps.com/
January 02, 2017, 07:30:34 AM
#3
Вот здесь описана структура блока

https://en.bitcoin.it/wiki/Block
sr. member
Activity: 298
Merit: 267
December 30, 2016, 08:27:37 PM
#2
А где можно посмотреть как выглядет тот самый блок который получается когда майнеры майнят биткоины и как в него записывается информация? Где можно посмотреть пример реального блока который используется в цепочке блоков биткоина? Какой объем памяти занимает блок и все ли блоки одинакового размера?

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

https://www.youtube.com/watch?v=1-1qJ91aBH4&t
sr. member
Activity: 328
Merit: 258
December 30, 2016, 12:17:03 PM
#1
А где можно посмотреть как выглядет тот самый блок который получается когда майнеры майнят биткоины и как в него записывается информация? Где можно посмотреть пример реального блока который используется в цепочке блоков биткоина? Какой объем памяти занимает блок и все ли блоки одинакового размера?
Jump to: