Jump to content
Sign in to follow this  
ASHPD

почему в UTXO не указывают хеш блока ?

Recommended Posts

вот пришло мне допустим сообщение транзакции. я беру его двойной sha256 хеш, флипаю порядок байтов (зачем?) и ищу его ПО ВСЕМУ блокчейну. трачу на это кучу времени. затем, допустим я нашел эту транзакцию где-то в блоке номер 120 000. теперь я должен проверить еще пол ляма блоков, что-бы убедиться, не был ли потрачен этот UTXO.

 

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

Share this post


Link to post
Share on other sites

@ASHPD ,  вопрос явно для раздела «Блокчейн и финтех», вы его намеренно во флейме создали? Или кто-то из модеров переместил?

Share this post


Link to post
Share on other sites
7 минут назад, Helber сказал:

@ASHPD ,  вопрос явно для раздела «Блокчейн и финтех», вы его намеренно во флейме создали? Или кто-то из модеров переместил?

да я так, по-скромному сразу во флудилку. может кто отзовётся. на английском языке не нагуглил как это делается. такой молниеносный поиск: 300 гигабайт данных за долю секунды перелапачивает по 150 тыщ раз за долю секунды. чудеса какие-то. как такое возможно ???

Share this post


Link to post
Share on other sites
35 минут назад, ASHPD сказал:

да я так, по-скромному сразу во флудилку. может кто отзовётся

Я сам такой бываю, но все-таки это не всегда правильно )

 

Сейчас перемещу. 

Share this post


Link to post
Share on other sites
2 часа назад, ASHPD сказал:

вот пришло мне допустим сообщение транзакции

Это что? Сообщение о транзакции ? Просто транзакция?

2 часа назад, ASHPD сказал:

я беру его двойной sha256 хеш

Что берешь? Зачем берешь? Чем?

2 часа назад, ASHPD сказал:

флипаю порядок байтов (

Ты флипаешь до космопорта??? (с)

Никогда не флипаю до космопорта. Беру флаер - надежнее и проще. 

 

В общем два раза перечитал, в голове галиматья.

 

Share this post


Link to post
Share on other sites
4 часа назад, ASHPD сказал:

каким образом фул ноды так быстро ищут транзакции и проверяют выходы на потраченность

 

Bitcoin Core ведёт свою внутреннюю базу UTXO. Каждый раз при поступлении нового блока эта база обновляется. Поэтому ноде не нужно перелопачивать весь блокчейн для определения баланса для конкретного адреса, достаточно сделать поиск по базе UTXO.

 

С недавних пор поис по базе UTXO доступен и простым смертным при помощи RPC scantxoutset, например так можно получить список UTXO и итоговый баланс для адреса 1KFHE7w8BhaENAswwryaoccDb6qcT6DbYY:

scantxoutset start "[\"addr(1KFHE7w8BhaENAswwryaoccDb6qcT6DbYY)\"]"

Работает не слишком быстро, но намного быстрее, чем сканирование всего блокчейна.

Share this post


Link to post
Share on other sites

2rammendo:

транзакцией в сети биткоин называют сообщение, в котором указаны непотраченые выходы, которые будут использованы как входы текущей транзакции, адреса, на которые следует переместить определенное количество сатошей с этих непотраченых выходов, публичные ключи от используемых UTXO и ЭЦП этих данных. двойной и перевёрнутый sha256 хеш - это id транзакции, который указывает на непотраченый выход.

 

так вот, проблема в том, что для того что-бы проверить входящую транзакцию нужно выполнить 2 задачи:

1) проверить наличие id транзакции в блокчейне

2) проверить не был ли потрачен UTXO

 

тоесть в любом случае для провекри транзакции нужно прочитать ВЕСЬ блокчейн. скорость чтения среднестатисчических SSD накопителей 500МБ/с. делим 300ГБ (вес блокчейна) на эту скорость чтения и получаем, что для проверки одной транзакции нужно целых 10 минут непрерывно читать данные с диска. это я еще не считаю необходимость двойного хеширования ВСЕХ транзакций в блокчейне, чтоб сверить id транзакции. конечно вы скажите, а за чем по одной проверять, можно же взять весь мемпул и раз в 10 минтут проверять сразу по 5 тыщ транзакций массово. я тоже так изначально подумал, но узлы принимают или отвергают транзакции МГНОВЕННО, за долю секунды! еще я думал что может используют индекс, в котором в порядке возрастания расположены ВСЕ принятые ранее транзакции и после каждого нового найденного блока перестраивают весь индекс. и еще второй индекс, в котором так же в порядке возрастания расположены все потраченные UTXO. тогда конечно можно было бы ускорить процес проверки транзакций, хоть и заняло бы это дополнительно кучу места, даже если брать не по 32 байта от id транзакции, а хотя-бы 5. да и вычеслительной мощности на перегенерацию всего такого индекса каждые 10 минут нужно очень много. но таких индексов я не обнаружил в bitcoin core.

Share this post


Link to post
Share on other sites
9 часов назад, Old Miner сказал:

 

Bitcoin Core ведёт свою внутреннюю базу UTXO. Каждый раз при поступлении нового блока эта база обновляется. Поэтому ноде не нужно перелопачивать весь блокчейн для определения баланса для конкретного адреса, достаточно сделать поиск по базе UTXO.

 

С недавних пор поис по базе UTXO доступен и простым смертным при помощи RPC scantxoutset, например так можно получить список UTXO и итоговый баланс для адреса 1KFHE7w8BhaENAswwryaoccDb6qcT6DbYY:


scantxoutset start "[\"addr(1KFHE7w8BhaENAswwryaoccDb6qcT6DbYY)\"]"

Работает не слишком быстро, но намного быстрее, чем сканирование всего блокчейна.

 

ага, я тоже так подумал, но перестроить индекс на пол миллиарда записей это не тривиальная задача. более того не каждый компьютер ВПРИНЦИПЕ сможет справится с такой задачай. не говоря уже о необходимости это делать каждые 10 минут. я для подобных операций арендую инстансы в gcp на сотни долларов и только под мощнейшими 100+ядерными системами удаётся совершать такие вычисления за несколько часов. а тут на офисном ноутбуке БАЦ и готово!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Topics

    • Почему все криптовалюты подчиняются биткоину?

      Всем привет. Уже около года я активно слежу за темой криптовалюты. Являясь тех специалистом, разрабатываю собственные системы сбора и анализа информации. И у меня возникает пара вопросов. 1) Почему графики изменения стоимости 20 топ криптовалют практически идентичны (по своей форме)? Проще говоря график роста биткоина или падение "рисует" графики топовой 20ки? Ведь разрабатывают эти проекты разные группы. И даже с точки зрения рынка это не нормально. 2) Почему параметры

      in Общий

    • Почему один выдающийся шахматный гроссмейстер оптимистичен в принятии биткойна

      📢 Почему один выдающийся шахматный гроссмейстер оптимистичен в принятии биткойна   По словам гроссмейстера шахмат Гарри Каспарова, биткоин может стать неотъемлемой частью развития игры в жизнь. В недавнем интервью человек, которого многие считают одним из величайших шахматистов, когда-либо хваливших Биткоин, объясняет, что децентрализованная цифровая валюта помогает людям поддерживать личную конфиденциальность и свободу. Он также объяснил, что, по его мнению, это всего лишь в

      in Флейм

    • Почему мы не удаляем топики?

      Решил оформить мысли на эту тему в одном публичном топике, чтобы дальше просто на него ссылки давать. С завидной периодичностью приходят мне запросы на удаление топиков, при том хотят удаления сами авторы. Причина чаще всего одна – топик вредит репутации больше, чем помогает. Это не всегда так, но многие владельцы бизнесов настолько ревностны к своим детищам, что если не только хвалят – значит вредит и надо убрать. Какие наиболее частые причины в реальности?  Например, была спорная сит

      in Предложения и замечания по работе форума

    • Власть – сообществу! Почему будущее соцсетей за децентрализацией

      Социальные сети, поддерживаемые и управляемые сообществом пользователей, способны решить проблемы цензуры и демонетизации. Централизованные социальные сети все чаще поддаются критике из-за цензуры и эксплуатации пользовательских данных. У пользователя нет никаких гарантий, что его аккаунт не будет удален без видимых причин, а персональные данные – использованы в коммерческих целях или, проще говоря, проданы третьей стороне.   Регистрируя канал на YouTube или группу в Facebook, пол

      in Общий

    • Почему умирает ForumBitsMedia

      Почему умирает ForumBitsMedia. ForumBitsMedia когда-то давно был одним из лучших форумов о криптовалюте и всем что с ней  связано, но что мы видим сейчас? На форуме почти не осталось людей которые  были зарегистрированных хотяб два года назад, а онлайн в в 500 человек это стало норма и большая их часть это незарегистрированные пользователи. Так что происходит с форумом? Почему люди которые раньше пользовались форумом переходят на другие ресурсы? Вы скажите что все происходит из-за спад

      in Флейм

×
×
  • Create New...