29 октября 2017, 10:27:43 AM   # 1
 
 
Сообщений: 41
Цитировать по имени
цитировать ответ
по умолчанию Re: Технические вопросы по blockchain

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


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

Я разработка основного blockchain с использованием nodeJS и машинописи, в основном, чтобы узнать и лучше понять, как / криптовалюту работа Blockchain, этот проект использует алгоритм POW, и консенсус поймать самый длинный узел отсутствует.

Мои вопросы:

1. Блок есть это только одна сделка или она может иметь больше сделок?

2. Шахтеры: Итак, представьте себе, я запускаю свою монету, и нет ни одной сделки пока, поэтому шахтеры не имеют работы, если шахтеры DonT может сделать работу, никаких новых монеты не поставляются, так что мои вопросы, даже если нет никаких сделок, может блокировать без каких-либо транзакций объединены в Blockchain? также "Пустые блоки" ?

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

Представьте себе, у меня есть конечная точка в узле / ТХ, то вы отправляете с JSON от, до, и количество:

- С бумажником приложением было бы легко, вы просто проверить открытый ключ с приватным и отправить транзакцию / ТМ, но в любом случае, что бы запретить пользователь посылать транзакции / ТЙ, проверка должна быть сделана на сервере, так что я должен отправить открытые и закрытые ключи к серверу, не так ли?

Но это может привести к проблемам безопасности, что происходит, если есть посредник, слушая ваши запросы?

4. Хранение
Как и другие монеты хранить Blockchain, обычные файлы, MySQL, или в памяти? Redis? то, что является обычным способом для хранения Blockchain?

5. Что было бы лучше, относиться к каждому узлу в качестве публичного API, который может потребляться с HTTP или использовать сокеты (я думаю, что это один самый лучший, быстрый и securest).

6. Имеет ли каждый узел выполнять горнодобывающие задачи?

Я Цените много ваше чтение, и я надеюсь получить некоторый свет от вас!

С наилучшими пожеланиями


redigaffi сейчас офлайн Пожаловаться на redigaffi   Ответить с цитированием Мультицитирование сообщения от redigaffi Быстрый ответ на сообщение redigaffi


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


29 октября 2017, 11:09:07 AM   # 2
 
 
Сообщений: 41
Цитировать по имени
цитировать ответ
по умолчанию Re: Технические вопросы по blockchain

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





Хорошо, о том, как проверить, я владелец кошелька, я прочитал, что я должен послать подпись с транзакцией
 поэтому сервер может проверить открытый ключ от подписи. Могу ли я использовать RSA для этого? Я знаю, что Bitcoin использует
 RSA и ECDSA, но хорошо я думаю, что для моей основной монеты RSA будет достаточно, это правильно или же с помощью онов
 RSA неправильно?
redigaffi сейчас офлайн Пожаловаться на redigaffi   Ответить с цитированием Мультицитирование сообщения от redigaffi Быстрый ответ на сообщение redigaffi

29 октября 2017, 11:09:23 AM   # 3
 
 
Сообщения: 1288
Цитировать по имени
цитировать ответ
по умолчанию Re: Технические вопросы по blockchain

1. Блок есть это только одна сделка или она может иметь больше сделок?
Блоки будут иметь транзакции до предельного размера (то есть. 1Мбы для Bitcoin).
2. Шахтеры: Итак, представьте себе, я запускаю свою монету, и нет ни одной сделки пока, поэтому шахтеры не имеют работы, если шахтеры DonT может сделать работу, никаких новых монеты не поставляются, так что мои вопросы, даже если нет никаких сделок, может блокировать без каких-либо транзакций объединены в Blockchain? также "Пустые блоки" ?
Это ошибочное мнение. Шахтеры не совсем горны операция, они в основном хэширования заголовка блока, пока они не находят хэш, который соответствует целям. Сделки включены в Merkle корень из заголовка блока. Там должно быть по крайней мере, coinbase транзакции в блоке.
3. О системе бумажника, я понятия не имею, как это работает, я знаю, что открытый ключ генерируется из секретного ключа, но, как сервер может знать, что сделка происходит от владельца кошелька?

Представьте себе, у меня есть конечная точка в узле / ТХ, то вы отправляете с JSON от, до, и количество:

- С бумажником приложением было бы легко, вы просто проверить открытый ключ с приватным и отправить транзакцию / ТМ, но в любом случае, что бы запретить пользователь посылать транзакции / ТЙ, проверка должна быть сделана на сервере, так что я должен отправить открытые и закрытые ключи к серверу, не так ли?

Но это может привести к проблемам безопасности, что происходит, если есть посредник, слушая ваши запросы?
Использование ECDSA. В транзакции, пользователь предоставляет открытый ключ, а также подпись сделки. Используя открытый ключ, узлы могут использовать открытый ключ и подпись, чтобы убедиться, что она соответствует SHA256 в TXID.

6. Имеет ли каждый узел выполнять горнодобывающие задачи?
Нет. Полные узлы, как правило, только проверки транзакций и блоков.
ranochigo сейчас офлайн Пожаловаться на ranochigo   Ответить с цитированием Мультицитирование сообщения от ranochigo Быстрый ответ на сообщение ranochigo

29 октября 2017, 11:18:49 AM   # 4
 
 
Сообщений: 41
Цитировать по имени
цитировать ответ
по умолчанию Re: Технические вопросы по blockchain

1. Блок есть это только одна сделка или она может иметь больше сделок?
Блоки будут иметь транзакции до предельного размера (то есть. 1Мбы для Bitcoin).
2. Шахтеры: Итак, представьте себе, я запускаю свою монету, и нет ни одной сделки пока, поэтому шахтеры не имеют работы, если шахтеры DonT может сделать работу, никаких новых монеты не поставляются, так что мои вопросы, даже если нет никаких сделок, может блокировать без каких-либо транзакций объединены в Blockchain? также "Пустые блоки" ?
Это ошибочное мнение. Шахтеры не совсем горны операция, они в основном хэширования заголовка блока, пока они не находят хэш, который соответствует целям. Сделки включены в Merkle корень из заголовка блока. Там должно быть по крайней мере, coinbase транзакции в блоке.
3. О системе бумажника, я понятия не имею, как это работает, я знаю, что открытый ключ генерируется из секретного ключа, но, как сервер может знать, что сделка происходит от владельца кошелька?

Представьте себе, у меня есть конечная точка в узле / ТХ, то вы отправляете с JSON от, до, и количество:

- С бумажником приложением было бы легко, вы просто проверить открытый ключ с приватным и отправить транзакцию / ТМ, но в любом случае, что бы запретить пользователь посылать транзакции / ТЙ, проверка должна быть сделана на сервере, так что я должен отправить открытые и закрытые ключи к серверу, не так ли?

Но это может привести к проблемам безопасности, что происходит, если есть посредник, слушая ваши запросы?
Использование ECDSA. В транзакции, пользователь предоставляет открытый ключ, а также подпись сделки. Используя открытый ключ, узлы могут использовать открытый ключ и подпись, чтобы убедиться, что она соответствует SHA256 в TXID.

6. Имеет ли каждый узел выполнять горнодобывающие задачи?
Нет. Полные узлы, как правило, только проверки транзакций и блоков.

 Привет, спасибо за Ваш ответ. Я не понимаю, что вы могли бы объяснить, что ?, Моя блочная структура проста и я не Have
 "Merkle Root" Моя блочная структура выглядит следующим образом:

 частный индекс: номер;
 частная метка времени: номер;
 личные данные: данные;
 частный proofOfWork: номер;
 частные трудности: номер;
 частная previousHash: строка;
 частный хэш: строка;
 
 Где данные список "операции"Я не хочу, чтобы повторить Bitcoin, так что я думаю, что я не нужен Merkle корень, я знаю,
 что шахтеры просто делают некоторые "тяжелая работа" что в действительности не имеет отношения к блоку, на самом деле мой алгоритм минирования выполняет следующие действия:
 
 sha256 (lastDifficulty + трудность) и поиск на сумму 0 в конце строки.
 
 Но мой вопрос не решен, что произойдет, если нет каких-либо сделок в "мой" бы я объединить блок без операций
 к blockchain? Или нет, но если нет, то, как новые монеты могут быть поставлены?
 
 С наилучшими пожеланиями
redigaffi сейчас офлайн Пожаловаться на redigaffi   Ответить с цитированием Мультицитирование сообщения от redigaffi Быстрый ответ на сообщение redigaffi

29 октября 2017, 1:38:39 PM   # 5
 
 
Сообщения: 2002
Цитировать по имени
цитировать ответ
по умолчанию Re: Технические вопросы по blockchain

Но мой вопрос не решен, что произойдет, если нет каких-либо сделок в "мой" бы я объединить блок без операций
к blockchain? Или нет, но если нет, то, как новые монеты могут быть поставлены?

Если вы разрабатываете новую монету, то вам нужно будет решить, как ваша монета будет работать.

Если вы спрашиваете, как Bitcoin обрабатывает ситуацию ...

Bitcoin требует, чтобы каждый блок имеет по крайней мере 1 TRANSACTION. Там будет специальная сделка часто называется "coinbase сделка" или "транзакции генерации" где каждый блок должен включать в себя. Это операция, которая платит шахтер свою награду. Если есть больше чем одна транзакция в блоке, то требуется, чтобы быть первой транзакции в списке. Блок без этой операции считается недействительным и отвергается всеми остальными.

DannyHamilton сейчас офлайн Пожаловаться на DannyHamilton   Ответить с цитированием Мультицитирование сообщения от DannyHamilton Быстрый ответ на сообщение DannyHamilton

29 октября 2017, 3:09:11 PM   # 6
 
 
Сообщений: 41
Цитировать по имени
цитировать ответ
по умолчанию Re: Технические вопросы по blockchain

О спасибо, теперь я понимаю.

Итак "награда" Сам входит в новый блок, так, например:

Я запускаю новую монету, и шахтеры начать добычу, но не в ожидании транзакции доступна в течение времени Лун.

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

В моей монете сложность измеряется следующим образом:

Сложность 2:
Средства найти доказательство, когда хэширования его с последним доказательством находит хэш с 2 0 в конце хэша,

В начале это было бы очень легко добывать блоки, но каждый 10 Блока я увеличиваю трудности (что означает больше времени). Будет ли это правильно?

И еще один вопрос:
Когда новые транзакции поступает в мой узел, проверить подпись транзакций с использованием открытого ключа (чтобы знать, если отправитель ТХ является владельцем адреса), затем добавить эту сделку к "отложенный пул транзакций" это пул допустимых операций, которые должны быть заминированы, будет ли узел вперед этого уважительных незавершенных сделок с другими узлами тоже?

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

И еще один вопрос:
Что такое система хранения данных? Просто держать его в памяти или MySQL, например? или MongoDB?

И еще один вопрос:
Everytime кто-то транзакция я должен перебрать все блоки и транзакции, чтобы проверить, если громкие имеет достаточно средств?

Извините за мое невежество, я не делаю это, чтобы начать новую монету, только для обучения и опубликовать его!

Благодаря!!
redigaffi сейчас офлайн Пожаловаться на redigaffi   Ответить с цитированием Мультицитирование сообщения от redigaffi Быстрый ответ на сообщение redigaffi

29 октября 2017, 3:26:16 PM   # 7
 
 
Сообщения: 1288
Цитировать по имени
цитировать ответ
по умолчанию Re: Технические вопросы по blockchain

Таким образом, каждый раз, когда шахтер добыча старта, новые блоки создаются с вознаграждением только шахтерами, в этом случае, как я мог справиться питанием? с трудом?
Bitcoin обрабатывает общую сумму через блок деления пополам. Для того, чтобы убедиться, что она распределяется в течение периода распространения, сложность гарантирует, что блоки генерируются только как можно ближе, как десять минут, как это возможно. Это гарантирует, что около 12.5BTC (прямо сейчас) получает распределяется на 10 минут.
В моей монете сложность измеряется следующим образом:

Сложность 2:
Средства найти доказательство, когда хэширования его с последним доказательством находит хэш с 2 0 в конце хэша,

В начале это было бы очень легко добывать блоки, но каждый 10 Блока я увеличиваю трудности (что означает больше времени). Будет ли это правильно?
Нет! Это не имеет смысла вообще. Если трудности не меняется, когда частота блока становится выше или ниже, то предложение не будет распространяться.
Когда новые транзакции поступает в мой узел, проверить подпись транзакций с использованием открытого ключа (чтобы знать, если отправитель ТХ является владельцем адреса), затем добавить эту сделку к "отложенный пул транзакций" это пул допустимых операций, которые должны быть заминированы, будет ли узел вперед этого уважительных незавершенных сделок с другими узлами тоже?

Потому что это может быть возможно, что шахтер не подключен ко всем узлам, и если горняк шахты блок узел направит действительный блок ко всем узлам.
Когда вы можете проверить, что сделка действительна и входы в вашем UTXO, вы будете ретранслировать его коллега.
И еще один вопрос:
Everytime кто-то транзакция я должен перебрать все блоки и транзакции, чтобы проверить, если громкие имеет достаточно средств?
Нет. Bitcoin не работает с открытым ключом или адресами. Когда транзакция рассматривается узлом, они будут удалены и создавать новые неизрасходованные выходы в их UTXO наборе. Когда кто-то intiates сделки, они эффективно проводить вход. По этой причине, узлы не отслеживать остатки в адресах.
ranochigo сейчас офлайн Пожаловаться на ranochigo   Ответить с цитированием Мультицитирование сообщения от ranochigo Быстрый ответ на сообщение ranochigo

29 октября 2017, 8:48:08 PM   # 8
 
 
Сообщения: 2002
Цитировать по имени
цитировать ответ
по умолчанию Re: Технические вопросы по blockchain

О спасибо, теперь я понимаю.

Итак "награда" Сам входит в новый блок, так, например:

В Bitcoin? Да, как это работает.

Я запускаю новую монету, и шахтеры начать добычу, но не в ожидании транзакции доступна в течение времени Лун.

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

Это до вас. Вы разрабатываете монету, вы должны решить, как вы хотите работать.

с трудом?

С Bitcoin, затрудненным используются для контроля того, что среднее время между решенными блоками. Если вы хотите, чтобы ваша монета работать таким же образом, то вам нужно найти способ для всех узлов, чтобы договориться о том, как быстро блоки решаются, а затем все настроить трудности таким же образом, чтобы ускорить или замедлить блоки по мере необходимости.

Если вы не хотите, чтобы ваша монета работать точно так же, как Bitcoin, то вы можете решить, как вы хотите использовать трудности (если таковые имеются).

В моей монете сложность измеряется следующим образом:

Сложность 2:
Средства найти доказательство, когда хэширования его с последним доказательством находит хэш с 2 0 в конце хэша,

Вы говорите о хэша, как представлено в двоичном виде? Если это так, что не собирается дать вам больше контроля над трудом. Например, если вы используете SHA256, то вы будете только в состоянии сделать максимум 256 КОРРЕКТИРОВКИ, а затем вы будете бежать из нулей. Кроме того, добавление нуля является удвоением сложности. Вы не сможете настроить трудности на 10% или 5% или что-нибудь подобное. Вы только будете в состоянии сделать это удвоит, как трудно!

В начале это было бы очень легко добывать блоки, но каждый 10 Блока я увеличиваю трудности (что означает больше времени). Будет ли это правильно?

Таким образом, если вы используете SHA256 и бинарное представление, после 2560 блоков вы использовали все свои нули, и имеют максимально возможную трудность. Блоки будут решены раз в несколько триллионов лет. После всего 720 блоков вы уже будете иметь более высокие, чем трудности Bitcoin, и после того, как 760 блоков вашей монета будет более чем в 10 раз сложнее, чем мой Bitcoin.

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

И еще один вопрос:
Когда новые транзакции поступает в мой узел, проверить подпись транзакций с использованием открытого ключа (чтобы знать, если отправитель ТХ является владельцем адреса), затем добавить эту сделку к "отложенный пул транзакций" это пул допустимых операций, которые должны быть заминированы, будет ли узел вперед этого уважительных незавершенных сделок с другими узлами тоже?

Это ваша монета. Вы можете заставить его работать, как вы. Если это то, что вы хотите это сделать, то это то, что он должен делать.

Если вы спрашиваете о том, как Bitcoin обрабатывает транзакции:

Каждый узел поддерживает список неизрасходованных выходов. Когда он получает транзакцию, он проверяет, что все входы транзакций в своем списке неизрасходованных выходов. Если есть какие-либо исходные данные, которые не находятся в этом списке, то сделка недействительна. Узел затем выполняет сценарий, сформированный путем конкатенации Txout-скрипт (также называемый scriptPubKey) с Txin-скрипта (также называемый scriptSig). Если этот сценарий не выполняется без ошибок, или не имеет действительный результата, то сделка недействительна.

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

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

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

И еще один вопрос:
Что такое система хранения данных? Просто держать его в памяти или MySQL, например? или MongoDB?

Это ваша монета. Вы можете использовать любую базу данных вы хотите. Bitcoin имеет некоторые данные в структурах памяти, а также другие данные, которые он хранит в LevelDB.

И еще один вопрос:
Everytime кто-то транзакция я должен перебрать все блоки и транзакции, чтобы проверить, если громкие имеет достаточно средств?

Это ваша монета. Вы можете заставить его работать, как вы

Если вы спрашиваете, как Bitcoin это делает ...

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

30 октября 2017, 1:52:53 PM   # 9
 
 
Сообщений: 41
Цитировать по имени
цитировать ответ
по умолчанию Re: Технические вопросы по blockchain

Так что ... Я думаю, что я действительно путают, если я могу сделать думает, что я хочу, что делает другие монеты и "крипта валюта", Так что должно иметь / правила следуют каждый крипто валюты быть даже криптовалюта?

Является ли это Blockchain? Децентрализованная структура блока?

Что делает криптовалюту криптовалюты, я подумал, что это протокол, который я должен следить, чтобы моя монета может быть "реальный" криптовалюта.

Я читал, что Bitcoin использует ECC для формирования общественного адреса / закрытый ключ. Какие альтернативы я мог бы использовать для моей основной монеты?
redigaffi сейчас офлайн Пожаловаться на redigaffi   Ответить с цитированием Мультицитирование сообщения от redigaffi Быстрый ответ на сообщение redigaffi

30 октября 2017, 2:30:27 PM   # 10
 
 
Сообщения: 2002
Цитировать по имени
цитировать ответ
по умолчанию Re: Технические вопросы по blockchain

Так что ... Я думаю, что я действительно путают, если я могу сделать думает, что я хочу, что делает другие монеты и "крипта валюта", Так что должно иметь / правила следуют каждый крипто валюты быть даже криптовалюта?

Является ли это Blockchain? Децентрализованная структура блока?

Что делает криптовалюту криптовалюты, я подумал, что это протокол, который я должен следить, чтобы моя монета может быть "реальный" криптовалюта.

Я читал, что Bitcoin использует ECC для формирования общественного адреса / закрытый ключ. Какие альтернативы я мог бы использовать для моей основной монеты?

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

Каждая криптовалюта имеет свой собственный протокол. В МАЕ случаев эти протоколы создаются ленивыми людьми, которые начинают просто копируя существующий протокол, а затем внести незначительные изменения без какого-либо учета общего воздействия на их системе.

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

До введения Satoshi в части blockchain как метод децентрализованного консенсуса, все cryptocurrencies требуется доверенный объект, чтобы определить порядок операций. Blockchain было значительное новшество, которое позволило cryptocurrencies действовать в децентрализованном порядке.

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

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

DannyHamilton сейчас офлайн Пожаловаться на DannyHamilton   Ответить с цитированием Мультицитирование сообщения от DannyHamilton Быстрый ответ на сообщение DannyHamilton

2 ноября 2017, 12:41:52 PM   # 11
 
 
Сообщений: 41
Цитировать по имени
цитировать ответ
по умолчанию Re: Технические вопросы по blockchain

Привет, еще раз спасибо за большой ответ.

У меня есть еще один вопрос, о шахтерах:

Что именно произойдет, когда 2 шахтеров найти следующий блок в то же время?

Я уже читал о orphane блоков, или шахтеры 51% ... но я не очень понимаю, что на самом деле происходит, некоторые основные объяснения?

Когда это происходит, может я просто поймать самую длинную доступную действительную BlockChain и заменить его со всеми другими узлами?

С наилучшими пожеланиями!
redigaffi сейчас офлайн Пожаловаться на redigaffi   Ответить с цитированием Мультицитирование сообщения от redigaffi Быстрый ответ на сообщение redigaffi

2 ноября 2017, 2:11:05 PM   # 12
 
 
Сообщения: 2002
Цитировать по имени
цитировать ответ
по умолчанию Re: Технические вопросы по blockchain

Привет, еще раз спасибо за большой ответ.

У меня есть еще один вопрос, о шахтерах:

Что именно произойдет, когда 2 шахтеров найти следующий блок в то же время?

Я уже читал о orphane блоков, или шахтеры 51% ... но я не очень понимаю, что на самом деле происходит, некоторые основные объяснения?

Вы спрашиваете, как Bitcoin обрабатывает это? Или вы спрашиваете, что вы должны сделать, чтобы справиться с этим?

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

Представим есть blockchain с 3-х блоков в нем (блоки A, B, и C):

A -> B -> С

Теперь представьте, что вы шахтер и ты мой новый блок (блок D1) в верхней части блока С.
В то же самое время кто-то еще мин новый блок (блок D2) на верхней части блока С.

Вы оба транслировать блоки с коллегами, что вы подключены. Блоки передаются по сети и в конечном итоге я получаю блок D1 (ваш блок) от одного из моих коллег. Мой узел проверяет, что ваш блок является действительным. Это, так что я добавить его к моему blockchain, и передать его всем узлам, я подключен. Миллисекундные позже, один из коллег, что я подключен к присылает блок D2 (тот, который вы не создавали). Я вижу, что у меня уже есть блок на этой высоте, и что обе цепи имеют одинаковую длину, так что я просто держать блок D1.

В то же время кто-то другой получает блок D2 первой от одного из своих коллег. Их узел проверяет, что блок D2 является действительным. Это, так что они добавляют его к их blockchain, и передать его всем узлам, к которым они присоединены. Миллисекунды позже, они получают блок D1. Они видят, что у них уже есть блок на этой высоте, и что обе цепи имеют одинаковую длину, поэтому они просто держать блок D2.

Так, в среднем, если блоки были переданы в одно и то же время, примерно половина из узлов и шахтеров в сети будет слышать о блоке D1 первых, а другая половина будет слышать о блоке D2 первой, сеть не согласится на то, что blockchain выглядит как прямо сейчас. Они не будут иметь консенсус.

Те, кто слышал о блоке D1 первом будет иметь следующий blockchain:
A -> B -> C -> D1

Те, кто слышал о блоке D2 первых будет иметь следующий blockchain:
A -> B -> C -> D2

В конце концов шахтер будет решать новый блок. Давайте представим, что это шахтер, который работал с цепью D2. Мы будем называть его блок-E2. Он будет транслировать свой блок на всех коллег он подключен. Если бы они работали с D2 цепи, то они будут просто добавить блок E2 в своей цепи после подтверждения. Если бы они работали с D1 цепи, то они будут видеть, что D2 цепь теперь длиннее их цепь. Они будут отказаться от своей цепи и переключатель теперь с более длинной цепью D2. Поскольку блок Е2 распространяется через сеть в конечном счете, все узлы будут переключаться на, теперь уже, D2 цепи. Все узлы будут иметь цепь, которая выглядит следующим образом:
A -> B -> C -> D2 -> E2

Блок D1, будет оставлен как "осиротевший" блок.


Когда это происходит, может я просто поймать самую длинную доступную действительную BlockChain и заменить его со всеми другими узлами?

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

https://www.youtube.com/watch?v=bBC-nXj3Ng4
DannyHamilton сейчас офлайн Пожаловаться на DannyHamilton   Ответить с цитированием Мультицитирование сообщения от DannyHamilton Быстрый ответ на сообщение DannyHamilton

2 ноября 2017, 4:33:44 PM   # 13
 
 
Сообщений: 41
Цитировать по имени
цитировать ответ
по умолчанию Re: Технические вопросы по blockchain

Ницца VID, это помогло.

Когда у меня есть бета-версия проекта вы можете проверить это? Я собираюсь опубликовать код на GitHub.

Спасибо!
redigaffi сейчас офлайн Пожаловаться на redigaffi   Ответить с цитированием Мультицитирование сообщения от redigaffi Быстрый ответ на сообщение redigaffi

2 ноября 2017, 5:11:22 PM   # 14
 
 
Сообщений: 41
Цитировать по имени
цитировать ответ
по умолчанию Re: Технические вопросы по blockchain

Как я могу вычислить вероятность нахождения Икс consecutives «0 'в строке ша?
redigaffi сейчас офлайн Пожаловаться на redigaffi   Ответить с цитированием Мультицитирование сообщения от redigaffi Быстрый ответ на сообщение redigaffi

2 ноября 2017, 5:51:34 PM   # 15
 
 
Сообщения: 2002
Цитировать по имени
цитировать ответ
по умолчанию Re: Технические вопросы по blockchain

Как я могу вычислить вероятность нахождения Икс consecutives «0 'в строке ша?

Следует отметить, что концепция требует "последовательных 0 '" является обобщением, которое часто используется при введении "доказательство правильности работы" концепция для людей.

На самом деле, Bitcoin не требует определенного количества 0 '.

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

Результат SHA256 не является строка. Это число. Это число может быть представлено в двоичной, шестнадцатеричной, десятичной, или любой другой базы, которая вам нравится. Когда она представлена ​​в виде шестнадцатеричного числа, это выглядит немного как "строка" потому что он имеет буквы A, B, C, D, E, F и в нем.

Потому что на самом деле число, которое просто, показываемая вам в шестнадцатеричном (или основание16), Он может быть легко по сравнению с целевым значением, чтобы определить, если он больше, равно или меньше, чем эта цель.

При использовании двоичного представления в 256 битном кеше, и вам требуется определенное количество 0 ', то каждое увеличение сложности является DOUBLE предыдущей трудностью. Это не очень полезно, когда вы только хотите, чтобы увеличить сложность на 10% или 15%.

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

Вот пример ...

Представим, вместо того, чтобы использовать 256 битное хэш, мы используем 8 битный хэш.
С 8 бит можно представить в общей сложности 256 "возможные значения" (От 0 до 255).
Если вы поставили цель трудности при значении 128, то любое значение меньше 128 является "действительное значение",
Таким образом, вероятность того, что хэш составляет менее цель:
128/256 = 0,5 = 50%

Теперь давайте представим, что мы увеличиваем сложность за счет снижения целевого значения до 95.
В этом случае, вероятность того, что хэш составляет менее цель:
95/256 = 0,371 = 37,1%

Обратите внимание, что если вы решили потребовать, чтобы двоичное представление хэша начинается с числом последовательных нулей, то у вас есть только 8 возможных целевые значения:
Нулевой 0 в: XXXXXXXX = 256 действительных значений из 256 возможных значений = 100%
Один 0: 0xxxxxxx = 128 действительных значений из 256 возможных значений = 50%
Два 0 По: 00xxxxxx = 64 действительных значений из 256 возможных значений = 25%
Три 0 в: 000xxxxx = 32 действительных значений из 256 возможных значений = 12,5%
Четыре 0 в: 0000xxxx = 16 действительных значений из 256 возможных значений = 6,25%
Пять 0 в: 00000xxx = 8 действительных значений из 256 возможных значений = 3,125%
Шесть 0 в: 000000xx = 4 действительных значения из 256 возможных значений = 1,5625%
Семь 0 ': 0000000x = 2 Допустимые значения из 256 возможных значений = 0,78125%
Восемь 0: 00000000 = 1 допустимое значение из 256 возможных значений = 0.390625%

Обратите внимание, что если вы хотите, вероятность 10%, вы не можете сделать это с "подряд ведущие нули", Однако, если вы используете "целевое значение", И 8 бит хэша, то вы можете увеличить или уменьшить трудность, а всего лишь 0,390625%, если вы просто увеличить или уменьшить целевое значение на 1.



256-битный хэш с "целевое значение" дает вам еще больше контроля над вероятностью. Каждый раз, когда вы увеличить или уменьшить целевое значение на 1, увеличить или уменьшить вероятность путем:
1/2256 = 0,00000000000000000000000000000000000000000000000000000000000000000000000000086%
DannyHamilton сейчас офлайн Пожаловаться на DannyHamilton   Ответить с цитированием Мультицитирование сообщения от DannyHamilton Быстрый ответ на сообщение DannyHamilton

2 ноября 2017, 6:46:12 PM   # 16
 
 
Сообщений: 41
Цитировать по имени
цитировать ответ
по умолчанию Re: Технические вопросы по blockchain

Так, Bitcoin в основном говорит шахтер,

это цель: 5000 (между это таким случайным числом ??, что узел генерирует?)

А шахтер должен найти хэш также:

если SHA256 (prevHash + randNumber) < цель
   доказательство = randNumber

Хорошо, где же цель приходит? это случайное число, или это какое-то отношение с предыдущими блоками?
redigaffi сейчас офлайн Пожаловаться на redigaffi   Ответить с цитированием Мультицитирование сообщения от redigaffi Быстрый ответ на сообщение redigaffi

2 ноября 2017, 7:17:08 PM   # 17
 
 
Сообщения: 2002
Цитировать по имени
цитировать ответ
по умолчанию Re: Технические вопросы по blockchain

Так, Bitcoin в основном говорит шахтер,

это цель: 5000

Эффективно, да.

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

Вы можете прочитать технические подробности на по следующей ссылке чтобы узнать о преобразовании из 32 бит "Nbits" Значение, сохраненное в заголовке блока к фактическому целевому значению:
https://bitcoin.org/en/developer-reference#target-nbits

(Между это таким случайным числом ??, что узел генерирует?)

Цель не "случайный", Целевой начал минимальное значение, установленное Satoshi. В тот момент, не была достаточно хэш мощности в сети еще для блоков будут завершены через каждые 10 минут, так что добыча была немного медленнее, в самом начале.

Раз в 2016 год блоки, каждый узел, КАЖДЫЙ соло шахтер и EVER майнинг выполняет расчет повторно целевой точно такие же трудности для них самих. Так как все они работают с теми же данными, и они все делают точно такой же расчет, все они в конечном итоге в том же ответ.

Процесс эффективно выполнить следующие действия:
  • Посмотрите на метку времени текущего блока.
  • Посмотрите на метку времени блока, который был создан 2016 году блоки назад.
  • Вычислить разницу между двумя отметками.
  • Если эта разница меньше, чем 20160 минут, то блоки создаются слишком быстро. Рассчитывают соотношение между фактической разности и предполагаемых 20160 минут. Отрегулировать цель сложности, чтобы быть более трудными к тому же соотношению, чтобы получить среднее время между блоками назад ближе к 10 минут.
  • Если эта разница больше, чем 20160 минут, то блоки создаются слишком медленно. Рассчитывают соотношение между фактической разности и предполагаемых 20160 минут. Отрегулировать цель сложности, чтобы быть менее трудными к тому же соотношению, чтобы получить среднее время между блоками еще ближе к 10 минут.
  • Если расчетный коэффициент регулировки составляет более 400%, то регулировать только на 400% в этот раз, и проверить снова в 2016 году блоков.

А шахтер должен найти хэш также:

если SHA256 (prevHash + randNumber) < цель
   доказательство = randNumber

Нет.

Miner должен найти хэш:

Если SHA256 (currentBlockHeader) < цель
  доказательство = currentBlockHeader

Блок заголовка для Bitcoin содержит 6 частей информации:
  • 4 байта номер версии
  • 32 байт хэш предыдущего блока
  • 32 байта корень Merkle (обязательство к списку блока транзакции)
  • 4 байта метки времени
  • 4 байта Nbits (сложность целевой представление)
  • 4 байта Nonce

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

Хорошо, где же цель приходит? это случайное число, или это какое-то отношение с предыдущими блоками?

Это имеет отношение к количеству времени, которое требуется для создания в 2016 году блоков. Трудность не adjsuted после каждого блока. Он только корректируется один раз в 2016 году блоков. Он настроен, чтобы сохранить среднее количество времени между блоками, близких к 10 минут.
DannyHamilton сейчас офлайн Пожаловаться на DannyHamilton   Ответить с цитированием Мультицитирование сообщения от DannyHamilton Быстрый ответ на сообщение DannyHamilton

3 ноября 2017, 3:28:53 PM   # 18
 
 
Сообщений: 41
Цитировать по имени
цитировать ответ
по умолчанию Re: Технические вопросы по blockchain

Привет! Еще раз спасибо большое!

Теперь я лучше понимаю, так что это будет базовой реализацией HashCash приспособления Bitcoin в:




Но я не понимаю, как вычислить трудности, так, например, я начинаю с этой целью (это начало):


целевых = 9999999999999999999999999999999999999999999999999999999999999999999999

Как я мог вычислить сложность / вероятность? Я не знаю, максимальное целое число результат:
пусть responseAsInt = ParseInt (отклика, 16);

Между, чтобы сделать его более difficultier моему, был бы я просто удалить девять в конце, или просто отдохнуть, например:

999999999999999999999999999999999999999999999999999999999999999999 (удалено из-за 4-х девять)

или

9999999999999999999999999999999999999999999999999999999999999999990001 (удалено 9998)


Должен иметь тот же эффект, но что лучше?

Большое спасибо на самом деле!



redigaffi сейчас офлайн Пожаловаться на redigaffi   Ответить с цитированием Мультицитирование сообщения от redigaffi Быстрый ответ на сообщение redigaffi

3 ноября 2017, 4:18:53 PM   # 19
 
 
Сообщения: 2002
Цитировать по имени
цитировать ответ
по умолчанию Re: Технические вопросы по blockchain

Привет! Еще раз спасибо большое!

Теперь я лучше понимаю, так что это будет базовой реализацией HashCash приспособления Bitcoin в:

- чик -

Но я не понимаю, как вычислить трудности, так, например, я начинаю с этой целью (это начало):

целевых = 9999999999999999999999999999999999999999999999999999999999999999999999

Как я мог вычислить сложность / вероятность? Я не знаю, максимальное целое число результат:
пусть responseAsInt = ParseInt (отклика, 16);

Между, чтобы сделать его более difficultier моему, был бы я просто удалить девять в конце, или просто отдохнуть, например:

999999999999999999999999999999999999999999999999999999999999999999 (удалено из-за 4-х девять)

или

9999999999999999999999999999999999999999999999999999999999999999990001 (удалено 9998)


Должен иметь тот же эффект, но что лучше?

Большое спасибо на самом деле!

Вы не можете использовать nodejs целые числа (например, возврат из метода ParseInt) с SHA256, так как максимальное целое значение, которое nodejs может безопасно держать изначально является 9007199254740991:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER

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

Это, как говорится, SHA256 имеет максимальное значение 115792089237316195423570985008687907853269984665640564039457584007913129639936

Таким образом, цель 57896044618658097711785492504343953926634992332820282019728792003956564819968 бы дать каждому окрошка есть 50% шансов на успех.

Мишень из 11579208923731619542357098500868790785326998466564056403945758400791312963994 бы дать каждому окрошка есть 10% шансов на успех.

Мишень из 1157920892373161954235709850086879078532699846656405640394575840079131296399 бы дать каждому окрошка на 1% шансов на успех.

Мишень из 1157920892373161954235709850086879078532699846656405640394575840079131296 бы дать каждому окрошка на 0,001% шансов на успех.

Может быть, вы можете выяснить, как это сделать математику?
DannyHamilton сейчас офлайн Пожаловаться на DannyHamilton   Ответить с цитированием Мультицитирование сообщения от DannyHamilton Быстрый ответ на сообщение DannyHamilton

5 ноября 2017, 5:44:06 PM   # 20
 
 
Сообщений: 41
Цитировать по имени
цитировать ответ
по умолчанию Re: Технические вопросы по blockchain

Здравствуйте! Еще раз спасибо,

Так что я думаю, что теперь я понял, но я нашел эту статью:

https://samsclass.info/141/proj/BitDiff.htm

где он говорит:

"Bitcoin шахтеры должны найти хэш SHA-256, который начинается со многими нулями"

Так что теперь я запутался, я бы вы мне сказали, что сервер посылает вам вызов (а хэш), и цель, и вы (шахтер) должны найти:

если (sha256 (вызов + randomStuff) < мишень)

С наилучшими пожеланиями!
redigaffi сейчас офлайн Пожаловаться на redigaffi   Ответить с цитированием Мультицитирование сообщения от redigaffi Быстрый ответ на сообщение redigaffi



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW