Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
6 мая 2011, 2:27:22 PM   # 1
 
 
Сообщения: 182
Цитировать по имени
цитировать ответ
по умолчанию Re: Надёжная обработки транзакций от bitcoind

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Я катался несколько алгоритмов для обработки транзакций в прочном образом и был несколько идей, ни один из которых были очень хорошими. Прошлой ночью я говорил о них в # Bitcoin-разработчика и получили хорошую обратную связь, и я думаю, что я прибыл в один, который будет работать хорошо, и требует только один минимальное изменение в bitcoind. (На самом деле, я уже сделал это, и протестировал патч.)

Проблема заключается в том, как согласовать сделки, полученные bitcoind с государством в другой базе данных, даже без возможности пропустить сделку или два раза обработки одной транзакции. Это решение учитывает, что ранее обработанные транзакции могут быть удалены из блока цепи и повторно вставлены в другой блок позже, если bitcoind обнаруживает, что другая, более сильная цепь существует. Для поддержки этого обнаружения, bitcoind должен быть изменен, чтобы включать в себя блок хэш в выходной listtransactions. Позвольте мне объяснить процесс.

Во-первых, вы должны иметь какой-то, где вы храните обработанные транзакции. Таблица должна содержать Биткойн идентификатор транзакции и блок-идентификатор (хеш, а не номер последовательности) столбцы. Затем вы опрашивать bitcoind периодически так:

  • Запрос последних N операций, где N является произвольным числом.
  • Прогулка возвращаемого списка назад (последняя сделка первый) ищет сделки, которые вы считаете, подтвержденными (1 или 3 или 6 подтверждений, или любые ваши требования указывать). Для каждой операции:
    • Посмотрите на идентификатор транзакции в таблице транзакций. Если он не существует, это новая сделка; обработать его и вставить идентификатор транзакции и блок-ID в таблицу. (Использование транзакций, конечно, заставить обработку атомарным.)
    • Если идентификатор транзакции существует, сравнить блок хэш в таблице на блок-хэш в транзакции возвращается из bitcoind. Если они совпадают, то вы обработали все новые операции и теперь должны прекратить / возврат. Если они не совпадают, это сделки, которые были обработаны уже, но был перемещен в новый блок из-за сиротой оригинального блока, который вы видели транзакцию в. Обновите блок хэш-идентификатор в таблице и продолжить обработку, так как вполне возможно, что новая транзакция по-прежнему существует до этого один в блоке цепи.
  • Если вы достигните начала списка транзакций, то вы не нашли какой-либо сделки, которые вы уже обработаны и что имеет правильный блок хэш. Увеличение N (что-то добавить к нему или умножить его на что-то) и начать весь процесс заново.

Я считаю, что это самый простой процесс, который будет правильно учесть любые изменения в блок цепи. Если вы можете увидеть проблему с этим алгоритмом, или таким образом, что он может быть упрощен (особенно если изменения bitcoind не нужно), пожалуйста, дайте мне знать.
cdhowie сейчас офлайн Пожаловаться на cdhowie   Ответить с цитированием Мультицитирование сообщения от cdhowie Быстрый ответ на сообщение cdhowie


Как заработать Биткоины?
Без вложений. Не майнинг.


6 мая 2011, 4:35:06 PM   # 2
 
 
Сообщения: 182
Цитировать по имени
цитировать ответ
по умолчанию Re: Надёжная обработки транзакций от bitcoind

Получил 1806 Биткоинов
Реальная история.





После разговора в дополнительном # Bitcoin-разработчике и некоторый взлом, это превратилось в другой патч.  Изменения кода немного больше, но это упростит код примирения чрезвычайно, требуя только один RPC вызов, чтобы получить все операции, которые должны быть обработаны.
cdhowie сейчас офлайн Пожаловаться на cdhowie   Ответить с цитированием Мультицитирование сообщения от cdhowie Быстрый ответ на сообщение cdhowie

6 мая 2011, 6:07:00 PM   # 3
 
 
Сообщения: 294
Цитировать по имени
цитировать ответ
по умолчанию Re: Надёжная обработки транзакций от bitcoind

Я не ясно, цель этого изменения, ни то, что меняется. Является ли это о том, как узел сделок с сделок с осиротевших блоков, из-за вилы?

хмм ... Nevermind, посмотрев на странице GitHub Я думаю, я знаю, что это такое. В принципе, если у вас есть система (как, скажем, Blockexplorer), что нужно смотреть на все блоки / сделках, это способ, чтобы убедиться, что вы получаете каждый?
BitterTea сейчас офлайн Пожаловаться на BitterTea   Ответить с цитированием Мультицитирование сообщения от BitterTea Быстрый ответ на сообщение BitterTea

6 мая 2011, 6:36:45 PM   # 4
 
 
Сообщения: 182
Цитировать по имени
цитировать ответ
по умолчанию Re: Надёжная обработки транзакций от bitcoind

Я не ясно, цель этого изменения, ни то, что меняется. Является ли это о том, как узел сделок с сделок с осиротевших блоков, из-за вилы?

хмм ... Nevermind, посмотрев на странице GitHub Я думаю, я знаю, что это такое. В принципе, если у вас есть система (как, скажем, Blockexplorer), что нужно смотреть на все блоки / сделках, это способ, чтобы убедиться, что вы получаете каждый?
Это больше ориентирована на сайты электронной коммерции или сайтов, которые позволяют пользователям, скажем, внести деньги на свой счет (думаю witcoin или betco.in). Это способ, с помощью одной команды и минимальных усилий получить список вещей вы еще не видели, так что вы можете обновить базу данных.
cdhowie сейчас офлайн Пожаловаться на cdhowie   Ответить с цитированием Мультицитирование сообщения от cdhowie Быстрый ответ на сообщение cdhowie

6 мая 2011, 6:42:41 PM   # 5
 
 
Сообщения: 504
Цитировать по имени
цитировать ответ
по умолчанию Re: Надёжная обработки транзакций от bitcoind

В принципе, операции могут быть в нескольких блоках они не могут?

Если два шахтеры оба включают один и те же передадут в блоке на основе общего предка?

Действительность или нет сделки, не зависит от того, его в блоке или нет. В конце концов один из этих блоков будет построен на остальной части сети и новый "правда" блок наконечник принят решением. Строго говоря, это блоки, которые "подтвердил" не сделки.

Поэтому вы не можете иметь списки транзакций включают блок хэша, так как это позволяет им быть более чем в одном, по крайней мере временно. Так как блоки, которые получают подтвердили, каждый из этих транзакций блока ссылок также будет иметь разное количество подтверждений.
realnowhereman сейчас офлайн Пожаловаться на realnowhereman   Ответить с цитированием Мультицитирование сообщения от realnowhereman Быстрый ответ на сообщение realnowhereman

6 мая 2011, 7:19:43 PM   # 6
 
 
Сообщения: 182
Цитировать по имени
цитировать ответ
по умолчанию Re: Надёжная обработки транзакций от bitcoind

В принципе, операции могут быть в нескольких блоках они не могут?

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

Действительность или нет сделки, не зависит от того, его в блоке или нет. В конце концов один из этих блоков будет построен на остальной части сети и новый "правда" блок наконечник принят решением. Строго говоря, это блоки, которые "подтвердил" не сделки.
Это утверждение верно на его поверхности, но есть одна вещь, которую вы не принимая во внимание - дважды расходы. Просто потому, что у вас есть транзакции X, что затрачивает монету Z не означает, что не существует другая транзакция Y плавающая вокруг другой половины сети проводить одни и те же монеты Z. После того, как один из них делает это в блок, клиенты, которые получают, что блок будет смотреть на другой сделки и заключать он является недействительным, поскольку он тратит уже потраченные монеты, и поместите его (или пометить его недействительным, но в любом случае это не будет рассматриваться как действительные). Чем глубже сделка с точки зрения вашего клиента блочной цепи, тем меньше вероятность того, что существует альтернативный блок-цепь в существовании, которое тратит ту же монету. Таким образом, шесть глубоко было решено в разумном количестве, чтобы рассмотреть сделку "полностью подтвердили," так как это означает, что около часа прошло, не видя альтернативную цепочку. Это более чем достаточно времени, чтобы примирить законные сирота блочные цепи. (Если кто-то отделился от сети с целью создать альтернативный блок цепь, которая аннулирует сделку включены более шесть уровней глубоко в основной блок цепи, они будут либо нужно больше вычислительной мощности, чем остальная часть сети или сумасшедшую сумму удачи.)

Поэтому вы не можете иметь списки транзакций включают блок хэша, так как это позволяет им быть более чем в одном, по крайней мере временно. Так как блоки, которые получают подтвердили, каждый из этих транзакций блока ссылок также будет иметь разное количество подтверждений.
Да, но ваш клиент видит только один из этих условий. Клиент не будет рассматривать сделки, чтобы быть в двух блоках, а не в какой-либо значимым образом. Я не совсем уверен, что вы получаете в здесь - точно, какая часть любого алгоритма я представил срывается в том случае, когда уже обрабатываются транзакции изменения блоков?
cdhowie сейчас офлайн Пожаловаться на cdhowie   Ответить с цитированием Мультицитирование сообщения от cdhowie Быстрый ответ на сообщение cdhowie

15 мая 2011, 8:23:48 AM   # 7
 
 
Сообщения: 504
Цитировать по имени
цитировать ответ
по умолчанию Re: Надёжная обработки транзакций от bitcoind

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

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

Ваш алгоритм ломается, потому что вы требуя ссылку один-к-одному с операциями и блоками, но есть один-ко-многим (в течение короткого промежутка времени, по крайней мере) между сделками и блоками.
realnowhereman сейчас офлайн Пожаловаться на realnowhereman   Ответить с цитированием Мультицитирование сообщения от realnowhereman Быстрый ответ на сообщение realnowhereman

15 мая 2011, 8:36:42 PM   # 8
 
 
Сообщения: 182
Цитировать по имени
цитировать ответ
по умолчанию Re: Надёжная обработки транзакций от bitcoind

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

Ваш алгоритм ломается, потому что вы требуя ссылку один-к-одному с операциями и блоками, но есть один-ко-многим (в течение короткого промежутка времени, по крайней мере) между сделками и блоками.
Нет, это не правильно. Клиент не может поддерживать несколько "блок цепи кандидатов," нет и нет "Процедура голосования."  Клиент будет всегда Рассмотрим одну цепочку, чтобы быть главной цепи, и что является самой длинной цепью, или в случае двух одинаково длинных цепей, один он был осведомлен о первом. Существует прямая связь один-к-одному с транзакциями и блоков которые находятся в основной цепи (Основная цепь с точки зрения клиента, конечно).
cdhowie сейчас офлайн Пожаловаться на cdhowie   Ответить с цитированием Мультицитирование сообщения от cdhowie Быстрый ответ на сообщение cdhowie



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW