Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
3 февраля 2012, 3:31:30 PM   # 1
 
 
Сообщений: 52
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin протокол - необходимо объяснение пары вещей.

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Привет там снова красивая Bitcoin сообщество

Я делаю ИТ-проекты объяснить, как делает Bitcoin работу, с простым клиентом (с помощью BitcoinJ) в моем университете, и я застрял на пару вещей - наверное, я слишком глуп, чтобы найти ответ я гугл неполадок нескольких способов, а также вика Безразлично» т объяснить мне их. Я очень признателен за любую помощь для любого из этих вопросов.

1. Извлечение блоков - как это работает?
Я знаю, что есть возможность получать простые блоки по их хэшу, но для извлечения каких-либо блоков, мне нужно знать эти хэш - вот почему другой вариант был реализован (getblocks). А вот проблема - как же алгоритм блока Fetching работ? Насколько я читал, - я получил это так (например, я нахожусь на этапе 10 000 и сеть на 19 900):
я выдавать getblocks пакет, посылая блок локатора хэш в качестве хэш-функции блока 10 000 и я получаю в ответ фактура пакет со списком блоков 10 001 - 10 500? И я повторяю, что с хэш-10 500, чтобы получить еще 500 пакет и т.д. и т.п., пока я не достиг 19 900?
Кроме того - когда я получаю недействительные блоки в моей цепи (позволяет сказать, что это блок 10005 и сеть также на 10005, но шахтные 2 новые блоки недействительны) я отправить getblocks пакет с нового блока хэша, как локатор (шахтной 10005) и в ответ я получаю блок 10005 хэша, который я не знаю, поэтому я отправить хэш блок 10004 и в ответ снова я получить хэш-я не знаю, то я отправить хороший блок хэш # 10003, который затем поставляется с фактура пакет для 2-х последних блоков?
Для того, чтобы быть уверенным, - MSG_BLOCK в Inventory Вектор именно хэш-блока, который я загрузить, то только с помощью получить данные, правильно?


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

Проблема а) в основном - как же TxIn в одном блоке найти TxOut из другого блока, имеющего только хэш его? Он не может пройти через все блоки, чтобы, наконец, найти правильную сделку, потому что это будет слишком много времени для HDD! И приходит другую проблему - даже если бы мы могли просто переходить от одной операции к другой (установочной сделке по номеру блока, в котором она расположена, чтобы предотвратить потребляющий HDD - вероятно, это делается таким образом, я надеюсь, что вы люди помогаете мне найти ответ) - как удвоит расходы проверки работы?

Как vector76 пояснил в одном из своих постов:
котировка
Пример:
вход Тх1 1 поступает из предыдущего ТХ со значением 1
вход Тх1 2 поступает из предыдущего ТХ со значением 2
Выход Тх1 1 имеет значение, равное 2,5, и требует, чтобы ключ А быть востребован.
Выход Тх1 2 имеет значение, равное 0,5, и требует, чтобы ключ В быть востребованы.

Человек с ключом A создает транзакцию и передает его шахтерам:
вход Тх2 1 происходит от TX1 / вывода 1.
Выход Тх2 1 имеет значение 2,0 и требует ключа C, чтобы быть заявленным
Выход Тх2 2 имеет значение, равное 0,5, и требует ключ А быть заявленными

Другие узлы заметить, что Тх1 / выход 1 до сих пор не израсходованы и имеет значение, равное 2,5. Они проверяют, что выходы не больше, чем 2,5. Они отмечают Tx1 / output1, используемый.

Человек с ключом создает еще один (двойной тратиться) сделки:
вход Tx3 1 происходит от TX1 / вывода 1
Выход Tx3 1 имеет значение, равное 1,0, и требует ключа D, чтобы быть заявленным
Выход Tx3 2 имеет значение, равное 1,5, и требует ключ Е быть заявленными

Другие узлы наблюдать что Прд1 / выход 1 уже израсходованы, и они отвергают эту сделку.

У меня жирным шрифтом слова "наблюдать" потому что я не знаю, что это на самом деле означает здесь? Скажем:
Я провожу наличные деньги от TX1 / выхода 1 (который, например, в блоке 5 000) в блоке 10 000 (TX2), а затем я пытаюсь снова провести в блоке 15 000 (TX3) - что шахтеры реально сделать? Они проверяют все блоки (и сделок с ним), начиная с блока 5 000, от которого он тратится, чтобы найти какие-либо материалы для этой продукции? Это потребляет бы HDD ЛИ для каждой проверки транзакции, и я не могу себе представить, как это будет работать в будущем с большим количеством транзакций в секунду и Milions блоков.

Заранее спасибо за любые ответы, вероятно, я буду иметь другие проблемы, опять же, я надеюсь, что я получить их решить здесь (не только для меня!)
kstepyra сейчас офлайн Пожаловаться на kstepyra   Ответить с цитированием Мультицитирование сообщения от kstepyra Быстрый ответ на сообщение kstepyra


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


3 февраля 2012, 5:57:20 PM   # 2
kjj
 
 
Сообщения: 1302
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin протокол - необходимо объяснение пары вещей.

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





котировка
Пример:
Другие узлы наблюдать что Прд1 / выход 1 уже израсходованы, и они отвергают эту сделку.
У меня жирным шрифтом слова "наблюдать" потому что я не знаю, что это на самом деле означает здесь? Скажем:
Я провожу наличные деньги от TX1 / выхода 1 (который, например, в блоке 5 000) в блоке 10 000 (TX2), а затем я пытаюсь снова провести в блоке 15 000 (TX3) - что шахтеры реально сделать? Они проверяют все блоки (и сделок с ним), начиная с блока 5 000, от которого он тратится, чтобы найти какие-либо материалы для этой продукции? Это потребляет бы HDD ЛИ для каждой проверки транзакции, и я не могу себе представить, как это будет работать в будущем с большим количеством транзакций в секунду и Milions блоков.

Они ищут свою локальную базу данных для операций, которые включают в себя Tx1.out1 в качестве входных данных. Если они найдут совпадение, что сделка уже погашена, и они отвергают новую.

В настоящее время весь блок цепь, в том числе каждой сделки с тех пор начало времени находится под гигабайтом. Если он когда-либо растет до точки, где она становится громоздкой, есть вещи, которые мы можем сделать. Но масштабирование вплоть до "все коммерции в мире" уровень еще не решенная проблема.
kjj сейчас офлайн Пожаловаться на kjj   Ответить с цитированием Мультицитирование сообщения от kjj Быстрый ответ на сообщение kjj

3 февраля 2012, 7:24:15 PM   # 3
 
 
Сообщений: 52
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin протокол - необходимо объяснение пары вещей.

Хм, подумав немного, и принимая ваше объяснение я наткнулся на это:
Когда сделка распространяются на шахтер, он:
1. проверяет, где prev_out хэши располагаются в блоке цепи (начиная с нового блока в цепи и движение назад) - то есть цепь находится на блоке 150000 и prev_out хэш для нашего нового TxIn в 130000 так приложение запускается в блоке 150000 и идет в обратном направлении, пока он ударил 130000 блока и надлежащий хэш в нем. После этого он проверяет TxOuts в этой транзакции adiacent для нашего нового TxIn
2. проверяет, есть ли какой-либо двойной проводит путем проверки каких-либо TxIns (начиная с места TxOuts и идти вперед до нового блока в цепочке), которая проводится уже монеты в TxOuts - т.е. TxOut находится в блоке 130000 и транзакция уже затраченные в блоке 140000 так что идет от блока 130000, пока не находит должного TxIn в блоке 140000.

Я прав в этих предположениях? Или prev_out хэш блока (+ дополнительные необходимые вещи), когда транзакция находится, чтобы найти его очень быстро?
kstepyra сейчас офлайн Пожаловаться на kstepyra   Ответить с цитированием Мультицитирование сообщения от kstepyra Быстрый ответ на сообщение kstepyra

3 февраля 2012, 7:44:48 PM   # 4
kjj
 
 
Сообщения: 1302
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin протокол - необходимо объяснение пары вещей.

Хм, подумав немного, и принимая ваше объяснение я наткнулся на это:
Когда сделка распространяются на шахтер, он:
1. проверяет, где prev_out хэши располагаются в блоке цепи (начиная с нового блока в цепи и движение назад) - то есть цепь находится на блоке 150000 и prev_out хэш для нашего нового TxIn в 130000 так приложение запускается в блоке 150000 и идет в обратном направлении, пока он ударил 130000 блока и надлежащий хэш в нем. После этого он проверяет TxOuts в этой транзакции adiacent для нашего нового TxIn
2. проверяет, есть ли какой-либо двойной проводит путем проверки каких-либо TxIns (начиная с места TxOuts и идти вперед до нового блока в цепочке), которая проводится уже монеты в TxOuts - т.е. TxOut находится в блоке 130000 и транзакция уже затраченные в блоке 140000 так что идет от блока 130000, пока не находит должного TxIn в блоке 140000.

Я прав в этих предположениях? Или prev_out хэш блока (+ дополнительные необходимые вещи), когда транзакция находится, чтобы найти его очень быстро?

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

3 февраля 2012, 8:13:53 PM   # 5
 
 
Сообщений: 52
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin протокол - необходимо объяснение пары вещей.

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

3 февраля 2012, 8:22:04 PM   # 6
kjj
 
 
Сообщения: 1302
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin протокол - необходимо объяснение пары вещей.

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

База данные, вероятно, с помощью ВТКЕЯ индексировать вещи, так что Это не нужно ходить от блока к блоку либо, но то, что происходит в базе данных не имеет значения.
kjj сейчас офлайн Пожаловаться на kjj   Ответить с цитированием Мультицитирование сообщения от kjj Быстрый ответ на сообщение kjj

4 февраля 2012, 10:24:22 AM   # 7
 
 
Сообщений: 52
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin протокол - необходимо объяснение пары вещей.

Это будет объяснить пункт 2 очень хорошо. Спасибо! Как насчет 1? Это правильно?
kstepyra сейчас офлайн Пожаловаться на kstepyra   Ответить с цитированием Мультицитирование сообщения от kstepyra Быстрый ответ на сообщение kstepyra

4 февраля 2012, 6:08:58 PM   # 8
 
 
Сообщений: 52
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin протокол - необходимо объяснение пары вещей.

3. Что входные данные для создания подписи транзакций?


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

5 февраля 2012, 4:47:15 PM   # 9
 
 
Сообщения: 1526
Цитировать по имени
цитировать ответ
по умолчанию Re: Bitcoin протокол - необходимо объяснение пары вещей.

Подпись над хэш упрощенной формы сделки. См метод SignatureHash () в C ++ или Transaction.hashForSignature в BitcoinJ
Майк Хирн сейчас офлайн Пожаловаться на Mike Хирн   Ответить с цитированием Мультицитирование сообщения от Mike Хирн Быстрый ответ на сообщение Mike Хирн



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW