Bitcoin Forum
April 24, 2024, 12:20:34 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Как выглядит блок?  (Read 1827 times)
kaznachey (OP)
Sr. Member
****
Offline Offline

Activity: 328
Merit: 258


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

А где можно посмотреть как выглядет тот самый блок который получается когда майнеры майнят биткоины и как в него записывается информация? Где можно посмотреть пример реального блока который используется в цепочке блоков биткоина? Какой объем памяти занимает блок и все ли блоки одинакового размера?
You can see the statistics of your reports to moderators on the "Report to moderator" pages.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
Rashid Ahmed
Sr. Member
****
Offline Offline

Activity: 298
Merit: 265


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: 2436
Merit: 2169



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: 2311
Merit: 2297


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!