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

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

      Потому что влияние человеческого фактора на криптовалюты минимально. Криптовалютная платформа создаёт автоматический слой правды, нарушение которого более затратно по сравнению с выгодами, которое это разрушение может привести.   Потому что обслуживание криптовалют низкозатратно. Централизованная валюта обслуживается множеством банков, каждый из которых сам определяет, какие ИТ системы используются и какие специалисты нужны для её сопровождения. Каждый аспект децентрали

      in Флейм

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

      Иногда ценв USDT намного отличается от 1:1 по отношению к доллару. Почему это так, если каждый USDT обеспечен USD? То же касается остальных стаблкоинов. USDS так очень нестабилен, хотя: "StableUSD (USDS)-это fiat-обеспеченный stablecoin, созданный стабильно. Каждый токен StableUSD юридически поддерживается и погашается за доллар США, хранящийся на депозитном счете, управляемом стабильно регулируемыми попечителями, такими как Prime Trust. Чтобы обеспечить полный и современный уровень прозрачности

      in Общий

    • Почему удалили мою тему?

      https://forum.bits.media/index.php?/topic/180370-попытка-майнинга-нужна-помощь/

      in Флейм

    • Почему не стоит вкладывать в Trittium (TRITT)

      1. Монета всю свою короткую криптовалютную жизнь опускается в низходящем тренде, неминуемо стремясь к 0 (торги начинались с 4500 сатошей, а на сегодняшний момент монета стоит менее 200). 2. Цель данной монеты платформа криптовалютных займов (очень долго все ждут эту платорму, к сожалению она может работать только при условии получения лицензии, разработчики уже 2 раза облажались по поводу лицензии, а в  3-й раз вообще оказалось что адвокат, подававший документы на лицензию чего то там перепута

      in Общий

    • Малварь - подмена адреса твоего кошелька. Почему надо быть внимательным?

      Привет, криптан! Картинка выше как раз в тему и отображает целиком и полностью информацию, которую узнаешь ниже. Периодически вижу в сети да и на этом форуме пару раз проскакивала инфа, что люди жалуются на то, что с их кошелька были выведены средства без их участия и, соответственно, эти люди уверены на 100% в том, что их аккаунт/кошелек был взломан. Да, может так и есть, но если ты без проблем заходишь в свой кошелек после этого, значит он не был взломан. Почему? Потому что после взлома обычно

      in Безопасность

×
×
  • Create New...