Перейти к публикации
fxseminar

Что происходит с транзакциями двойного расходования?

Рекомендованные сообщения

Если "в систему" поступает вторая транзакция расходования одно и той же "монеты", то кто, когда и как (по какому алгоритму) "зарубит" одну (или обе?) из этих двух транзакций? И какую именно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Обе будут висеть в мемпуле.Но первой будет обработана та, к которой прикреплено больше биткоинов в качестве комиссии.
После того как одна из них вписана в блок, то после получения блока- вторя будет удалена из мемпула

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Но первой будет обработана та, к которой прикреплено больше биткоинов в качестве комиссии.

Неверно. Приоритет транзазакций идет по показателю сатоши/байт

Изменено пользователем stepmike

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Неверно. Приоритет транзазакций идет по показателю сатоши/байт

Количество байт то в обеих случаях одинаково) Разница лишь в том каков размер прикрепленных биткоинов.

 

Так то да, я это и имел ввиду. Если оценивать транзакции вообще, то приоритет идёт самым первым где больше биткоинов по отношению к 1 кбайт объема. Но в условиях задачи изначально сказано что объем кбайт одинаковый

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Обе будут висеть в мемпуле.Но первой будет обработана та, к которой прикреплено больше биткоинов в качестве комиссии.

После того как одна из них вписана в блок, то после получения блока- вторя будет удалена из мемпула

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, у каждой машины мемпул свой. И более того- после перезагрузки- мемпул очищается в ноль и начинает потихоньку заполняться по мере того как узел слушает сеть. На старых версиях клиента была проблема, что как только выделенный под мемпул кусок ОЗУ заполнялся под последний байт- то кошелек вылетал.

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

Удалить из мемпула- именно это и значит, удалить из своей ОЗУ те транзакции уже которые есть в блоке, иначе ОЗУ очень быстро кончится))

По поводу количества блоков, это справедливо лишь в случае если вписанная транзакция окажется в орфан блоке, то тогда да- спустя время она перестанет иметь силу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Когда 2 узла находят блок примерно в одно время, но из за того что у каждого из узлов свой мемпул, то итоговый состав блока у каждого из них будет свой.

 

-- разве каждый майнер не произвольно (по своим соображениям) отбирает транзакции из мемпула в тот вариант блока, который лично он будет пытаться подписать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

к которой прикреплено больше биткоинов в качестве комиссии.

После того как одна из них вписана в блок,

то после получения блока - вторя будет удалена из мемпула

Да уж, так витиевато не выражался даже Барков в своих стихах  :D

Оказывается, транзакции "вписываются" в блок (а, может, "описываются" в блоке?), биткоины "прикреплены" в качестве комиссии и прочее. А-а-а-а-а-а-а-а-а-а! Класс ! ;)

Количество байт то в обеих случаях одинаково) 

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

Изменено пользователем rammendo

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

-- разве каждый майнер не произвольно (по своим соображениям) отбирает транзакции из мемпула в тот вариант блока, который лично он будет пытаться подписать?

Нет не произвольно. Сперва отбираются самые жирные транзакции, потом более тощие. Жирность определяется по количеству биткоинов на  1 кб объема которые прикреплены к транзакциям.

 

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

Да уж, так витиевато не выражался даже Барков в своих стихах  :D

Оказывается, транзакции "вписываются" в блок (а, может, "описываются" в блоке?), биткоины "прикреплены" в качестве комиссии и прочее. А-а-а-а-а-а-а-а-а-а! Класс ! ;)

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

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

 

Все рассказаное мной упращено по максимуму, если вдруг в машине будет и школьник- чтоб и он понял

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Нет не произвольно. Сперва отбираются самые жирные транзакции, потом более тощие. Жирность определяется по количеству биткоинов на  1 кб объема которые прикреплены к транзакциям.

 

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

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

 

Все рассказаное мной упращено по максимуму, если вдруг в машине будет и школьник- чтоб и он понял

Да нифига ! Как хочет майнер, так и делает. Ему экономически выгодно брать "жирные" транзакции, но поступает он по-разному. Кано, например, берет нулевые транзакции, ускорители тоже берут дешевые транзакции, ВиаВТС - каждый свой блок, Антпул - когда захочет, один раз в 2-10 блоков.

Изменено пользователем rammendo

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да нифига ! Как хочет майнер, так и делает. Ему экономически выгодно брать "жирные" транзакции, но поступает он по-разному. Кано, например, берет нулевые транзакции, ускорители тоже берут дешевые транзакции, ВиаВТС - каждый свой блок, Внтпул - когда захочет, один раз в 2-10 блоков.

Ну так я и не утверждал, что нельзя поменять условия. В классическом клиенте bitcoin core приоритет - сперва обрабатываются самые жирные транзакции, а потом более тощие.

 

В других клиентах можно настроить так, как душе будет угодно. Хоть ровно наоборот- сперва тощие, потом жирные.

или обрабатываются транзакции на перевод выше 0,1 БТС- остальные игнорятся.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Все рассказаное мной упращено по максимуму, если вдруг в машине будет и школьник- чтоб и он понял

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

Так и скажи - отправитель "указывает" комиссию в переводе. Чем больше комиссия - чем быстрее обработается перевод.! ;)  

Ну так я и не утверждал, что нельзя поменять условия. В классическом клиенте bitcoin core приоритет - сперва обрабатываются самые жирные транзакции, а потом более тощие.

 

В других клиентах можно настроить так, как душе будет угодно. Хоть ровно наоборот- сперва тощие, потом жирные.

или обрабатываются транзакции на перевод выше 0,1 БТС- остальные игнорятся.

 

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

Соглашаюсь.

 

Пятница - развратница, хватить теребить клаву ! :D Может, уже подул западный ветер? ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Так и скажи - отправитель "указывает" комиссию в переводе. Чем больше комиссия - чем быстрее обработается перевод.! ;)  

Соглашаюсь.

 

Пятница - развратница, хватить теребить клаву ! :D Может, уже подул западный ветер? ;)

Нет, нельзя говорить про "указывает". Т.к я объясняю про биткоин с нуля, мне не очень хочется говорить еще более сложным языком абстрактных понятий. Это для меня и для вас понятно, что отправитель указывает транзакцию. Но для человека который меня везёт, и еще 40 минут назад про биткоин ничего не знавший- ему будет мыслить проще методами образов. И в моем восприятии под фразой: "прикрепляет комиссию к транзакции перед отправкой её в сеть" видется образ человека который привязывает листок бумаги к лапе голубя, перед тем как выпустить его в окно, чтоб он доставил сообщение

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

видится образ человека который привязывает листок бумаги к лапе голубя, перед тем как выпустить его в окно, чтоб он доставил сообщение

Вы - точно гуманитарий ! Мне такие образы не приходят в голову. ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Обе будут висеть в мемпуле.

Не будут. Вы хоть раз делали двойную трату в реале?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

-- разве каждый майнер не произвольно (по своим соображениям) отбирает транзакции из мемпула в тот вариант блока, который лично он будет пытаться подписать?

Абсолютно верно, так как койнбейз транзакцию "собирает" программное обеспечение пула, а не биткойн-коре клиент. Все остальное выше - фантазии теоретика. От биткойн клиента требуется только отдать текущий мемпул и проверять присланные ему блоки от пула на предмет соотвествия текущим условиям сложности и отправка их в сеть. Так происходит на нормальных пулах, вот тому пример https://bitbucket.org/ckolivas/ckpool , можно почитать и понять как и что работает.

На разных пулах происходит все по-разному, берете исходники (тех что есть опенсорсных) и смотрите.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

@Makezzila, вы все рассказываете неплохо в целом, но перед тем как учить других, наверное было бы неплохо самому все же разобраться с вопросом от и до. Тем более что это 40й раз. Для водителей, с которыми вы едете автостопом - это конечно прокатит, они ничего не знают, или на форуме Валеры вас встретят аплодисментами, но на этом форуме все же встречаются люди, которые могут оценить то, что другие "втирают" :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не будут. Вы хоть раз делали двойную трату в реале?

В том и дело что делал. И обе висят в мем пуле

 

Я сперва отправил биткоины вообще без комиссии. Прошло 24 часа- транзакция не отправилась.

После я отправил туже самую сумму но с комиссией в 0.0003 и спустя 30 минут транзакция подтвердилась.

 

При этом в течении 30 минут можно было наблюдать( на сайте blockchain.info) присутствие и первой транзакции без комисии и второй- с комиссией.

 

Так что ваша теория не верна

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

При этом в течении 30 минут можно было наблюдать( на сайте blockchain.info) присутствие и первой транзакции без комисии и второй- с комиссией.

blockchain.info это не блокчейн, и даже это не мемпул, и отображает она не транзакции из мемпула, а и своей собственной базы, после того как транзакция попала на эту ноду.

 

 

 

В том и дело что делал. И обе висят в мем пуле

Повторим? 

 

Вот здесь есть приватный ключ

https://forum.bits.media/index.php?/topic/13523-poloniexcom-birzha-kriptovaliut/page-107&do=findComment&comment=784325

Ky7XgpNoiHNTz11WkFnexNUXmHJ6HEvwKDMv97qGn9QAtVPnnSYN

от адреса

17RCxwnaQ6RXXMBHcD9abz4U6rSANMBHpq

и там достаточно монет чтобы сделать транзакцию и еще раз сделать двойную трату.

 

У меня три полных ноды, которые принимают и релеят все транзакции, в т.ч. и пыль, и транзакции с нулевой комиссий.

 

Вы делаете 2 транзакции, пишите в теме или в ЛС, что все готово,  я проверяю, как только я вижу их обе и одновременно в своем мемпуле - отправляю 0.1 BTC на указанный вами адрес.

 

То же самое может сделать любой желающий.  Показывать мне обе этих транзакции в блокэкспорерах не нужно!   Я хочу увидеть их в мемпуле, как заявляет, мистер @Makezzila

 

 

Обе будут висеть в мемпуле

 

 

 

Так что ваша теория не верна

Да неужели?  Только у меня кроме теории есть еще и практика.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Если "в систему" поступает вторая транзакция расходования одно и той же "монеты", то кто, когда и как (по какому алгоритму) "зарубит" одну (или обе?) из этих двух транзакций? И какую именно?
В целом всё верно расписал e46btc.

 

Т е будет происходить вот что:

  1. Отправили первую транзакцию в сеть, она разошлась по сети и попала в мемпулы многих нод.
  2. Отправили вторую транзакцию в сеть, она будет попадать в мемпулы тех нод, у кого нет первой транзакции. Также некоторые ноды могут заменить первую на вторую в своем мемпуле.
  3. Далее всё зависит от того, какая из транзакций первой окажется в мемпуле у пула, которому повезёт найти блок и будет ли она им в блок включена.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Я хочу увидеть их в мемпуле, как заявляет, мистер Makezzila

 

-- коллизия, наверное, в том, что понимается в качестве значения слова "мемпул":

 

А. мемпул одной (каждой) конкретной ноды

или

Б. мемпул всей сети нод, понимаемый как совокупность их индивидуальных мемпулов.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×